k8s根据官网指引学习Kubernetes 文档 | Kubernetes
Kubernetes 组件
部署成功之后,便拥有了一个完整的集群。
一组工作机器,称为节点(node), 会运行容器化应用程序(containerd)。每个集群至少有一个工作节点(node)。
工作节点(node)会托管 Pod,而 Pod 就是作为应用负载的组件。 控制平面(control-plane)管理集群中的工作节点和 Pod。 在生产环境中,控制平面通常跨多台计算机运行, 一个集群通常运行多个节点,提供容错性和高可用性。
控制平面组件(Control Plane Components)
用来做资源调度,一般称之为master节点,以下是Control Plane内部组件说明
kube-apiserver
k8s资源调度命令其实底层就是调用api,这个组件的功能就是字面意思,提供api服务的
etcd
Kubernetes 所有集群数据的后台数据库
kube-scheduler
负责监视新创建的、未指定运行节点(node)的 Pods, 并根据各个节点的健康状态来选择节点来运行Pod
kube-controller-manager
控制器管理,用来管理Control Plane内部的一系列控制器,比如
- 节点控制器(Node Controller):负责在节点出现故障时进行通知和响应
- 任务控制器(Job Controller):监测代表一次性任务的 Job 对象,然后创建 Pods 来运行这些任务直至完成
- 端点分片控制器(EndpointSlice controller):填充端点分片(EndpointSlice)对象(以提供 Service 和 Pod 之间的链接)。
- 服务账号控制器(ServiceAccount controller):为新的命名空间创建默认的服务账号(ServiceAccount)。
- 等等
cloud-controller-manager
允许你将集群连接到云提供商的 API 上,一般用不到,学习不需要,公司内网也不需要
Node 组件
节点组件会在每个节点上运行,负责维护运行的 Pod 并提供 Kubernetes 运行环境。
kubelet
接收一组通过各类机制提供给它的 PodSpec也就是yaml配置,并且翻译成pod和容器运行
kube-proxy
实现集群内外的网络通信
容器运行时(Container Runtime)
管理 容器的执行和生命周期,支持许多容器运行环境,例如 containerd、 CRI-O