Kubernetes架构

Kubernetes 致力于提供跨主机集群的自动部署扩展高可用以及运行应用程序容器的平台,其遵循主从式架构设计,其组件可以分为工作节点(Node)组件和控制平面组件。

Kubernetes 架构可分为主(Master)节点从(工作/Worker/Node)节点数据库 Etcd,其中:

  • 主节点为集群的控制单元,一般不会运行业务应用程序,主要包含的组件有 Kube-APIServerKube-ControllerManagerKube-Scheduler

    如果 Master 节点要部署容器,也会包含 KubeletKube-Proxy 这两个组件。

  • 从节点为工作单元,也就是部署应用程序容器的节点,主要包含的组件有 KubeletKube-Proxy。

一个集群中可以有很多 Node 节点,用以保证集群容器的分布式部署,用于实现业务的高可用性;也可以有很多 Master 节点,并通过一个负载均衡器保证集群控制节点的高可用

负载均衡可以使用软件负载均衡 Nginx/LVS/HAProxy + KeepAlived 或者硬件负载均衡 F5 等。

  • 其高可用原理在于分配了一个虚拟 IP 地址(VIP)在多个 Master 节点间进行漂移,当主节点发生宕机时,其他的从节点会竞争主节点角色,并获得分配的 VIP 地址。

  • 其他组件通过上述的 VIP 连接至负载均衡器,由负载均衡器将请求转发给后端的 Kube-APIServer。

Etcd 集群可以和 Master 节点部署在同一个宿主机,也可以单独部署,生产环境建议部署大于 3 的奇数台Etcd 节点实现 Etcd 集群的高可用。

最后更新于