什么是 Kubernetes 集群?

Kubernetes 集群是运行容器化应用的一组节点。容器化应用将应用及其依赖关系和一些必要的服务打包在一起。它们比虚拟机更轻便、更灵活。如此一来,Kubernetes 集群便使应用能够更轻松地得到开发、移动和管理。

Kubernetes 集群允许容器在多个机器和环境中运行:虚拟、物理、云端和本地部署都支持。与虚拟机不同,Kubernetes 容器不受限于特定的操作系统。相反,它们能够共享操作系统并在任意位置运行

Kubernetes 集群由一个主节点和一些 Worker 节点组成。这些节点可以是物理计算机,也可以是虚拟机,具体取决于集群的情况。

主节点控制集群的状态,例如,正在运行的应用及其对应的容器镜像。主节点是所有任务的分配源,协调以下进程:

  • 调度和扩展应用
  • 维护集群的状态
  • 实施更新

Worker 节点是运行这些应用的组件。Worker 节点执行主节点分配的任务。它们可以是虚拟机,也可以是物理计算机,都作为同个系统的一部分运行。

Kubernetes 集群必须至少有一个主节点和一个 Worker 节点才能运行。要完成生产和转储,集群会分布在多个 Worker 节点上。而要进行测试时,所有组件则都可以在同一物理或虚拟节点上运行。

Kubernetes 用户借助命名空间,仅在一个物理集群内就可以组织许多不同的集群。命名空间使用户能够通过资源配额将物理集群内的集群资源分配给不同的团队。因此,在涉及复杂项目或多个团队的情况下,它们是理想的选择。

 

Kubernetes 集群由什么组成?

 

Kubernetes 集群包含六个主要组件:

  1. API 服务器:向所有 Kubernetes 资源公开一个 REST 接口。作为 Kubernetes 控制平面的前端。
  2. 调度程序:根据资源要求和指标放置容器。记录未分配节点的 Pod,然后选择要在其上运行的节点。
  3. 控制器管理器:运行控制器进程,并使集群的实际状态与其所需的规范保持一致。管理控制器,如节点控制器、端点控制器和复制控制器。
  4. Kubelet:通过与 Docker 引擎(用于创建和管理容器的默认程序)进行交互,确保容器在 Pod 中运行。获取一组指定的 PodSpec,并确保其对应的容器全面运行。
  5. Kube-proxy:管理网络连接并维护跨节点的网络规则。在给定集群中的每个节点上实施 Kubernetes 服务概念。
  6. Etcd:存储所有集群数据。一致且高度可用的 Kubernetes 备份存储。 

 

这六个组件可以分别在 Linux 上运行或作为 Docker 容器运行。主节点运行 API 服务器、调度程序和控制器管理器,Worker 节点运行 Kubelet 和 Kube-proxy。

 

如何使用 Kubernetes 集群?

 

要使用 Kubernetes 集群,必须先确定其预期状态。Kubernetes 集群的预期状态规定了许多运维要素,包括:

  • 应运行的应用和工作负载
  • 这些应用将需要使用的镜像
  • 应向这些应用提供的资源
  • 所需副本的数量

 

为了定义预期状态,JSON 或 YAML 文件(称为清单)将用于指定应用类型和运行系统所需的副本数。

 

开发人员使用 Kubernetes API 定义集群的预期状态。这种开发人员交互操作使用命令行界面 (kubectl) 或利用 API 直接与集群交互,以手动设置预期状态。然后,主节点将通过 API 将预期状态告知 Worker 节点。

 

Kubernetes 通过 Kubernetes 控制平面自动管理集群以使其满足预期状态要求。Kubernetes 控制平面的职责包括调度集群活动,以及注册和响应集群事件。

 

Kubernetes 控制平面运行持续控制循环,确保集群的实际状态与其预期状态相符。例如,如果部署一个要以五个副本运行的应用,并且其中一个副本崩溃,那么 Kubernetes 控制平面将记录此崩溃并部署另一个副本,以便维持五个副本的预期状态。

 

通过 Pod Lifecycle Event Generator(即 PLEG)实现自动化。这些自动化任务可能包括:

  • 启动和重新启动容器
  • 调整应用的副本数
  • 验证容器镜像
  • 启动和管理容器
  • 实施更新和回滚

 

 

如何创建 Kubernetes 集群?

 

您可以在物理机或虚拟机上创建和部署 Kubernetes 集群。建议新用户使用 Minikube 开始创建 Kubernetes 集群。Minikube 是一款与 Linux、Mac 和 Windows 操作系统兼容的开源工具。Minikube 可用于创建和部署仅包含一个 Worker 节点的简单、精简集群。

 

此外,您可以使用 Kubernetes 模式自动管理集群规模。Kubernetes 模式有助于将云端体系架构重用于基于容器的应用。虽然 Kubernetes 确实提供了许多有用的 API,但没有提供有关如何将这些工具成功整合到操作系统中的指南。Kubernetes 模式提供了一种访问和重用现有 Kubernetes 体系架构的一致方法。您可以利用可重复使用的 Kubernetes 集群蓝图网络来代替自己创建这些结构。

 

VMware Kubernetes 集群相关产品、解决方案和资源

VMware NSX:领先的企业级网络连接和安全性虚拟化平台

VMware NSX Data Center 提供完整的 L2-L7 网络连接和安全性虚拟化平台,使您能够像通过单一窗口管理单个条目一样轻松管理整个网络。

VMware Cloud PKS - Kubernetes 集群

利用简单易用且经济高效的 Kubernetes 集群加速创新

vSphere Integrated Containers

使用 vSphere Integrated Containers,可获得企业级容器基础架构,帮助 IT 运维团队在一个通用平台上并行运行传统应用和容器化应用。

使用 VMware NSX 的容器网络连接解决方案

为容器化应用和微服务提供集成式完整体系的网络连接与安全解决方案。

什么是 Cloud Management Platform?

VMware Cloud Management Platform 是一款适用于混合(多云)环境的管理器,支持环境中运行从传统到容器(云原生)的任何工作负载。了解更多。