本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。

Kubernetes 概念

本页面解释与 Kubernetes 相关的重要概念,以帮助理解 Rancher 的工作原理。以下描述提供了 Kubernetes 组件的简化概述。有关更多详细信息,请参阅 Kubernetes 组件的官方文档。

关于 Docker

Docker 是一种容器打包和运行时标准。开发人员可以从 Dockerfile 构建容器镜像,并从 Docker 注册表分发容器镜像。 Docker Hub 是一个流行的公共注册表。许多组织还会设置私有 Docker 注册表。Docker 主要用于管理单个节点上的容器。

关于 Kubernetes

Kubernetes 是容器集群管理标准。YAML 文件指定构成应用程序的容器和其他资源。Kubernetes 执行调度、扩展、服务发现、健康检查、秘密管理和配置管理等功能。

什么是 Kubernetes 集群?

集群是一组协同工作的计算机,作为一个单一系统。

一个 Kubernetes 集群 是一个使用 Kubernetes 容器编排系统 来部署、维护和扩展容器的集群,使您的组织能够自动化应用程序操作。

Kubernetes 集群中节点的角色

Kubernetes 集群中的每个计算资源称为 节点。节点可以是裸机服务器或虚拟机。Kubernetes 将节点分为三种类型:etcd 节点、控制平面 节点和 工作节点.

Kubernetes 集群至少由一个 etcd、控制平面和工作节点组成。

etcd 节点

Rancher 在单节点和高可用性安装中使用 etcd 作为数据存储。在 Kubernetes 中,etcd 也是存储集群状态的节点角色。

Kubernetes 集群的状态保存在 etcd. 中。etcd 节点运行 etcd 数据库。

etcd 数据库组件是一个分布式键值存储,用作 Kubernetes 存储所有集群数据的地方,例如集群协调和状态管理。建议在多个节点上运行 etcd,以便始终有备份可用于故障转移。

尽管您可以仅在一个节点上运行 etcd,但 etcd 需要大多数节点(法定人数)就更新集群状态达成一致。集群应始终包含足够健康的 etcd 节点以形成法定人数。对于具有 n 个成员的集群,法定人数为 (n/2)+1。对于任何奇数大小的集群,添加一个节点将始终增加法定人数所需的节点数。

三个 etcd 节点通常足以满足较小集群的需求,而五个 etcd 节点适用于大型集群。

控制平面节点

控制平面节点运行 Kubernetes API 服务器、调度器和控制器管理器。这些节点负责例行任务,以确保您的集群维持您的配置。由于所有集群数据存储在 etcd 节点上,控制平面节点是无状态的。您可以在单个节点上运行控制平面,尽管建议使用三个或更多节点以实现冗余。此外,单个节点可以共享控制平面和 etcd 角色。

工作节点

每个 工作节点 运行以下:

  • *Kubelets:*一个监控节点状态的代理,确保您的容器健康。

  • *工作负载:*包含您的 APP 的容器和 Pod,以及其他类型的部署。

工作节点还在需要时运行存储和网络驱动程序,以及入口控制器。您可以根据需要创建任意数量的工作节点来运行您的 工作负载

关于 Helm

对于 Rancher 高可用性安装,Helm 是用于在 Kubernetes 集群上安装 Rancher 的工具。

Helm是Kubernetes的首选软件包管理工具。Helm图表为Kubernetes YAML清单文档提供模板语法。使用 Helm,我们可以创建可配置的部署,而不仅仅是使用静态文件。有关创建您自己的部署目录的更多信息,请查看 https://helm.sh. 的文档。

有关服务帐户和集群角色绑定的更多信息,请参阅 Kubernetes 文档。