【一起来学kubernetes】25、Master使用详解

发布于:2025-03-30 ⋅ 阅读:(82) ⋅ 点赞:(0)

Kubernetes 的 Master 节点(控制平面)是集群的“大脑”,负责管理整个集群的状态、调度工作负载、处理 API 请求以及维护系统的核心组件。


一、Master 节点的核心组件

Master 节点由以下关键组件构成,共同协作实现集群控制功能:

组件 作用 核心功能
API Server 集群的唯一入口,提供 RESTful API 接口。 接收并验证用户请求(如 kubectl),更新集群状态到 etcd。
Scheduler 资源调度器,决定 Pod 在哪个 Node 上运行。 根据资源需求、亲和性规则等,选择最优节点。
Controller Manager 运行多个控制器,确保集群实际状态与期望状态一致。 包括 Node 控制器、Deployment 控制器、Endpoint 控制器等。
etcd 分布式键值存储数据库,保存集群的所有配置数据和状态 提供强一致性的数据存储,是集群的“唯一真相源”。
Cloud Controller Manager(可选) 对接云厂商的控制器,管理云资源(如负载均衡器、存储卷)。 仅在云环境中使用,实现节点自动扩缩容、服务暴露等云平台集成功能。

二、Master 节点的工作流程

  1. 用户请求处理

    • 用户通过 kubectl 或客户端工具向 API Server 发送请求(如创建 Pod)。
    • API Server 验证请求合法性,并将状态变更写入 etcd。
  2. 调度决策

    • Scheduler 监听未调度的 Pod,根据资源需求和策略选择合适 Node,更新 Pod 的 Node 绑定信息。
  3. 状态协调

    • Controller Manager 中的控制器持续监控集群状态:
    • Node 控制器:检测 Node 状态,标记不可用节点。
    • Deployment 控制器:确保副本数与期望值一致,触发滚动更新。
    • Endpoint 控制器:维护 Service 与 Pod 的映射关系。
  4. 数据持久化

    • 所有集群状态变更(如 Pod 调度、配置更新)均通过 etcd 持久化存储。

三、Master 节点的高可用架构

生产环境中,Master 节点需部署为多副本以实现高可用(HA),避免单点故障:

1. 多 Master 节点部署
  • API Server:通过负载均衡器(如 Nginx、HAProxy)对外暴露,多个实例同时运行。
  • etcd 集群:以奇数节点(如 3、5)组成分布式集群,通过 Raft 协议保证数据一致性。
  • Scheduler 和 Controller Manager:以 Leader 选举模式运行,同一时间仅一个实例生效。

四、Master 节点的安全机制

  1. 认证(Authentication)

    • 支持多种认证方式:客户端证书、Bearer Token、ServiceAccount Token 等。
  2. 授权(Authorization)

    • 基于 RBAC(角色访问控制)限制用户或服务的操作权限。
  3. 准入控制(Admission Control)

    • 在请求持久化前进行拦截和修改(如 PodSecurityPolicyResourceQuota)。
  4. etcd 加密

    • 对存储的敏感数据(如 Secret)进行静态加密。

五、Master 节点的部署方式

1. 自建集群(On-Premise)
  • 使用工具手动部署(如 kubeadmkubespray)。
  • 优点:灵活可控,适合定制化需求。
  • 缺点:维护成本高,需自行处理高可用和升级。
2. 托管集群(Managed Kubernetes)
  • 使用云厂商的托管服务(如 ACK、CCE)。
  • 优点:自动化运维,内置高可用和监控。
  • 缺点:依赖云平台,部分配置受限。

六、Master 节点与 Worker 节点的对比

特性 Master 节点 Worker 节点
核心组件 API Server、Scheduler、etcd 等 kubelet、kube-proxy、容器运行时
职责 集群控制、调度、状态管理 运行工作负载(Pod)
资源需求 高 CPU/内存(尤其 etcd) 根据工作负载需求调整
高可用要求 必须多节点部署 可单节点,但建议多节点避免业务中断

七、最佳实践与注意事项

  1. 资源分配

    • 为 etcd 预留足够内存和低延迟磁盘(SSD),避免因资源不足导致集群不可用。
  2. 备份与恢复

    • 定期备份 etcd 数据,确保灾难恢复能力:
      # 备份 etcd
      ETCDCTL_API=3 etcdctl snapshot save snapshot.db \
        --endpoints=https://127.0.0.1:2379 \
        --cacert=/etc/kubernetes/pki/etcd/ca.crt \
        --cert=/etc/kubernetes/pki/etcd/server.crt \
        --key=/etc/kubernetes/pki/etcd/server.key
      
  3. 监控与日志

    • 监控 Master 组件健康状态(如 API Server 延迟、etcd 写入性能)。
    • 收集组件日志(API Server、Scheduler、Controller Manager)。
  4. 版本升级

    • 遵循官方升级路径,先升级 Master 节点,再升级 Worker 节点。

八、常见问题

  • Q: Master 节点宕机后如何恢复?
    A: 若多 Master 节点部署,其他节点可接管服务;单节点需从备份恢复 etcd 并重启组件。

  • Q: 如何减少 API Server 的负载?
    A: 优化客户端请求(如减少 LIST 操作)、启用分页查询、使用缓存(如 Client-go 的 Informer)。

  • Q: etcd 性能瓶颈如何排查?
    A: 检查磁盘 I/O、网络延迟,使用 etcdctl check perf 测试性能。


Master 节点是 Kubernetes 集群的“指挥中心”,其稳定性和性能直接影响整个集群的可靠性。理解其核心组件、高可用架构及运维要点,是构建和管理生产级 Kubernetes 集群的关键基础。

九、拓展

【一起来学kubernetes】4、kubernetes基本组件的了解


网站公告

今日签到

点亮在社区的每一天
去签到