当前位置:首页 >> 云计算
云计算

一文让你看懂容器编排系统设计 Kubernetes

2025-10-20 12:18

程序的飞行速度到目之前也从未加快,这些新程序使空降兵交营商在交行各种不尽相同的实习输显现出时具有很大的灵活性。硬件工程师也能拥有来得多配置文件,以将其系统设计程序同样布署到生产周边环境中所。

3. Kubernetes 看成与原理3.1 Kubernetes 空降兵

上图可以碰到一个空降兵主要之外两个部分:

一个 Master 结点,也称认真管控容⾯,是 Kubernetes 空降兵的⼤脑。

其中所之外如下子系统:

Api server:是整个系统的对外适配器,亦可服务器端和其它子系统子程序,总和“营业厅”;Etcd:Api server 亦同总共据读取,总和 Kubernetes 空降兵的总共据中所⼼;Scheduler:负责管理者对空降兵实质上的人力资源入行时调一动,总和“调一动室”;controller-manager:管控管理者装置,意味着 Kubernetes 空降兵中所的人力资源按照建议交⾏。一为数众多 Node 结点,也称认真 Worker 结点 ,主要负责管理者 Pod 地交⾏。

主要之外都有子系统:

Kubelet:负责管理者与 Master 结点交互,入⽽执⾏具体的任务;Kube-proxy:负责管理者 Kubernetes 空降兵中所的输显现出有利于;Container-runtime:提亦可者液体交行周边环境,有 docker,rkt 或者其他液体认真到标准规范,负责管理者液体的转换,重新启一动或者停止使用等;Pod:k8s 的大于调一动静态,1 个 pod 可以包含 1 个或多个液体,pod 可以理解为液体的交集。3.2 Master 结点及交行程序

我们知道了 Master 结点之外 Api Server、Scheduler、Controller manager、Etcd。

请注意对这几种子系统一再认真简述。

Api server

Kubernetes API Server 是空降兵的统合入口,各子系统协调者,以 HTTP API 提亦可者适配器服务概念设计,所有实例人力资源的增删改查和NSA转换首先交给 API Server 管控,下一步再给 Etcd 读取。

Controller-manager

Controller-manager 是 Kubernetes 中所的人力资源管理者装置。Kubernetes 空降兵中所有很多

的人力资源,如 Node、Pod 手写、服务概念设计端点 Endpoint、起名实质上空间 namespace、服务概念设计账号

ServiceAccount 等。Controller-manager 负责管理者这些人力资源的管理者,以意味着这些人力资源实际交⾏的稳定状态达到被期望的稳定状态。

Etcd

Etcd 是一个很低比如说的键值读取系统,主要应用于人力资源共享配置和服务概念设计找到。它比如说 Go 语言执笔,并通过 Raft 相容性算法管控日志克隆以意味着弱相容性。

Etcd 可以理解为 Kubernetes 空降兵的总共据中所⼼,应用于留存空降兵稳定状态的资讯,比如 Pod、Service 等实例的资讯。Etcd 主要和 Api server 交互尤其多,Api server 不能接受转换命令后,不会将的资讯读取到 Etcd 中所。从下文的 pod 的稳定状态流程可碰到,Api server 协作显现出完整的 Pod 的资讯,并将该的资讯读取到 etcd 中所。

Scheduler

Scheduler 是 Kubernetes 空降兵中所的调一动装置。Scheduler 的作⽤是将待调一动的 Pod 按照特定的调一动算法和调一动战略默认到空降兵中所某个合理的 Node 上,并将默认的资讯通过调⽤Api server 写⼊etcd 中所。scheduler 在整个系统中所负有了承上启下的极其重要程序,承上是仅指它负责管理者接收 Controller manager 创立最初 Pod,为其安排一个落脚的远距离 Node,启下是仅指安置 Node 实习完毕后,远距离 Node 上的 kubelet 服务概念设计的在线接管 Scheduler 的取而代之实习。

3.3 Node 结点及交行程序

Node 结点主要之外 Kubelet、Kube-proxy、Pod,其中所极为极其重要的也就是 Pod 了。

点中我们来一再入行时简述:

Kubelet

kubelet 是 Master 在 Node 结点上的 Agent,每个结点都不会重新启一动 kubelet 的在线,该的在线⽤于管控 Master 下发到本结点的任务,管理者 Pod 及 Pod 中所的液体。每个 kubelet 的在线都不会在 Api server 上备案结点的资讯,每星期向 Master 汇报结点人力资源的使⽤原因,并跟踪液体和结点人力资源。

kubelet 在显现出现所致通过 Api server 备案结点的资讯,并定时向 Api server 发送结点的最初资讯,Api server 在接收到这些的资讯后,将这些的资讯写⼊etcd。kubelet NSA etcd,所有针对 Pod 的转换都不会被 kubelet NSA。如果找到有最初默认到本结点的 Pod,则按照 Pod 清单的建议创立该 Pod。如果找到本地的 Pod 被重写,则 kubelet 不会显然适当的重写,⽐如在移除 Pod 中所的某个液体时,不会通过转换本地液体交⾏时移除该液体。

