vSphere 要求

GKE on VMware 在本地的 vSphere 环境中运行。本文档介绍了 vSphere 环境的要求。

版本兼容性

vSphere 要求因您使用的 GKE on VMware 版本而异。如需了解详情,请参阅完全受支持的版本早期版本的版本兼容性矩阵。

支持的版本

vSphere 是 VMware 的服务器虚拟化软件。vSphere 包括 ESXivCenter Server

GKE on VMware 支持下列版本的 ESXivCenter Server

  • 7.0 Update 2 及 7.0 版的更高更新版本
  • 8.0 版及更高版本的 8.0 版更新

我们建议您使用 8.0、7.0 Update 3 或 7.0 的更高更新版本。

如果要创建 CSI 卷快照,您必须具有以下版本之一:

  • 7.0 更新 3 或更高版本 7.0 版
  • 8.0 或更高版本(8.0 版)

许可要求

您需要以下任一许可:

硬件要求

GKE on VMware 在运行 VMware ESXi Hypervisor 的一组物理主机上运行。如需了解 ESXi 的硬件要求,请参阅 ESXi 硬件要求

对于生产环境,我们强烈建议您执行以下操作:

如果您将 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 标志设置为 truefalse 来实现此目的。默认值为 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

已知问题

请参阅创建 vSphere 数据磁盘时安装程序失败

后续步骤

CPU、RAM 和存储要求