vSphere 要求

Google Distributed Cloud 在 vSphere 环境中在本地运行。本文档介绍了 vSphere 环境的要求。

本页面适用于根据公司战略定义 IT 解决方案和系统架构,并创建和管理与用户权限相关的政策的管理员和架构师。如需详细了解我们在 Google Cloud 内容中提及的常见角色和示例任务,请参阅常见的 GKE Enterprise 用户角色和任务

版本兼容性

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

支持的版本

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

Google Distributed Cloud 支持以下版本的 ESXivCenter Server

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

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

如果要创建 CSI 卷快照,则必须使用以下某个版本:

  • 7.0 Update 3 或者 7.0 版的更高版本更新
  • 8.0 或者 8.0 版的更高版本更新

许可要求

您需要以下任一许可:

硬件要求

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

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

如果您将 antiAffinityGroups.enabled 设置为 true,Google Distributed Cloud 会为集群节点创建 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 自定义角色中的权限

类别 权限
云原生存储
  • 可搜索
Datastore
  • 分配空间
  • 浏览数据存储区
  • 配置数据存储区
  • 低级层文件操作
  • 移除文件
  • 更新虚拟机文件
  • 更新虚拟机元数据
加密操作
  • 直接访问
文件夹
  • 创建文件夹
  • 删除文件夹
  • 移动文件夹
  • 重命名文件夹
主机清单
  • 修改集群
vSphere 标记
  • 创建 vSphere 标记
  • 删除 vSphere 标记
  • 分配或取消分配 vSphere 标记
  • 在对象上分配或取消分配 vSphere 标记 (vSphere 7)
会话
  • 验证会话
网络
  • 指定网络
资源
  • 应用建议
  • 将虚拟机分配给资源池
  • 迁移已关停的虚拟机
  • 迁移已启动的虚拟机
  • 查询 vMotion
存储视图
  • 查看
系统
  • 匿名
  • 读取
  • 查看
Tasks
  • 创建任务
  • 更新任务
vApp
  • 导入
  • vApp 应用配置
  • vApp 实例配置
虚拟机
  • 配置
    • 添加现有磁盘
    • 添加新磁盘
    • 添加或移除设备
    • 高级配置
    • 更改 CPU 数量
    • 更改资源
    • 配置 managedBy
    • 切换磁盘更改跟踪
    • 获取磁盘租用
    • 显示连接设置
    • 扩展虚拟磁盘
    • 配置主机 USB 设备。
    • 更改内存。
    • 修改设备设置
    • 查询容错兼容性
    • 查询无主文件
    • 配置原始设备。
    • 从路径重新加载
    • 移除磁盘
    • 重命名
    • 重置客机信息
    • 设置注释
    • 更改设置。
    • 更改交换文件位置。
    • 切换分支父级
    • 升级虚拟机兼容性
  • 客机操作
    • 客机操作别名修改
    • 客机操作别名查询
    • 客机操作修改
    • 客机操作程序执行
    • 客机操作查询
  • 交互
    • 回答问题
    • 备份虚拟机上的操作
    • 配置 CD 介质
    • 配置软盘介质
    • 控制台交互
    • 创建屏幕截图
    • 对所有磁盘进行碎片整理
    • 设备连接
    • 拖放
    • 通过 VIX API 管理客机操作系统
    • 注入 USB HID 扫描代码
    • 暂停或取消暂停
    • 执行擦除或收缩操作
    • 关机
    • 开机
    • 记录虚拟机上的会话
    • 重放虚拟机上的会话
    • 重置
    • 恢复容错
    • 暂停
    • 暂停容错
    • 测试故障切换
    • 测试重启辅助虚拟机
    • 关闭容错
    • 启用容错
    • VMware 工具安装
  • 资产清单
    • 从现有清单创建
    • 新建
    • 移动
    • 注册
    • 移除
    • 取消注册
  • 预配
    • 允许磁盘访问
    • 允许文件访问
    • 允许只读磁盘访问
    • 允许虚拟机下载
    • 允许虚拟机文件上传
    • 克隆模板
    • 克隆虚拟机
    • 从虚拟机创建模板
    • 自定义访客。
    • 部署模板
    • 标记为模板
    • 标记为虚拟机
    • 修改自定义规范
    • 提升磁盘
    • 读取自定义规范
  • 服务配置
    • 允许通知
    • 允许轮询全局事件通知
    • 管理服务配置
    • 修改服务配置
    • 查询服务配置
    • 读取服务配置
  • 快照管理
    • 创建快照
    • 移除快照
    • 重命名快照
    • 还原到快照
  • vSphere 复制
    • 配置复制
    • 管理复制
    • 监控复制

创建自定义角色和权限

