Kubernetes 是一个开源的容器编排引擎,用来对容器化应用进行自动化部署、 扩缩和管理。
Kubernetes 中的节点即为运行 Kubernetes 的服务器,有 控制平面(Control Plane) 和 工作节点(Node) 两种类型,控制平面负责管理 Kubernetes 集群,工作节点负责运行工作负载(即在 Kubernetes 集群中部署的应用程序)。
通常情况下,为便于集群的维护和提高系统稳定性,会将控制平面部署在单独的服务器中,同时此服务器不运行其他的应用程序,也不运行 Kubernetes 工作负载。
同时,为进一步提升系统的容错率,可部署多个控制平面。
为便于描述,后面将控制平面称为管理节点(Master),工作节点称为工作节点(Worker)。
类型 | 概述 | 备注 |
---|---|---|
控制平面(Control Plane) | 负责管理 Kubernetes 集群 | 管理节点(Master) |
工作节点(Node) | 负责运行具体的应用程序 | 工作节点(Worker) |
etcd
分布式数据存储组件,负责存储 Kubernetes 集群的数据
kube-apiserver
API服务,负责 Kubernetes 集群组件之间的交互
kube-controller-manager
控制管理器,负责 Kubernetes 集群中具体功能的执行
kube-scheduler
调度器,负责调度任务到具体的节点
kubelet
负责和控制平面通信,同时管理本节点的容器
kube-proxy
负责应用程序的负载均衡
容器运行时(如 containerd 、 Dokcer 等)
负责运行容器
用于指定某类型的持久卷如何制备
官方文档:
用于创建持久卷
官方文档:
用于声明对持久卷的使用
官方文档:
用于运行一组容器
官方文档:
用于提供访问 Pod 的策略(将一组 Pod 暴露为服务)
官方文档:
对集群外部访问集群内部的服务进行管理
官方文档:
用于创建非加密类型的配置项
官方文档:
用于创建加密类型的配置项
官方文档:
用于指定各个名称空间资源的配额情况
官方文档:
用于指定某个命名空间资源的限制情况
官方文档:
用于配置 Pod 的扩容规则
官方文档:
用于配置 Pod 的干扰预算(对 Pod 进行操作时,保证处于健康状态的 Pod 数)
官方文档:
用于部署无状态服务
官方文档:
用于部署有状态服务
官方文档:
用于部署每个节点均需要存在的服务( DaemonSet 可以保证 Kubernetes 集群的每个节点均存在一个指定的 Pod 副本)
官方文档:
用于部署单次运行的服务
官方文档:
用于部署基于时隔重复调度的 Jobs
官方文档:
用于操作 Pod 使其达到指定状态(由 Kubernetes 操作)
官方文档: