Skip to content

1. 集群的完整定义

一个 Kubernetes 集群由两部分核心组成:

组成部分功能类比
控制平面(Control Plane)集群的“大脑”,负责调度、监控和维持集群状态(如 kube-apiserveretcd)。公司的管理层
工作节点(Worker Nodes)实际运行容器化应用的机器(如虚拟机、物理服务器)。公司的执行员工

2. 集群的“健全性”体现在哪里?

(1) 机器层面

节点互联:所有机器(控制平面和工作节点)需满足: • 网络互通(通常要求 6443、10250 等端口开放)。 • 资源充足(CPU/内存满足组件运行需求)。

(2) 系统层面

必需组件: • 控制平面kube-apiserver(API 入口)、etcd(数据库)、kube-scheduler(调度器)、kube-controller-manager(控制器)。 • 工作节点kubelet(节点代理)、kube-proxy(网络代理)、容器运行时(如 containerd)。

(3) 功能完整性

• 集群必须能完成核心功能: • 调度 Pod 到节点。 • 提供 Service 负载均衡。 • 支持存储卷挂载。 • 允许通过 kubectl/API 管理资源。


3. 集群 vs 单台机器的本质区别

即使所有组件运行在一台机器上(如 Docker Desktop 的单节点集群),它仍然是集群,因为: • 逻辑分层:控制平面和工作节点角色分离。 • 扩展性:随时可添加新节点(横向扩展)。 • 高可用:生产环境中控制平面通常跨多节点部署(如 3 个 etcd 实例)。


4. 实际案例说明

(1) 本地开发集群(如 Docker Desktop)

机器:1 台本地电脑(Mac/Windows)。 • 系统组件: • 控制平面和工作节点共用同一台机器。 • 包含所有必要的 Kubernetes 进程(kube-apiserveretcdkubelet 等)。 • 本质单节点集群,仍具备完整集群功能。

(2) 生产集群(如 AWS EKS)

机器:多台 EC2 实例(3 个控制平面节点 + 10 个工作节点)。 • 系统组件: • 控制平面由 AWS 托管(用户不可见)。 • 工作节点运行用户 Pod。 • 本质分布式高可用集群


5. 常见误解澄清

误解正解
“集群就是一堆 Docker 主机”集群需要 Kubernetes 系统组件,而不仅是容器运行时。
“单机不能叫集群”只要包含控制平面和工作节点逻辑划分,单机也是集群(如 Minikube)。
“集群等于 Pod/Deployment 集合”集群是底层基础设施,Pod/Deployment 是运行在其上的工作负载。

6. 如何验证集群健全性?

bash
# 检查节点状态
kubectl get nodes -o wide

# 检查核心组件状态
kubectl get pods -n kube-system

# 测试集群功能
kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80
curl http://$(kubectl get svc nginx -o jsonpath='{.spec.clusterIP}')

总结

集群 = 机器 + Kubernetes 系统组件
既需要硬件资源(节点),也需要软件组件(kube-apiserveretcd 等)协同工作。
最小集群:可以是单台机器(如 Docker Desktop),但需包含控制平面和工作节点逻辑。
生产集群:通常是多节点、高可用的分布式系统。

如果您的场景是“一组机器安装了 Kubernetes 组件并成功交互”,那么这就是一个健全的集群!

✨ 网站运行时间: 3年11月15天 ❤️ 道阻且长,行则将至 - 微信号: heikedreamer