组织管理员可以使用 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
govc role.create anthos
Cns.Searchable
Cryptographer.Access
Datastore.AllocateSpace
Datastore.Browse
Datastore.Config
Datastore.FileManagement
Datastore.DeleteFile
Datastore.UpdateVirtualMachineFiles
Datastore.UpdateVirtualMachineMetadata
Folder.Create
Folder.Delete
Folder.Move
Folder.Rename
Host.Inventory.EditCluster
InventoryService.Tagging.CreateTag
InventoryService.Tagging.DeleteTag
InventoryService.Tagging.AttachTag
InventoryService.Tagging.ObjectAttachable
Sessions.ValidateSession
Network.Assign
Resource.ApplyRecommendation
Resource.AssignVMToPool
Resource.ColdMigrate
Resource.HotMigrate
Resource.QueryVMotion
StorageViews.View
System.Anonymous
System.Read
System.View
Task.Create
Task.Update
VApp.Import
VApp.ApplicationConfig
VApp.InstanceConfig
VirtualMachine.Config.AddExistingDisk
VirtualMachine.Config.AddNewDisk
VirtualMachine.Config.AddRemoveDevice
VirtualMachine.Config.AdvancedConfig
VirtualMachine.Config.Annotation
VirtualMachine.Config.CPUCount
VirtualMachine.Config.Resource
VirtualMachine.Config.ManagedBy
VirtualMachine.Config.ChangeTracking
VirtualMachine.Config.DiskLease
VirtualMachine.Config.MksControl
VirtualMachine.Config.DiskExtend
VirtualMachine.Config.HostUSBDevice
VirtualMachine.Config.Memory
VirtualMachine.Config.EditDevice
VirtualMachine.Config.QueryFTCompatibility
VirtualMachine.Config.QueryUnownedFiles
VirtualMachine.Config.RawDevice
VirtualMachine.Config.ReloadFromPath
VirtualMachine.Config.RemoveDisk
VirtualMachine.Config.Rename
VirtualMachine.Config.ResetGuestInfo
VirtualMachine.Config.Settings
VirtualMachine.Config.SwapPlacement
VirtualMachine.Config.ToggleForkParent
VirtualMachine.Config.UpgradeVirtualHardware
VirtualMachine.GuestOperations.ModifyAliases
VirtualMachine.GuestOperations.QueryAliases
VirtualMachine.GuestOperations.Modify
VirtualMachine.GuestOperations.Execute
VirtualMachine.GuestOperations.Query
VirtualMachine.Interact.AnswerQuestion
VirtualMachine.Interact.Backup
VirtualMachine.Interact.SetCDMedia
VirtualMachine.Interact.SetFloppyMedia
VirtualMachine.Interact.ConsoleInteract
VirtualMachine.Interact.CreateScreenshot
VirtualMachine.Interact.DefragmentAllDisks
VirtualMachine.Interact.DeviceConnection
VirtualMachine.Interact.DnD
VirtualMachine.Interact.GuestControl
VirtualMachine.Interact.PutUsbScanCodes
VirtualMachine.Interact.Pause
VirtualMachine.Interact.SESparseMaintenance
VirtualMachine.Interact.PowerOff
VirtualMachine.Interact.PowerOn
VirtualMachine.Interact.Record
VirtualMachine.Interact.Replay
VirtualMachine.Interact.Reset
VirtualMachine.Interact.EnableSecondary
VirtualMachine.Interact.Suspend
VirtualMachine.Interact.DisableSecondary
VirtualMachine.Interact.MakePrimary
VirtualMachine.Interact.TerminateFaultTolerantVM
VirtualMachine.Interact.TurnOffFaultTolerance
VirtualMachine.Interact.CreateSecondary
VirtualMachine.Interact.ToolsInstall
VirtualMachine.Inventory.CreateFromExisting
VirtualMachine.Inventory.Create
VirtualMachine.Inventory.Move
VirtualMachine.Inventory.Register
VirtualMachine.Inventory.Delete
VirtualMachine.Inventory.Unregister
VirtualMachine.Provisioning.DiskRandomAccess
VirtualMachine.Provisioning.FileRandomAccess
VirtualMachine.Provisioning.DiskRandomRead
VirtualMachine.Provisioning.GetVmFiles
VirtualMachine.Provisioning.PutVmFiles
VirtualMachine.Provisioning.CloneTemplate
VirtualMachine.Provisioning.Clone
VirtualMachine.Provisioning.CreateTemplateFromVM
VirtualMachine.Provisioning.Customize
VirtualMachine.Provisioning.DeployTemplate
VirtualMachine.Provisioning.MarkAsTemplate
VirtualMachine.Provisioning.MarkAsVM
VirtualMachine.Provisioning.ModifyCustSpecs
VirtualMachine.Provisioning.PromoteDisks
VirtualMachine.Provisioning.ReadCustSpecs
VirtualMachine.Namespace.Event
VirtualMachine.Namespace.EventNotify
VirtualMachine.Namespace.Management
VirtualMachine.Namespace.ModifyContent
VirtualMachine.Namespace.Query
VirtualMachine.Namespace.ReadContent
VirtualMachine.State.CreateSnapshot
VirtualMachine.State.RemoveSnapshot
VirtualMachine.State.RenameSnapshot
VirtualMachine.State.RevertToSnapshot
VirtualMachine.Hbr.ConfigureReplication
VirtualMachine.Hbr.ReplicaManagement
VirtualMachine.Hbr.MonitorReplication

创建授予 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 和存储要求