k8s最初源自谷歌的Brog项目,架构与其类似,主要包括etcd、api server、controller manager、scheduler、kubelet和kube-proxy等组件
-
etcd:分布式存储,保存k8s集群的状态
-
api server:资源操作的唯一入口,并提供认证、鉴权等功能
-
controller manager:负责维护集群的状态,比如故障检测,自动扩展、滚动更新等
-
scheduler: 负责资源的调度, 按照预定的调度策略将 Pod 调度到相应的机器上;
-
kubelet:负责维护容器的生命周期,也负责磁盘(CVI)和网络(CNI)的管理。
-
kube-proxy:负责为service提供cluster内部的服务发现和负载均衡。
api server里又有认证、鉴权、REST接口、调度触发等模块