K8s的物理架构是master/node模式:
K8s集群至少需要一个主节点(Master)和多个工作节点(Worker),Master节点是集群的控制节点,负责整个集群的管理和控制,主节点主要用于暴露API,调度部署和节点的管理。工作节点主要是运行容器的。
Master 节点一般包括四个组件,apiserver、scheduler、controller-manager、etcd,他们分别的作用是什么:
Apiserver:上连其余组件,下接ETCD,提供各类 api 处理、鉴权,和 Node 上的 kubelet 通信等,只有 apiserver 会连接 ETCD。
Controller-manager:控制各类 controller,通过控制器模式,致力于将当前状态转变为期望的状态。
Scheduler:调度,打分,分配资源。
Etcd:整个集群的数据库,也可以不部署在 Master 节点,单独搭建。
Node 节点一般也包括三个组件,docker,kube-proxy,kubelet
Docker:具体跑应用的载体。
Kube-proxy:主要负责网络的打通,早期利用 iptables,现在使用 ipvs技术。
Kubelet:agent,负责管理容器的生命周期。