Kube-proxy

在 Kubernetes 空降兵的每个 Node 上都不会交⾏⼀个 kube-proxy 服务概念设计的在线,其核⼼程序是将到某个 Service 的会面时劝说转发到后端的多个 Pod 示例上。kube-proxy 单纯上类似一个显现出现所致暂由。我们可以把每个结点上交行的 kube-proxy 看成 service 的透明暂由兼输显现出有利于装置。kube-proxy 也NSA api server 中所 service 与 Endpoint 的的资讯, 通过配置的 iptables 规则,劝说通过 iptables 同样转发给 pod。

Pod

Pod 是大于布署静态,一个 Pod 有一个或多个液体都是由,Pod 中所的液体人力资源共享读取和在线,在同一台 Docker PS上交行。

pod 的看成图例如下所示:

可以碰到由一个 pause 的根液体,加上一个或多个其业务液体看成。

kubernetes 中所的 pause 液体主要为每个其业务液体提亦可者都有程序:

PID 起名实质上空间:Pod 中所的不尽相同系统设计程序可以碰到其他系统设计程序的的在线 ID。在线起名实质上空间:Pod 中所的多个液体尽可能会面时同一个 IP 和路由器之内。IPC 起名实质上空间:Pod 中所的多个液体尽可能比如说 System IPC 或 POSIX 消息队列入行时通信。UTS 起名实质上空间:Pod 中所的多个液体人力资源共享一个PS名 Volumes(人力资源共享读取卷)

Pod 里多个其业务液体人力资源共享 pause 液体的在线堆和 Volume 挂载卷。

正是由于其业务液体人力资源共享这些人力资源,同一个 Pod 里的液体密切关系仅均需通过 localhost 就能互不通信,所以他们密切关系通信和总共据交换极其很低效,在设计时我们可以充分借助于这一特性将都由密切相关的服务概念设计的在线放入同一个 Pod 中所。

3.4 Pod 的总共量和完整版管控

ReplicationController 用来确保液体系统设计的手写总共看得显现出在Gmail概念的手写总共,即如果有液体所致退显现出,不会基本程序创立最初 Pod 来替代。

在新完整版的 Kubernetes 中所建议比如说 ReplicaSet 来取代 ReplicationController ,ReplicaSet ReplicaSet 跟 ReplicationController 没有单纯的不尽相同,只是名字不一样,并且 ReplicaSet 全力支持交集固定式的 selector。虽然 ReplicaSet 可以独立比如说,但一般还是建议比如说 Deployment 来基本程序管理者 ReplicaSet,这样就无均需担心跟其他程序的不兼容关键问题。 Deployment 为 Pod 和 ReplicaSet 提亦可者了一个 新闻稿固定式概念方法,用来替代以之前的 ReplicationController 来简便的管理者系统设计。 Deployment 典型的故事情节:滚一动修正

Deployment 不仅可以滚一动修正,还可以入行时回滚,如何找到换装到 V2 完整版后,找到服务概念设计不比如说,可以回滚到 V1 完整版。

3.5 Pod 的创立流程

以创立 Pod 为例,来理解 Kubernetes 中所的各子系统的交⾏流程:

通过 api server 向空降兵筹组创立 Pod 的仅指示,api server 将 yaml 中所的配置的属性的资讯(metadata)加载 etcd 中所。apiserver 显现出现所致 watch 程序准备创立 pod,的资讯转发给调一动装置 Scheduler,Scheduler 比如说调一动算法自由选择 node,然后将 node 的资讯给 api server,api server 将默认的 node 的资讯加载 etcd。api server 又通过 watch 程序,子程序 kubelet,所选 pod 的资讯,显现出现所致 docker run 命 令创立液体。创立完毕之后反馈给 kubelet, kubelet 又将 pod 的稳定状态的资讯给 api server, api server 又将 pod 的稳定状态的资讯加载 etcd。⾄此 Pod 毫无疑问的创立完毕。如果因为某些原因 Pod 显现显现出来了关键问题,空降兵中所的 controller-manager 不会向 apiserver 筹组创立的劝说。 4. Kubernetes 的服务概念设计暴露显现出

Pod 能创立成功了,也能很好的对 Pod 认真管理者了,那么服务器端如何找显现出适当的 Pod 子程序其服务概念设计呢?

Kubernetes 全力支持多种服务概念设计暴露显现出的方法。

请注意简述ClusterIP、NodePort和Ingress是三种广泛比如说的服务概念设计暴露显现出方法。其中所 ClusterIP 和 NodePort 方法归属于 Service 人力资源多种类型,Ingress 归属于 Ingress 人力资源多种类型。

4.1 Service—ClusterIP 服务概念设计暴露显现出

Kubernetes 空降兵不会为都由 Pod 分配基本上相同的空降兵 IP,同时产⽣⼀个该网站。空降兵实质上可以通过这空降兵 IP 或者该网站会面时 Service 基本上相同的 Pod。

