GKE on VMware 在本地的 vSphere 环境中运行。本文档介绍了 vSphere 环境的要求。
版本兼容性
vSphere 要求因您使用的 GKE on VMware 版本而异。如需了解详情,请参阅完全受支持的版本和早期版本的版本兼容性矩阵。
支持的版本
vSphere 是 VMware 的服务器虚拟化软件。vSphere 包括 ESXi 和 vCenter Server。
GKE on VMware 支持下列版本的 ESXi 和 vCenter Server
- 7.0 Update 2 及 7.0 版的更高更新版本
- 8.0(预览版)
我们建议您使用 7.0 Update 3 或 7.0 版的更高更新版本。
如果要创建 CSI 卷快照,则必须拥有以下版本之一:
- 7.0 Update 3 或更高版本 7.0 的更新
- 8.0
许可要求
您需要以下任一许可:
vSphere 企业 Plus 版许可。除此许可外,您还必须有效的支持订阅。
vSphere 标准许可。除此许可外,您还必须有效的支持订阅。 使用此许可时,您无法启用反亲和性群组。此外,您不能指定自己的资源池。您必须使用默认资源池。
硬件要求
GKE on VMware 在运行 VMware ESXi Hypervisor 的一组物理主机上运行。如需了解 ESXi 的硬件要求,请参阅 ESXi 硬件要求。
对于生产环境,我们强烈建议您执行以下操作:
至少有四个 ESXi 主机可供集群虚拟机使用。
如果您计划在同一 vSphere 数据中心内的不同 vSphere 集群或资源池中部署 Anthos Clusters on VMware,则可以在 ESXi 主机之间启用网络文件复制 (NFC) 流量。
在集群配置文件中将
antiAffinityGroups.enabled
设置为true
。
如果您将 antiAffinityGroups.enabled
设置为 true
,则 GKE on VMware 会为集群节点创建 DRS 反亲和性规则,使其分布到至少三个物理 ESXi 主机上。即使 DRS 规则要求集群节点分布在三个 ESXi 主机上,我们也强烈建议您至少配备四个 ESXi 主机。这样可以防止您丢失集群控制平面。例如,假设您只有三个 ESXi 主机,并且您的管理员集群控制平面节点位于发生故障的 ESXi 主机上。DRS 规则将阻止控制平面节点放置在其余两个 ESXi 主机之一上。
如需进行评估和概念验证,您可以将 antiAffinityGroups.enabled
设置为 false
,并且仅使用一个 ESXi 主机。如需了解详情,请参阅设置最小基础架构。
vCenter 用户账号权限
为了设置 vSphere 环境,组织管理员可能会选择使用具有 vCenter Server Administrator 角色的 vCenter 用户账号。此角色提供对所有 vSphere 对象的完整访问权限。
设置 vSphere 环境后,集群管理员可以创建管理员集群和用户集群。集群管理员不需要 vCenter Server Administrator 角色提供的所有权限。
集群管理员或开发者创建集群时,可在凭据配置文件中提供 vCenter 用户账号。我们建议为凭据配置文件中列出的 vCenter 用户账号分配一个或多个自定义角色,这些角色具有创建和管理集群所需的最小权限。
组织管理员可以采用两种不同的方法:
创建具有不同程度的权限的多个角色。然后创建权限,以将这些权限有限的角色分配给单个 vSphere 对象上的用户或群组。
创建一个具有所有所需权限的角色。然后创建一个全局权限,用于将该角色分配给 vSphere 层次结构中所有对象上的特定用户或群组。
我们建议您使用第一种方法,因为它可限制访问权限并提高 vCenter Server 环境的安全性。如需了解详情,请参阅使用角色分配权限和角色和权限的最佳做法。
如需了解如何使用第二种方法,请参阅创建一个全局权限。
下表显示了组织管理员可以创建的四个自定义角色。然后,管理员可以使用自定义角色来分配对特定 vSphere 对象的权限:
自定义角色 | 权限 | 对象 | 传播到 子对象? |
---|---|---|---|
ClusterEditor |
System.Read System.View System.Anonymous Host.Inventory.Modify cluster |
集群 | 是 |
SessionValidator |
System.Read System.View System.Anonymous Sessions.Validate session Cns.Searchable Profile-driven storage.Profile-driven storage view |
根 vCenter Server | 否 |
ReadOnly |
System.Read System.View System.Anonymous |
数据中心 网络 |
是 |
Anthos | Anthos 角色中的权限 |
datastore 资源池 虚拟机文件夹 网络 |
是 |
Anthos 自定义角色中的权限
创建自定义角色和权限
组织管理员可以使用 govc 命令行工具创建自定义角色和权限。
组织管理员必须拥有具备创建角色和权限的足够权限的 vCenter Server 账号。例如,具有 Administrator 角色的账号比较合适。
在运行 govc
之前,请设置一些环境变量:
将 GOVC_URL 设置为 vCenter Server 实例的网址。
将 GOVC_USERNAME 设置为组织管理员的 vCenter Server 账号的用户名。
将 GOVC_PASSWORD 设置为组织管理员的 vCenter Server 账号的密码。
例如:
export GOVC_URL=vc-01.example export GOVC_USERNAME=alice@vsphere.local export GOVC_PASSWORD=8ODQYHo2Yl@
创建自定义角色
创建 ClusterEditor、SessionValidator 和 ReadOnly 自定义角色:
govc role.create ClusterEditor System.Read System.View System.Anonymous Host.Inventory.EditCluster govc role.create SessionValidator System.Read System.View System.Anonymous Sessions.ValidateSession Cns.Searchable StorageProfile.View govc role.create ReadOnly System.Read System.View System.Anonymous
创建授予 ClusterEditor 角色的权限
权限采用 (用户, 角色) 对的形式,并将其与对象关联。在对象上分配权限时,您可以指定权限是否传播到子对象。使用 govc
时,您可以通过将 --propagate
标志设置为 true
或 false
来实现此目的。默认值为 false
。
创建用于将 ClusterEditor 角色授予集群对象上的用户的权限。此权限会传播到集群对象的所有子对象:
govc permissions.set -principal ACCOUNT \ -role ClusterEditor -propagate=true CLUSTER_PATH`
替换以下内容:
ACCOUNT:被授予角色的 vCenter Server 用户账号
CLUSTER_PATH:vSphere 对象层次结构中的集群路径
例如,以下命令将创建一个权限以关联 (bob@vsphere.local, ClusterEditor) 对与 my-dc/host/my-cluster。该权限会传播到 my-dc/host/my-cluster 的所有子对象:
govc permissions.set -principal bob@vsphere.local \ -role ClusterEditor -propagate=true my-dc/host/my-cluster
创建其他权限
本部分提供了创建其他权限的示例。根据需要为您的环境替换示例对象路径。
创建一个权限,以将 SessionValidator 角色授予根 vCenter Server 对象上的账号。此权限不会传播到子对象:
govc permissions.set -principal ACCOUNT \ -role SessionValidator -propagate=false
创建权限,以将 ReadOnly 角色授予数据中心对象和网络对象上的账号。这些权限会传播到子对象:
govc permissions.set -principal ACCOUNT \ -role ReadOnly -propagate=true \ /my-dc \ /my-dc/network/my-net
创建一些权限,以将 Anthos 角色授予以下四个对象上的账号:数据存储区、虚拟机文件夹、资源池和网络。这些权限会传播到子对象:
govc permissions.set -principal ACCOUNT -role Anthos -propagate=true \ /my-dc/datastore/my-ds \ /my-dc/vm/my-folder \ /my-dc/host/my-cluster/Resources/my-rp \ /my-dc/network/my-net
创建一个全局权限
本部分提供了创建多个角色和多个权限的替代方案。我们不建议采用这种方法,因为它可以授予对 vSphere 层次结构中所有对象的一组大型权限。
如果尚未创建 Anthos 自定义角色,请立即创建 Anthos 自定义角色。
创建一个全局权限:
govc permissions.set -principal ACCOUNT \ -role Anthos -propagate=true
替换以下内容:
将 ACCOUNT 替换为被授予该角色的 vCenter Server 用户账号
例如,以下命令会创建一个全局权限,以将 Anthos 角色授予 bob@vsphere.local。该权限会传播到 vSphere 层次结构中的所有对象:
govc permissions.set -principal bob@vsphere.local -role Anthos -propagate=true