管理节点 |
运行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组件功能介绍