本文档介绍当 vCenter 配置包含父文件夹时,如何在集群配置文件中指定 vSphere 对象。它还说明了从 1.13.0 开始的预检验证应用的命名规则。
假设以下示例 vCenter 配置指示从 vCenter 根目录到特定对象的路径
主机和集群 |
虚拟机和模板 |
存储 |
网络 |
---|---|---|---|
my-vcenter my-datacenter-folder my-datacenter my-cluster-folder my-cluster my-resourcepool |
my-vcenter my-datacenter-folder my-datacenter my-vm-folder |
my-vcenter my-datacenter-folder my-datacenter my-storage-folder my-datastore |
my-vcenter my-datacenter-folder my-datacenter my-network-folder my-portgroup |
如需使用 my-datastore 和 my-portgroup 在 my-resource-pool 和 my-vm-folder 中创建 Anthos 集群,请指定以下管理员集群配置:
vCenter: address: "my-vcenter" datacenter: "my-datacenter-folder/my-datacenter" cluster: "my-cluster-folder/my-cluster" resourcePool: "my-resourcepool" datastore: "my-datastore" folder: "my-vm-folder" network: vCenter: networkName: "my-network-folder/my-portgroup"
如果资源池嵌套在另一个资源池下,请在管理员集群配置中指定资源池的完整路径,如以下示例所示:
vCenter: address: "my-vcenter" datacenter: "my-datacenter-folder/my-datacenter" cluster: "my-cluster-folder/my-cluster" resourcePool: "my-cluster-folder/my-cluster/Resources/my-resourcepool/my-nested-resourcepool" datastore: "my-datastore" folder: "my-vm-folder" network: vCenter: networkName: "my-network-folder/my-portgroup"
如需使用 my-datastore 和 my-portgroup 在默认 ResourcePool 中创建 Anthos 管理员集群,请指定以下集群配置:
vCenter: address: "my-vcenter" datacenter: "my-datacenter-folder/my-datacenter" cluster: "my-cluster-folder/my-cluster" resourcePool: "my-cluster-folder/my-cluster/Resources" datastore: "my-datastore" folder: "my-vm-folder" network: vCenter: networkName: "my-network-folder/my-portgroup"
如果您的 vm 文件夹嵌套在另一个 vm 文件夹中,请在管理员集群配置中指定该 vm 文件夹的完整路径,如以下示例所示:
vCenter: address: "my-vcenter" datacenter: "my-datacenter-folder/my-datacenter" cluster: "my-cluster-folder/my-cluster" resourcePool: "my-resourcepool" datastore: "my-datastore" folder: "/my-datacenter-folder/my-datacenter/vm/my-vm-folder/my-nested-vm-folder" network: vCenter: networkName: "my-network-folder/my-portgroup"
请注意,虚拟机文件夹完整路径中必须包含第一个“/”。
这同样适用于用户集群和管理员工作站配置,因为 vCenter 部分在这些配置文件中很常见。
命名规则
指定数据存储区时不要指定父文件夹,因为数据存储区名称在数据中心内必须是唯一的。如果指定了文件夹,则会返回以下错误:
Datastore name 'storage-folder/my-datastore' should not contain parent folders
对于所有其他 vSphere 对象类型,当 vCenter 配置包含父文件夹时,应指定父文件夹。如果集群配置中未指定所需的父文件夹,但 vCenter 配置中存在所需的文件夹,则会返回以下错误:
Parent folder is not specified for cluster, you must specify the full path 'clusters/my-cluster' in the cluster field
- gkectl create
- gkectl check-config
在以下示例情况下,vSphere 对象解析仍然有歧义:
- 集群从之前的版本升级,该版本违反了命名规则且 vCenter 配置包含有冲突的文件夹/对象,以及
- 在集群创建期间不存在但后来添加了名称冲突的对象
例如,假设给定 vCenter 配置
my-vcenter my-datacenter-folder my-datacenter my-cluster-folder my-cluster my-resourcepool
接下来,如果后来添加了以下层次结构
my-vcenter my-datacenter-folder my-datacenter my-cluster my-resourcepool
如果配置文件未在创建集群期间指定 my-cluster-folder,则“my-resourcepool”的解析有歧义
您可能会遇到以下错误: path 'my-resourcepool' resolves to multiple resource pools
通常,当对象解析不明确时,vSphere 库会返回以下错误消息:
path xxx resolves to multiple objects
如需解决此错误,请确保路径不包含冲突的对象名称(例如,一个对象名称在文件夹中,另一个不在)。移除或重命名不属于该集群并导致冲突的对象。由于创建集群后 vSphere 字段是不可变的,因此如果无法通过修改 vCenter 配置来解决冲突,则需要创建新的集群。