随笔 - 252  文章 - 0  评论 - 3  阅读 - 3099

k8s的五大组件

Kubernetes 核心组件及其功能

Kubernetes(K8s)是一个强大的容器编排平台,能够自动化容器化应用程序的部署、扩展和管理。其架构由多个组件协作完成,以下是 Kubernetes 的五大核心组件及其功能。

1. API Server (kube-apiserver)

  • 作用:Kubernetes 的所有请求都会通过 API Server,它是集群的入口点。
  • 功能
    • 管理集群的状态:API Server 是集群内所有组件之间交互的中心,它负责暴露集群 API,处理所有与 Kubernetes 相关的请求,并确保请求对集群状态的一致性。
    • 提供 REST API:所有与 Kubernetes 集群交互的操作都是通过 REST API 完成的。API Server 接收请求(如创建、更新、删除 Pod、Service 等资源),并将这些请求转发到相关组件或存储系统。
    • 认证与授权:API Server 负责认证(验证用户身份)和授权(检查用户是否有权限)请求。
    • 集群配置:所有的资源对象(如 Pod、Service 等)都会通过 API Server 存储到 etcd 中。

2. Controller Manager (kube-controller-manager)

  • 作用:控制器管理器是 Kubernetes 控制循环的核心,确保集群状态与期望状态一致。
  • 功能
    • 控制器:控制器是一个控制循环,它不断监视集群资源,确保集群的实际状态与用户期望的状态保持一致。例如,ReplicaSet 控制器会确保指定数量的副本 Pods 始终在运行。
    • 多种控制器:kube-controller-manager 运行多个控制器,如 ReplicaSet、Deployment、Job、DaemonSet 等,每个控制器有不同的功能。
    • 集群管理:控制器根据集群的当前状态和期望状态做出调整,自动调整资源和调度策略。

3. Etcd

  • 作用:etcd 是一个高可用的键值存储系统,用于存储 Kubernetes 集群的所有配置信息和状态数据。
  • 功能
    • 存储集群状态:所有的 Kubernetes 配置、资源对象、集群状态数据都存储在 etcd 中,etcd 是集群的持久化存储系统。
    • 高一致性和强一致性:etcd 确保了存储数据的一致性,所有组件都通过 etcd 获取配置信息,并根据其状态作出调整。
    • 高可用:etcd 集群是分布式的,通过多节点保证高可用性,防止单点故障。

4. Scheduler (kube-scheduler)

  • 作用:调度器负责将 Pods 分配到集群中的具体节点上。
  • 功能
    • 调度决策:Scheduler 通过检查每个节点的资源(CPU、内存等)以及 Pod 的要求(如节点选择器、亲和性等),决定哪些节点适合运行特定的 Pod。
    • 优先级和策略:Scheduler 会根据不同的调度策略(如资源需求、亲和性、反亲和性等)决定 Pod 的部署位置。
    • 调度延迟:一旦有新的 Pod 需要调度,调度器会基于集群的当前状态(包括资源分配、节点健康等)做出调度决策。

5. Kubelet (kubelet)

  • 作用:Kubelet 是每个节点上的主要代理,负责确保容器在节点上正确运行。
  • 功能
    • 容器管理:Kubelet 会根据 Pod 定义,确保每个容器在其节点上正确启动和运行。它会定期向 API Server 报告容器的状态。
    • 健康检查:Kubelet 会根据健康检查和就绪探针(liveness probes 和 readiness probes)来决定容器是否需要重启或杀死。
    • Pod 管理:Kubelet 负责在本地节点上启动、停止和维护 Pod,确保 Pod 的状态与期望状态一致。
    • 与控制平面通信:Kubelet 向 API Server 报告节点的状态,并根据 API Server 的命令执行操作。

组件 功能
API Server 处理所有客户端请求,提供 REST API 接口,验证和授权请求,管理集群的状态和资源。
Controller Manager 运行控制器来确保集群的实际状态与期望状态一致,管理 ReplicaSet、Deployment 等控制器。
Etcd 存储 Kubernetes 配置和集群状态数据,确保所有配置信息的一致性和可靠性。
Scheduler 负责将 Pods 分配到集群中合适的节点,根据资源需求和调度策略进行决策。
Kubelet 负责在节点上运行容器,保证容器按预期启动并运行,执行健康检查,报告节点状态给 API Server。
posted on   Leo-Yide  阅读(35)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

点击右上角即可分享
微信分享提示