Kubernetes最全详解(图文全面总结)

来源:mikechen的互联网架构


Kubernetes是云技术的最核心的部分,是云原生技术的基石,下面我就全面来详解Kubernetes


kubernetes

Kubernetes,通常简称为K8s,是由Google开发的,是一个功能强大、灵活和可扩展的容器编排平台。

Kubernetes主要解决以下4大点:

1.自动化运维平台

中小型企业以及大型互联网公司,可以使用Kubernetes构建一套自动化运维平台。

如下图所示:

Kubernetes 与 Docker 结合可以实现开发、测试和生产环境的一致性,通过统一的容器化部署和编排机制,保持环境之间一致性。

2. 容器编排

Kubernetes 提供了强大的容器编排功能,能够自动化管理、和调度容器化应用程序的部署、扩展、更新和维护。

3. 弹性和伸缩

弹性和伸缩是 Kubernetes 中的关键功能,通过自动水平扩展、手动扩展、集群节点的自动扩展等机制,使得应用程序能够根据负载情况自动调整。

4. 自动化运维

Kubernetes 实现了许多自动化运维功能,如:自动故障恢复、自动滚动更新、自动扩展和自动缩放等。

kubernetes原理

Kubernetes 的工作原理,是通过 Master 节点和多个 Worker 节点协同工作。

kubernetes整体架构,如下图所示:

整体架构,包含:Maseter节点、和Node节点。

Master 节点

Kubernetes 集群的控制中心是 Master 节点,它负责管理集群的状态、调度应用程序、监视集群状态等。

Master 节点由多个组件组成,包括:API Server、Scheduler、Controller Manager 和 etcd。

1、API Server

API Server 是 Kubernetes 集群中与外部世界进行通信的关键组件,它提供了统一的、可扩展的接口,使得用户和外部系统能够轻松地与 Kubernetes 集群进行交互和管理。

所有集群中的操作,如:创建、更新和删除资源对象(如 Pod、Service、Deployment 等),都是通过 API Server 进行的。

除此之外,API Server同时也负责整个集群的:认证、授权、访问控制、服务发现等能力。

2、Scheduler

调度器(Scheduler),是 Kubernetes 集群中负责 Pod 调度的关键组件,它通过智能的调度算法,确保集群中的 Pod 能够合理地分配到各个节点上。

3、Controller Manager

Controller Manager 是Kubernetes 的大脑,由一组控制器的集合,负责监视集群状态,并根据用户定义的期望状态进行调整。

如下图所示:

4、etcd

etcd 是 Kubernetes 集群中的分布式键值存储系统,用于持久化存储集群的状态信息。

etcd 存储了集群的配置信息、节点状态、服务发现...等信息。

API Server、Scheduler 和 Controller Manager 都会将集群状态的变化写入到 etcd 中。

Worker 节点

Worker 节点,也称为 Node,是 Kubernetes 集群中的工作节点,负责运行应用程序的容器实例。

每个 Worker 节点都有一个 Kubernetes 组件运行在其中,该组件称为 Kubelet,它是 Node 上的代理程序,负责与 Master 节点通信,并管理节点上的容器。

kubernetes和Docker的关系

Kubernetes 和 Docker 之间的关系,类似于操作系统、和应用程序之间的关系。

Docker 提供了容器技术的实现,而 Kubernetes 则提供了容器编排和管理的平台。

Kubernetes 本身并不依赖于 Docker,可以支持的容器包含:包括 Docker、containerd、cri-o 等。

但它通常使用 Docker 容器,作为默认的容器运行时环境,原因很简单,Docker是目前最常用的容器。

总的来说,Kubernetes 和 Docker的关系,类似类似于操作系统、和应用程序之间的关系 ,它们共同构建了云原生应用程序的生态系统。

以上

请使用浏览器的分享功能分享到微信等