kubernetes vs openshift(路线和服务)
我是kubernetes和openshift(来自docker swarm world)的新手,我对kubernetes和openshift的一些文档感到困扰,尤其是与路线和服务相关的文档。我一直在寻找如何在外部公开容器的副本集,我发现它使用一个服务来公开pod。有人能给我解释一下区别吗?所使用的工具只有细微的区别。OpenShift是一个Kubernetes发行版,这意味着它是一个固执己见的预选组件的集合。因此,对于入口,OpenShift使用HAProxy将(HTTP)流量引入集群。其他Kubernetes发行版可能使用NGINX入口控制器或类似的东西 因此,kubernetes vs openshift(路线和服务),kubernetes,openshift,Kubernetes,Openshift,我是kubernetes和openshift(来自docker swarm world)的新手,我对kubernetes和openshift的一些文档感到困扰,尤其是与路线和服务相关的文档。我一直在寻找如何在外部公开容器的副本集,我发现它使用一个服务来公开pod。有人能给我解释一下区别吗?所使用的工具只有细微的区别。OpenShift是一个Kubernetes发行版,这意味着它是一个固执己见的预选组件的集合。因此,对于入口,OpenShift使用HAProxy将(HTTP)流量引入集群。其他Ku
服务
用于集群内的负载平衡流量。因此,当您创建一个ReplicaSet
时,您将运行多个pod。要与这些播客“交谈”,通常需要创建一个服务
。该服务将在您的播客之间均匀分配流量
因此,为了获得从外部到您的服务的HTTP(S)流量,OpenShift使用路由
(入口
在其他Kubernetes发行版中):
因此,要向外界公开应用程序,通常需要使用oc create Service
创建内部服务
,然后使用oc expose
创建路由
:
# Create a new ClusterIP service named myservice
oc create service clusterip myservice --tcp=8080:8080
oc expose service myservice
OCP中的“路线”
与K8S“服务”
相比,而与K8S“入口”
比较路线
和入口
关于如何在集群外公开OCP中的“服务”的文档早在Kubernetes提出Ingress之前,Red Hat就需要为运行在OpenShift上的容器提供自动反向代理解决方案。所以现在在OpenShift中,我们有一个路由对象,它的工作与Kubernetes中的入口几乎相同。主要区别在于,路由是由好的、旧的HAproxy实现的,可以用基于F5 BIG-IP的商业解决方案替代。然而,在Kubernetes上,您有更多的选择,因为Ingress是由多台服务器实现的接口,从最流行的nginx、traefik、AWS ELB/ALB、GCE、Kong以及包括HAproxy在内的其他服务器开始
那么你可以问哪一个更好?就个人而言,我认为OpenShift中的HAproxy要成熟得多,尽管它没有一些Ingress实现那么多的功能。但是,在Kubernetes上,您可以使用不同的增强功能—我最喜欢的是与cert manager的集成,它允许您自动管理SSL证书。由于与Letsencrypt的集成,您无需再进行证书颁发和续订的手动操作,此外,您还可以免费使用trusted CA
作为一个有趣的事实,我想提到的是,从OpenShift 3.10开始,Kubernetes入口对象由OpenShift识别,并由..翻译/实现。。路由器。这是与为Kubernetes准备的配置兼容的一大步,该配置现在可以在OpenShift上启动,无需任何修改。两者都使用服务来平衡对POD的负载请求。为了公开服务,Kubernetes使用入口,而Openshift使用路由。当您使用路由或入口时,它跳过Kubernetes服务部分,并直接将流量发送到pod IP
# Create a new ClusterIP service named myservice
oc create service clusterip myservice --tcp=8080:8080
oc expose service myservice