加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_阳江站长网 (https://www.0662zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 创业 > 模式 > 正文

从零开始了解 Kubernetes

发布时间:2020-07-02 20:33:53 所属栏目:模式 来源:51cto
导读:Kubernetes 已经成为容器编排领域的王者,它是基于容器的集群编排引擎,具备扩展集群、滚动升级回滚、弹性伸缩、自动治愈、服务发现等多种特性能力。 本文将带着大家快速了解 Kubernetes ,了解我们谈论 Kubernetes 都是在谈论什么。 Kubernetes 架构 从宏

Service 通过 label 选择器选取合适的 Pod,构建出一个 Endpoints,即 Pod 负载均衡列表。实际运用中,一般我们会为同一个微服务的 Pod 实例都打上类似 app=xxx 的标签,同时为该微服务创建一个标签选择器为 app=xxx 的 Service。

Kubernetes 中的服务发现与网络调用

在有了上述“三通”的网络基础后,我们可以开始微服务架构中的网络调用在 Kubernetes 中是怎么实现的了。

这部分内容其实在《说说 Kubernetes 是怎么实现服务发现的》已经讲得比较清楚了,比较细节的地方可以参考上述文章,这里做一个简单的介绍。

服务间调用

首先是东西向的流量调用,即服务间调用。这部分主要包括两种调用方式,即 ClusterIP 模式以及 DNS 模式。

ClusterIP 是 Service 的一种类型,在这种类型模式下,kube-proxy 通过 iptables/ipvs 为 Service 实现了一种 VIP(虚拟 IP)的形式。只需要访问该 VIP,即可负载均衡地访问到 Service 背后的 Pod。

从零开始了解 Kubernetes

上图是 ClusterIP 的一种实现方式,此外还包括 userSpace 代理模式(基本不用),以及 ipvs 模式(性能更好)。

DNS 模式很好理解,对 ClusterIP 模式的 Service 来说,它有一个 A 记录是 service-name.namespace-name.svc.cluster.local,指向 ClusterIP 地址。所以一般使用过程中,我们直接调用 service-name 即可。

服务外访问

从零开始了解 Kubernetes

南北向的流量,即外部请求访问 Kubernetes 集群,主要包括三种方式:nodePort、loadbalancer、Ingress。

nodePort 同样是 Service 的一种类型,通过 iptables 赋予了调用宿主机上的特定 port 就能访问到背后Service 的能力。

loadbalancer 则是另一种 Service 类型,通过公有云提供的负载均衡器实现。

我们访问 100 个服务可能需要创建 100 个 nodePort/loadbalancer。我们希望通过一个统一的外部接入层访问内部 Kubernetes 集群,这就是 Ingress 的功能。Ingress 提供了统一接入层,通过路由规则的不同匹配到后端不同的 Service 上。Ingress 可以看做是“Service 的 Service”。Ingress 在实现上往往结合 nodePort 以及 loadbalancer 完成功能。

到现在为止,我们简单了解了 Kubernetes 的相关概念,它大致是怎么运作的,以及微服务是怎么运行在 Kubernetes 中的。于是当我们听到别人讨论 Kubernetes 时,我们可以知道他们在讨论什么。

 

(编辑:应用网_阳江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读