K8S工作原理详解(图文全面总结)

K8S工作原理详解(图文全面总结)-mikechen

K8S是云原生最核心的内容,也是云计算的未来,下满我就全面来详解K8S以及原理@mikechen

K8S

Kubernetes(简称 K8s),K8s 是云原生生态的核心组件,也是云技术最核心的内容。

K8S工作原理详解(图文全面总结)-mikechen

K8S,通过提供容器化应用的调度、编排、以及运行、和管理,是实现 DevOps 、和微服务架构的关键。

 

K8S工作原理

K8S的整体架构设计,如下图所示:

K8S工作原理详解(图文全面总结)-mikechen

K8S, 采用主节点(Master Node)、和工作节点(Master-Worker)的分布式设计,并且,支持大规模容器、和管理。

K8S主节点(Master Node)

K8S主节点,负责:整个集群的状态、与生命周期。

并且,K8S主节点,管理所有的工作节点、和容器化的应用程序。

K8S主节点,主要组件如下:

API Server

API Server,主要负责:接收用户请求,并将其传递给其他组件,是 K8S的统一入口。

整体架构,如下图所示:

K8S工作原理详解(图文全面总结)-mikechen

API Server 是 Kubernetes(K8S)集群的“用户接口”,所有的管理、和操作请求都通过它进行。

无论是创建 Pod、更新 Deployment,还是查询集群状态,都需要与 API Server 交互。

在集群中,所有的配置、调度、控制、健康检查等工作都依赖于 API Server。

并且,API Server 管理所有资源的 CRUD 操作,并通过 etcd 保存资源状态。

 

ETCD

etcd ,是集群的数据存储,保存所有集群状态、和配置的键值数据库…等等重要信息。

etcd ,通常也会部署成多个副本(etcd 集群),以确保数据的持久性和一致性。

 

Controller Manager

Controller Manager ,是 Kubernetes(K8S)、与云平台之间的桥梁,负责:处理与云基础设施相关的资源管理任务。

Controller Manager 是由多个控制器组成的,每个控制器负责管理 Kubernetes 中某种类型的资源。

常见的控制器,如下图所示:

K8S工作原理详解(图文全面总结)-mikechen

  • Node Controller:负责管理、与云平台上的节点相关的操作,例如:节点的生命周期管理、节点的健康检查…等;
  • Route Controller:负责在云平台上,配置路由规则,以便 Kubernetes(K8S)服务,可以与外部通信;
  • Service Controller:管理与云负载均衡器相关的资源,负责为类型为 LoadBalancer 的 Kubernetes(K8S)服务创建、和配置云负载均衡器;
  • Ingress Controller:管理、和配置与云负载均衡器相关的 Ingress 资源,支持在云平台上配置 HTTP/HTTPS 路由。

Scheduler

K8S Scheduler(调度器), 在 Kubernetes(K8S)集群中扮演着至关重要的角色。

Scheduler的主要任务是:负责将 Pod(容器组),调度到适合的 工作节点 上执行。

在调度过程中,调度器需要考虑多个因素,比如:资源需求、节点的可用资源、以及定义的调度策略…等。

 

K8S工作节点

K8S工作节点,主要执行主节点分配的实际任务,比如:运行容器化应用程序(Pod)…等等。

+---------------------+         +---------------------+
|   工作节点 (Worker) |         |   工作节点 (Worker) |
+---------------------+         +---------------------+
| - Kubelet           |         | - Kubelet           |
| - Kube-proxy        |         | - Kube-proxy        |
| - 容器运行时         | <-----> | - 容器运行时         |
+---------------------+         +---------------------+
         |                              |
         |                              |
     +-------+                     +-------+
     |  Pod  |                     |  Pod  |
     +-------+                     +-------+

K8S工作节点,整体架构,如下图所示:

K8S工作原理详解(图文全面总结)-mikechen

K8S的工作流程,大致如下:

API Server 是 Kubernetes 集群的入口,接收并验证所有的请求;

首先,用户定义请求,比如:定义一个 Deployment、Pod、 或 Service;

然后,API Server 接收并处理请求,API Server 会验证用户的身份(认证),并授权其操作(授权)。

然后,交给其它组件,比如:Controller Manager 和、Scheduler,来调度 Pod 到合适的节点;

最后,管理节点上的容器,确保 Pod 持续运行,K8S自动维护集群资源的健康、和稳定。

评论交流
    说说你的看法