Kubernetes(k8s)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。下面这个表格汇总了其最核心的概念和组件,可以协助你快速建立整体认知。
概念类别 | 核心组件/对象 | 核心职责 | 一句话解读 |
架构角色 | 控制平面 (Control Plane) | 集群的“大脑”,负责全局决策和调度。 | 管理集群的总体状态,是集群的指挥中心。 |
工作节点 (Worker Node) | 集群的“手臂”,负责具体执行。 | 运行实际应用工作负载的虚拟机或物理机。 | |
控制平面组件 | API Server | 集群的“总入口”和“通信枢纽”。 | 所有内部组件和外部用户都必须通过它来操作集群资源。 |
etcd | 集群的“配置数据库”。 | 一个高可用的键值存储系统,持久化保存整个集群的状态和配置数据。 | |
Scheduler | 集群的“调度中心”。 | 监听未被调度的Pod,并根据资源情况等因素,将其分配到合适的工作节点上运行。 | |
Controller Manager | 集群的“自动控制中心”。 | 内部包含多种控制器,确保集群的实际状态(如Pod副本数)符合用户声明的期望状态。 | |
工作节点组件 | kubelet | 节点上的“代理”和“管家”。 | 负责与管理平面通信,并维护本节点上Pod的生命周期(创建、销毁、监控)。 |
kube-proxy | 节点上的“网络代理”。 | 维护节点上的网络规则,实现Service的负载均衡和服务发现功能。 | |
容器运行时 (Container Runtime) | 容器运行的“底层引擎”。 | 负责拉取镜像并真正运行容器(如Docker, containerd)。 | |
核心API对象 | Pod | 可部署的“最小计算单元”。 | Kubernetes管理的最小单位,一个Pod可以包含一个或多个紧密关联的容器,它们共享网络和存储。 |
Deployment | 无状态应用的“部署管理器”。 | 声明Pod的副本数量、更新策略等,控制器会确保实际状态始终符合声明。 | |
Service | 应用的“稳定访问入口”和“负载均衡器”。 | 为一组功能一样的Pod提供一个固定的访问地址和域名,无论后端Pod如何变化,访问方式不变。 | |
ConfigMap / Secret | 应用配置的“管理中心”。 | 将配置信息(ConfigMap)或敏感数据(Secret)与容器镜像分离,实现配置解耦。 | |
Namespace | 集群的“虚拟分区”。 | 在物理集群内部创建多个虚拟集群,用于实现资源隔离和多租户管理。 |
为了让你更好地理解这些组件和对象是如何协同工作的,我们来看两个最关键的流程:
你可以将Kubernetes集群想象成一个自动化的工作车间:
希望这个简洁版的总结能协助你快速抓住Kubernetes的核心。