k8s组件
组件架构图
Master组件
kube-apiserver
k8s ApI,集群的统一入口,各组件的协调者,以RESTful API提供接口服务,所有对象资源的增删改查和监听操作都交给APIServer处理后再提交给etcd存储。
kube-controller-manger
处理集群中的常规后台任务,一个资源对应一个控制器,而ControllerManager就是负责管理这些控制器的。例如Deployment。
kube-scheduler
根据算法为新创建的pod选择一个Node节点,可以任意部署,可以部署在同一个节点上也可以部署在不同节点上。
etcd
分布式键值存储系统。用户保存集群状态,比如pod、service等对象信息。
Node组件
kubelet
kubelet是Master在Node节点上的Agent,管理本级运行容器的生命周期,比如创建容器、pod挂载数据卷,下载secret,获取容器和节点状态等工作。kubelet将每个pod转换成一组容器。
kube-proxy
在Node节点上实现pod网络代理,维护网络规则和四层负载均衡工作。
第三方容器引擎
例如:docker、containerd、podman
容器引擎,运行容器
k8s资源
Pod
k8s中的最小部署单元,一组容器的集合
Deployment
最常见的控制器,用于更高级别部署和管理pod
Service
为一组pod提供负载均衡,对外提供统一的访问入口
Label
标签,附加在某个资源上,用于关联对象,查询和筛选
NameSpace
命名空间,将对象逻辑上分离,也有利于权限控制
k8s中创建一个pod的流程
xxx