kubernetes vs openshift(路线和服务)

kubernetes vs openshift(路线和服务),kubernetes,openshift,Kubernetes,Openshift,我是kubernetes和openshift(来自docker swarm world)的新手,我对kubernetes和openshift的一些文档感到困扰,尤其是与路线和服务相关的文档。我一直在寻找如何在外部公开容器的副本集,我发现它使用一个服务来公开pod。有人能给我解释一下区别吗?所使用的工具只有细微的区别。OpenShift是一个Kubernetes发行版,这意味着它是一个固执己见的预选组件的集合。因此,对于入口,OpenShift使用HAProxy将(HTTP)流量引入集群。其他Ku

我是kubernetes和openshift(来自docker swarm world)的新手,我对kubernetes和openshift的一些文档感到困扰,尤其是与路线和服务相关的文档。我一直在寻找如何在外部公开容器的副本集,我发现它使用一个服务来公开pod。有人能给我解释一下区别吗?

所使用的工具只有细微的区别。OpenShift是一个Kubernetes发行版,这意味着它是一个固执己见的预选组件的集合。因此,对于入口,OpenShift使用HAProxy将(HTTP)流量引入集群。其他Kubernetes发行版可能使用NGINX入口控制器或类似的东西

因此,
服务
用于集群内的负载平衡流量。因此,当您创建一个
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