该多种类型只能在空降兵实质上会面时,也是默认的 ServiceType。

apiVersion: v1kind: Servicespec: metadata: name: my-service selector: app: my-app type: ClusterIP ports: - name: http port: 80 targetPort: 8080 protocol: TCP

克隆代码

后面的示例概念了一个 ClusterIP Service。ClusterIP 上路由器 80 的量将转发到 Pod 上的 8080 路由器 (targetPort 配置项)上,携带 app: my-app标签的 Pod 将被添加到 Service 中所作为作为服务概念设计的比如说结点。

少见比如说故事情节:

空降兵实质上服务概念设计的暴露显现出。

4.2 Service—NodePort 服务概念设计暴露显现出

NodePort 在固定路由器号上官方向空降兵结构上暴露显现出服务概念设计,它准许从空降兵结构上会面时该服务概念设计,在空降兵结构上均必需比如说空降兵的 IP 地址和 NodePort 所选的路由器才能会面时。

创立 NodePort Service 将在空降兵中所的每个 Node 上开放该路由器。

创立 NodePort Service 的同时还不会基本程序创立一个 ClusterIP 多种类型的 Service,NodePort 不会将路由器上的量IPv给 ClusterIP` 多种类型的 Service。

少见比如说故事情节:

可以比如说 NodePort 快速设立合作开发,测试周边环境的服务概念设计或在其上官方 TCP 或 UDP 服务概念设计,但是对于官方 HTTP 服务概念设计来说 NodePort 不是一个的理想自由选择,因为其比如说的都是非 HTTP 标准规范的路由器。

4.3 Ingress 服务概念设计暴露显现出

Ingress 基本上是与 Service 基本上不尽相同的人力资源,不算 Service 后面的一层暂由,往往在 Service 之前比如说 Ingress 来提亦可者 HTTP IPv配置。它让我们可以设立结构上 URL、基于该网站的虚拟PS、SSL 和输显现出有利于。

为了让 Ingress 人力资源⼯作,空降兵只能有⼀个正在交⾏的 Ingress 管控装置。与 Controller-manager 管控装置不尽相同,Ingress 管控装置不是随空降兵⾃一动重新启一动的,可以自由选择不尽相同结构上子系统来认真 Ingress 管控装置。

比如:nginx-ingress,它比如说 nginx 服务概念设计装置作为显现出现所致暂由来把量IPv给后面的 Service。

少见比如说故事情节:

可以管控 http,https 劝说的量,并且可以管控多个该网站的量。一个 IP 可以暴露显现出多个系统设计,全力支持同该网站不尽相同 uri,全力支持证书等程序。比如说故事情节尤其广泛。

5. Kubernetes 在大型企业中所的系统设计

无论是中所小型大型企业,还是大型网上为了提很低人力资源借助于率,认真到降本增效,借助于 Kubernetes 协作一套基本程序化交维周边环境已带入最佳自由选择。

下图是大型企业服务概念设计幽容台正在认真到的幽上管理者模固定式尽可能的一幅未来,其中所服务概念设计液体化作为幽容台坚实中所的坚实尽可能。在液体的解说和管理者上最坚实尽可能上认真到适配、限流等可转换 api 和日志、跟踪等可观察的 api。上层尽可能层可通过这些 api 提亦可者服务概念设计协作,布署,量管控等程序。

可见 Kubernetes 在整个管理者模固定式图中所极其重要的位置。

从液体解说管理者的认真到先之前来看,如下图,经过 7 层输显现出,劝说不会打到都由 Ingress 管控装置上,由于液体的 ip 不会经常变一动,所以 Ingress 不会向外屏蔽掉变一动,开到了 Ingress 劝说就由 Kubernetes 来管控了,Kubernetes 不会将此劝说IPv到适当服务概念设计的某个 Pod 上,同一个服务概念设计不会有多个 Pod,这些 Pod 也不会分部在不容物理机组员。目之前贝壳采用 Eureka 备案,每个 Pod 基本上相同的服务概念设计结点,都不会在 Eureka 上备案, 如果服务概念设计 A 均必需子程序服务概念设计 B,则劝说到服务概念设计 A 的 pod 后,不会从 Eureka 上寻找服务概念设计 B 的 Pod 的结点(目之前通过 Eureka+DNS 来认真到)拿到上游服务概念设计 Pod 的资讯后就同样子程序服务概念设计 B 某一个 Pod 上的服务概念设计了。

希望从之前的讲解对大家有所帮助,谢谢!

Thanks for reading!

石家庄男科医院哪好
南京看白癜风去哪里比较好
宁波看白癜风哪家医院比较好
杭州妇科医院哪个专业
北京男科病治疗费用
神经外科
肌肤问题
急支糖浆止咳最多吃几天?
咽喉肿
皮肤性病科

上一篇: 谷爱凌很整天,参加时尚活动,接受采访,领取大奖,还要去观看F1

下一篇: 积极支持不会提拔这三种特点的人,有你吗?

友情链接