K8S架构详解(5大原理图解)

K8S架构详解(5大原理图解)-mikechen

什么是K8S

K8S是Kubernetes 的缩写,含义是舵手或领航员,是由Google创造容器编排系统。

K8S在Docker等容器技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能。

 

K8S功能

以下是 Kubernetes 的主要功能和作用:

1.容器编排

Kubernetes 能够自动管理和编排多个容器化应用程序,确保它们在集群中运行并相互通信。

2.自动化部署

Kubernetes 允许用户定义应用程序的期望状态,然后自动进行部署和配置,以确保应用程序按照所需的方式运行。

3.自动伸缩

Kubernetes 可以根据实际负载自动调整应用程序的副本数量,以满足流量需求,从而实现弹性伸缩。

4.多环境支持

Kubernetes 支持在多个环境中部署应用程序,如开发、测试和生产环境,确保应用程序在不同环境中一致运行。

5.多租户支持

Kubernetes 支持多租户模型,允许多个团队共享同一个集群,但彼此之间隔离。

6.弹性调度

Kubernetes 支持将应用程序部署到不同的节点,根据资源使用情况和其他策略自动调度容器。

总之,Kubernetes 的功能和作用涵盖了容器化应用程序的整个生命周期,从应用程序的部署、运行、管理,到自动化的伸缩、升级和维护。

 

K8S的架构

K8S的架构是一个分层的体系结构,由一系列的组件组成,这些组件协同工作以实现容器化应用程序的部署、管理和运行。

如下图所示:

K8S架构详解(5大原理图解)-mikechen

一个Kubernetes集群由两部分构成 :

  • master节点
  • node节点

下面我分别详解@mikechen

 

master主节点

master节点是 Kubernetes 集群的控制平面,负责管理和控制整个集群。

如下图黄框所示:

K8S架构详解(5大原理图解)-mikechen

Master 节点是控制平面的中央节点,它管理整个集群的状态和控制。

Kubernetes的主节点通过API,从CLI(命令行界面),或UI(用户界面)接收输入来管控的。

如下图所示:

K8S架构详解(5大原理图解)-mikechen

它包括以下4个核心组件:

API Server(API服务器)

是集群的前端接口,负责处理外部和内部的API请求,所有的操作都通过API Server进行通信。

etcd(存储系统)

是一个分布式键值存储系统,用于保存集群的配置信息、状态和元数据,所有的集群数据都存储在etcd中,确保集群的持久性和一致性。

Scheduler(调度器)

负责监控新创建的Pod,然后根据资源需求和策略将它们分配到集群中的节点上,调度器帮助实现负载均衡和高可用性。

Controller Manager(控制器管理器)

包含多个控制器,用于监控集群中各种资源的状态,并根据预定义的期望状态来进行调整,以确保系统处于所需的状态。

Cloud Controller Manager(云控制器管理器)

用于管理与特定云平台相关的资源,例如:云服务商提供的负载均衡、云盘存储等。

 

node工作节点

Node节点是集群中的工作节点,负责运行容器和处理实际的应用程序工作。

如下图所示:

K8S架构详解(5大原理图解)-mikechen

上面右侧的绿框就是Kubernetes工作节点。

每个Node节点都运行着以下组件:

1.Kubelet

是Node节点上的代理,负责与Master节点通信,接收Pod定义并确保Pod在节点上按照定义运行。

2.Container Runtime

负责管理容器的创建、运行和销毁。常用的容器运行时包括Docker、containerd等。

3.Kube-proxy

负责维护Node节点上的网络规则,实现Pod之间的通信和负载均衡。

4.Pod

Pod是Kubernetes中一个抽象化概念,由一个或多个容器组合在一起得共享资源。

如下图所示:

K8S架构详解(5大原理图解)-mikechen

在Kubernetes中Pod是调度的最小元素,没有它容器就不能成为集群的一部分,主节点会把Pod调度到特定工作节点上,并与容器运行时协调以启动容器。

 

Kubernetes架构总结

画了个图总结一下整个的k8s架构集群。

如下图所示:

K8S架构详解(5大原理图解)-mikechen

总之,K8S架构是一个分布式系统,通过这些核心组件协同工作,提供了一个强大的平台,用于部署、管理和扩展容器化应用程序。

以上

关注作者「mikechen」公众号,获取更多技术干货!

后台回复【面试】即可获取《史上最全阿里Java面试题总结》,后台回复【架构】,即可获取《阿里架构师进阶专题全部合集

评论交流
    说说你的看法