Kubernetes架构最全详解

Kubernetes是云原生非常核心的组件,也是大厂经常考察的内容,下面我就全面来详解Kubernetes架构

Kubernetes

Kubernetes(常简称为K8s),是一个开源的容器编排平台,由Google设计,含义是舵手、或领航员容器编排系统。

主要解决以下场景:

1.容器编排

容器编排是K8S的核心功能,主要管理:多个容器的部署、扩展、和操作,以及自动处理容器的创建、删除、和重新分配。

2.自动伸缩

自动伸缩是K8S的核心功能,主要是:根据应用程序的负载情况,自动调整容器实例的数量。

比如:(增加、或减少容器数量)、和垂直扩展(调整容器的资源分配,比如:CPU、和内存)等,自动伸缩。

3.自动化管理

Kubernetes简化了容器化应用程序的部署、管理、和操作流程,比如:通过自动化的方式,可以减少人为操作错误...等场景。

4.自愈能力

比如:通过持续监控容器的健康状态,自动重启崩溃的容器,重新调度失败的容器实例...等场景,确保应用程序的高可用性。

这四大核心功能:使Kubernetes成为一个强大且灵活的容器编排平台,能够有效地简化、和自动化容器化应用程序的管理。

Kubernetes架构

Kubernetes的架构,由多个组件组成,如下图所示:

如下图所示:

整体由两部分构成,分别是:Master节点和Worker节点。

master(主节点)

Master节点,负责:整个集群的状态监控、调度、协调、和配置管理,如下:

  • 集群管理:Master节点负责整个Kubernetes集群的管理,协调各个工作节点上的资源分配、和应用程序的部署;

  • 调度和分配:根据资源需求和策略,决定将容器部署到哪个工作节点上;

  • 控制和监控:持续监控集群的状态,确保应用程序按预期运行,自动处理故障、和异常情况;

  • 配置存储:以及,存储、和管理集群的配置信息、状态数据、和元数据。

Master节点,会包含如下核心组件,比如:API Server、Control Manager。。。等。

API Server

API Server充当Kubernetes的前端,所有外部命令(如:通过kubectl发出的命令),都会首先到达API Server。

处理所有REST请求(如kubectl命令),并将其转发到相应的组件。

API Server会验证请求的有效性,将其转换为集群的状态变更,并将其保存到etcd中。

Scheduler

Scheduler负责资源调度,根据容器的资源需求和约束条件,决定将容器部署到哪个节点上。

Controller Manager

Controller Manager运行各种控制器,每个控制器都是一个独立的控制循环,持续监听集群的状态,并根据期望状态和实际状态的差异进行调整。

主要控制器包括:

节点控制器:管理节点的生命周期。;

复制控制器:确保指定数量的Pod副本在任何时候都在运行;

端点控制器:填充Service、和Pod的端点信息;

命名空间控制器:管理命名空间的创建、和删除。

etcd

etcd是一个分布式键值存储,存储整个集群的配置信息、元数据和状态数据。

它是Kubernetes集群的数据库,提供一致性和高可用性的数据存储服务。

Work(工作节点)

Node节点是集群中的工作节点,主要解决:

  • 运行容器:Worker节点负责运行分配给它的应用程序容器;

  • 资源管理:管理、和分配本节点上的计算资源(CPU、内存、存储...等),确保容器高效运行。

  • 网络通信:处理容器之间以及容器与外部世界的网络通信;

  • 监控和日志记录:持续监控容器的状态并记录日志,帮助诊断、和解决问题。

主要会涉及到如下组件:

Kubelet

Kubelet是Worker节点上的核心代理,它持续监听来自API Server的指令(如:Pod的创建、更新和删除)。

Kubelet根据这些指令管理容器的生命周期,包括:拉取镜像、启动容器、监控运行状况、和处理终止...等。

Kube-proxy

Kube-proxy负责:实现Kubernetes服务的负载均衡、和网络代理。

比如:Kube-proxy配置网络规则(如:iptables或IPVS),以实现服务的负载均衡和路由。

它维护本地的网络规则,将外部请求正确地路由到集群内的相应容器。

容器运行时(如Docker)

Kubernetes支持多种容器运行时,通过CRI(容器运行时接口)与Kubelet进行通信。

常用的容器运行时,包括:Docker、containerd、CRI-O...等。

负责实际的容器操作,如拉取镜像、创建、和启动容器、管理容器生命周期。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值