k8s组件功能介绍

管理节点

运行ansible/easzctl脚本,可以复用master,建议使用独立节点(1c1g)

master节点

Master 节点负责对外提供一系列管理集群的 API 接口,并且通过和 node 节点交互来实现对集群的操作管理

高可用集群至少2个master节点

node节点

node 节点是实际运行 Docker 容器的节点,负责和节点上运行的 Docker 进行交互,并且提供了代理功能

运行应用负载的节点,可根据需要提升机器配置/增加节点数

etcd 节点

key-value键值存储数据库,用来存储kubernetes的信息的。

注意etcd集群需要1,3,5,7…奇数个节点,一般复用master节点

apiserver组件

用户和 kubernetes 集群交互的入口,封装了核心对象的增删改查操作,提供了 RESTFul 风格的 API 接口,通过 etcd 来实现持久化并维护对象的一致性。

scheduler组件

负责集群资源的调度和管理,例如当有 pod 异常退出需要重新分配机器时,scheduler 通过一定的调度算法从而找到最合适的节点。

controller-manager组件

主要是用于保证 replicationController 定义的复制数量和实际运行的 pod 数量一致,另外还保证了从 service 到 pod 的映射关系总是最新的。

kubelet组件

运行在 node 节点,负责和节点上的 Docker 交互,例如启停容器,监控运行状态等

proxy组件

运行在 node 节点,负责为 pod 提供代理功能,会定期从 etcd 获取 service 信息,并根据 service 信息通过修改 iptables 来实现流量转发(最初的版本是直接通过程序提供转发功能,效率较低。),将流量转发到要访问的 pod 所在的节点上去

flannel组件

Flannel 的目的就是为集群中的所有节点重新规划 IP 地址的使用规则,从而使得不同节点上的容器能够获得同属一个内网且不重复的 IP 地址,并让属于不同节点上的容器能够直接通过内网 IP 通信

k8s组件功能介绍

发表回复

滚动到顶部