k8s架构
时间: 2025-05-18 20:03:45 浏览: 20
### Kubernetes 架构详解
#### 控制平面组件
控制面负责集群管理和调度决策。主要由以下几个部分构成:
- **API Server** 是系统的入口,提供 HTTP/HTTPS RESTful API 接口用于接收客户端请求并验证其合法性[^1]。
- **Scheduler (调度器)** 负责监控新创建的 Pod 并分配到合适的 Node 上运行;它会考虑资源需求、数据本地化等因素做出最优选择。
- **Controller Manager (控制器管理器)** 维护集群状态的一致性,通过监听 API server 中对象的变化来触发相应操作,比如 ReplicaSet Controller 确保指定数量副本始终存在。
- **etcd** 作为高可用键值存储系统保存着整个集群的状态信息,所有持久化的元数据都会被写入 etcd 数据库中。
#### 工作负载节点(Node)
每个工作负载节点上安装有必要的服务程序以便容器能够正常启动与执行任务:
- **kubelet** 运行于每一个 node 上, 它定期向 apiserver 报告本机状况以及处理来自 master 的指令; 同时也负责维护 pod 和 container 生命周期[^2].
- **kube-proxy** 实现了基本的网络代理功能,在各节点间转发流量至目标 service 所对应的实际 endpoint 地址列表里去.
- **Container Runtime(容器运行时)** 如 Docker 或者其他兼容 OCI 标准的技术栈用来真正跑起用户的业务应用实例.
#### 网络插件(Network Plugin)
为了使不同主机上的 Pods 可以相互通信,Kubernetes 需要依赖第三方实现 CNI(Container Network Interface) 规范定义下的各种网络方案之一来进行跨宿主机通信设置. Flannel 就是一个常见的例子,它提供了简单易懂且易于部署使用的 VXLAN 方案.
```bash
[root@k8s-node1 ~]# systemctl start flanneld
[root@k8s-node1 ~]# systemctl enable flanneld
[root@k8s-node1 ~]# systemctl restart docker
[root@k8s-node1 ~]# systemctl restart kubelet
[root@k8s-node1 ~]# systemctl restart kube-proxy
```
以上命令展示了如何在一个典型的 k8s worker node 上初始化和启用 flannel 网络插件.
阅读全文
相关推荐














