在 vSphere 集群上启用 vSphere IaaS control plane 且成为 主管 后,将在 Hypervisor 层内创建 Kubernetes 控制平面。此层包含支持在 ESXi 中运行 Kubernetes 工作负载的特定对象。
此图显示了 vSphere IaaS control plane 概要架构,其中 Tanzu Kubernetes Grid 位于顶部,主管位于中间,ESXi、网络连接和存储位于底部,由 vCenter Server 管理它们。
主管 在 SDDC 层上运行,包含用于计算的 ESXi、NSX 或 VDS 网络连接以及 vSAN 或其他共享存储解决方案。共享存储用于 vSphere Pod、主管 中运行的虚拟机以及 Tanzu Kubernetes Grid 集群中的 Pod 的持久卷。创建主管后,作为 vSphere 管理员,您可以在主管中创建 vSphere 命名空间。作为 DevOps 工程师,您可以运行由 vSphere Pod 中运行的容器组成的工作负载,通过虚拟机服务部署虚拟机,以及创建 Tanzu Kubernetes Grid 集群。
可以在三个 vSphere 区域上部署 主管,以提供集群级别的高可用性,这可以防止 Kubernetes 工作负载发生集群级别故障。一个 vSphere 区域映射到一个可以设置为独立故障域的 vSphere 集群。在三区域部署中,所有三个 vSphere 集群都变为一个 主管。还可以在一个 vSphere 集群上部署一个 主管,这将自动创建一个 vSphere 区域并将其映射到该集群,除非您使用已映射到某个区域的 vSphere 集群。在单个集群部署中,主管 仅在 vSphere HA 提供的主机级别具有高可用性。
在三区域 主管 上,可以在使用虚拟机服务创建的 Tanzu Kubernetes Grid 集群和虚拟机上运行 Kubernetes 工作负载。三区域 主管 具有以下组件:
- 主管 控制平面虚拟机。一共在 主管 上创建了三个 主管 控制平面虚拟机。在三区域部署中,每个区域驻留一个控制平面虚拟机。三个 主管 控制平面虚拟机已负载均衡,因为每个虚拟机都有自己的 IP 地址。此外,还会为其中一个虚拟机分配一个浮动 IP 地址,并预留第 5 个 IP 地址,用于进行修补。vSphere DRS 确定控制平面虚拟机在 主管 的 ESXi 主机部分的确切放置位置,并在需要时进行迁移。
- Tanzu Kubernetes Grid 和集群 API。在 主管 上运行的模块,能够置备和管理 Tanzu Kubernetes Grid 集群。
- 虚拟机服务。负责部署和运行独立虚拟机和组成 Tanzu Kubernetes Grid 集群的虚拟机的模块。
在三区域 主管 中,将在映射到区域的每个 vSphere 集群上创建一个命名空间资源池。命名空间分布在每个区域中的所有三个 vSphere 集群中。用于三区域 主管 的命名空间的资源是从所有三个底层 vSphere 集群等分获取的。例如,如果需要 300 MHz 的 CPU,则将从每个 vSphere 集群中获取 100 MHz。
在单个 vSphere 集群上部署的 主管 还具有三个控制平面虚拟机,它们驻留在集群的 ESXi 主机部分上。在单集群 主管 上,除了 vSphere Pod 集群和虚拟机外,还可以运行 Tanzu Kubernetes Grid。vSphere DRS 与 主管 控制平面虚拟机上的 Kubernetes 调度程序集成,以便 DRS 确定 vSphere Pod 的放置位置。作为 DevOps 工程师,当您调度 vSphere Pod 时,请求将通过常规 Kubernetes 工作流,然后进入 DRS,进而 DRS 做出最终的放置决策。
由于 vSphere Pod 支持,单集群 主管 具有以下附加组件:
- Spherelet。将在每个主机上创建一个名为 Spherelet 的额外进程。它是一种以本机方式传输到 ESXi 的 kubelet,允许 ESXi 主机加入 Kubernetes 集群。
- Container Runtime Executive (CRX) 组件。从 Hostd 和 vCenter Server 角度来看,CRX 与虚拟机类似。CRX 包括一个可与 Hypervisor 协同工作的准虚拟化 Linux 内核。CRX 使用与虚拟机相同的硬件虚拟化技术,且其周围具有虚拟机边界。使用直接引导技术,以允许 CRX 的 Linux 客户机在未通过内核初始化的情况下启动主初始化进程。这样可使 vSphere Pod 以近乎容器的速度引导。