本页面介绍 Anthos clusters on VMware (GKE On-Prem) 用户集群配置文件中的字段。
生成配置文件模板
如果您使用 gkeadm
创建管理员工作站,则 gkeadm
会为您的用户集群配置文件生成一个模板。此外,gkeadm
还为您填写了一些字段。
如果您未使用 gkeadm
创建管理员工作站,则可以使用 gkectl
为用户集群配置文件生成模板。
如需为用户集群配置文件生成模板,请运行以下命令:
gkectl create-config cluster --config=OUTPUT_FILENAME --gke-on-prem-version=VERSION
替换以下内容:
OUTPUT_FILENAME
:您为生成的模板选择的路径。如果省略此标志,则 gkectl
将该文件命名为 user-cluster.yaml
,并将其放在当前目录中。
VERSION
:所需的版本号。例如:gkectl create-config cluster --gke-on-prem-version=1.10.0-gke.8
。
模板
填写配置文件
在配置文件中,按照以下部分的说明输入字段值。
name
必需
不可变字符串
您为用户集群选择的名称。该名称必须:
- 最多包含 40 个字符
- 只能包含小写字母数字字符或连字符 (
-
) - 以字母字符开头
- 以字母数字字符结尾
例如:
name: "my-user-cluster"
gkeOnPremVersion
必需
可变字符串
用户集群的 Anthos clusters on VMware 版本。
例如:
gkeOnPremVersion: "1.10.0-gke.1"
vCenter
本部分包含有关您的 vSphere 环境以及与 vCenter Server 的连接的信息。
如果您希望本部分中的某字段与您为管理员集群指定的字段相同,请移除该字段或将其注释掉。
如果您希望某字段与您为管理员集群指定的字段不同,请在这里填写该字段。您在 vCenter
部分中填写的任何字段都将覆盖管理员集群配置文件中的相应字段。
vCenter.datacenter
不可变字符串
默认值:继承自管理员集群
具有将运行用户集群虚拟机的物理 ESXi 主机的 vCenter 数据中心的名称。
例如:
vCenter: datacenter: "my-datacenter-2"
如果指定了该字段,则您还必须指定 vCenter.datastore
和 vCenter.networkName
,并且必须指定 vCenter.cluster
或 vCenter.resourcePool
。请参阅在单独的数据中心创建用户集群。
vCenter.cluster
不可变字符串
默认值:继承自管理员集群
具有运行用户集群虚拟机的 ESXi 主机的 vSphere 集群的名称。此 vSphere 集群是一组物理 ESXi 主机,它们构成了 vCenter 数据中心内的部分物理 ESXi 主机。
例如:
vCenter: cluster: "my-vsphere-cluster-2"
vCenter.resourcePool
不可变字符串
默认值:继承自管理员集群
您的用户集群虚拟机的 vCenter 资源池的名称。
例如:
vCenter: resourcePool: "my-resource-pool-2"
要使用默认资源池,请将此设置为 VSPHERE_CLUSTER/Resources。
例如:
vCenter: resourcePool: "my-vsphere-cluster-2/Resources"
如需了解详情,请参阅为独立主机指定根资源池。
vCenter.datastore
不可变字符串
默认值:继承自管理员集群
您的用户集群虚拟机的 vCenter 数据存储区的名称。
例如:
vCenter: datastore: "my-datastore-2"
vCenter.caCertPath
可变字符串
默认值:继承自管理员集群
您的 vCenter 服务器的 CA 证书的路径。 如需了解详情,请参阅获取 vCenter CA 证书。
例如:
vCenter: caCertPath: "/usr/local/google/home/me/certs/vcenter-ca-cert-2.pem"
如需了解如何更新此字段,请参阅更新 vCenter 证书引用。
vCenter.credentials.fileRef.path
可变字符串
默认值:继承自管理员集群
凭据配置文件的路径,该文件包含您的 vCenter 用户帐号的用户名和密码。用户帐号必须具有 Administrator 角色或同等特权。请参阅 vSphere 要求。
您可以使用 gkectl update credentials
在现有集群中更新此字段。如需了解详情,请参阅轮替服务帐号密钥。
如需了解如何更新 vCenter 凭据,请参阅更新集群凭据。
例如:
vCenter: credentials: fileRef: path: "my-config-directory/my-credentials-2.yaml"
vCenter.credentials.fileRef.entry
可变字符串
默认值:继承自管理员集群
凭据配置文件中的凭据块名称,该文件包含您的 vCenter 用户帐号的用户名和密码。
例如:
vCenter: credentials: fileRef: entry: "vcenter-credentials-2"
vCenter.folder
不可变字符串
默认值:继承自管理员集群
您的集群虚拟机所在的 vCenter 文件夹的名称。
例如:
vCenter: folder: "my-folder-2"
network
本部分包含有关用户集群网络的信息。
network.hostConfig
本部分包含有关集群节点虚拟机使用的 NTP 服务器、DNS 服务器和 DNS 搜索网域的信息。如果您使用的是 Seesaw 负载均衡器,则此信息也适用于 Seesaw 虚拟机。
network.hostConfig.dnsServers
可选
不可变的字符串数组
虚拟机的 DNS 服务器的地址。
例如:
network: hostConfig: dnsServers: - "172.16.255.1" - "172.16.255.2"
network.hostConfig.ntpServers
可选
不可变的字符串数组
供虚拟机使用的时间服务器地址。
例如:
network: hostConfig: ntpServers: - "216.239.35.0"
network.hostConfig.searchDomainsForDNS
可选
不可变的字符串数组
供主机使用的 DNS 搜索网域。这些网域会用作网域搜索列表的一部分。
例如:
network: hostConfig: searchDomainsForDNS: - "my.local.com"
network.ipMode.type
必需
不可变字符串
预填充:“dhcp”
默认值:“dhcp”
如果您希望集群节点从 DHCP 服务器获取其 IP 地址,请将此设置为 "dhcp"
。如果您希望集群节点从您提供的列表中选择静态 IP 地址,请将此设置为 "static"
。
例如:
network: ipMode: type: "static"
network.ipMode.ipBlockFilePath
必需(如果 network.ipMode.type
= static
)
不可变字符串
集群的 IP 地址块文件的路径。
例如:
network: ipMode: ipBlockFilePath: "/my-config-folder/user-cluster-ipblock.yaml"
network.serviceCIDR
必需
不可变字符串
预填充:“10.96.0.0/20”
用于集群中 Service 的 IP 地址范围(采用 CIDR 格式)。 范围必须至少为 /24。
例如:
network: serviceCIDR: "10.96.0.0/20"
network.podCIDR
必需
不可变字符串
预填充:“192.168.0.0/16”
默认值:“192.168.0.0/16”
用于集群中 Pod 的 IP 地址范围(采用 CIDR 格式)。 范围必须至少为 /18。
例如:
network: podCIDR: "192.168.0.0/16"
Service 范围不得与 Pod 范围重叠。
Service 和 pod 范围不得与您要从集群内部访问的任何集群外部地址重叠。
例如,假设您的 Service 范围为 10.96.232.0/24,您的 Pod 范围为 192.168.0.0/16。从 Pod 发送到上述任一范围中的地址的任何流量都将被视为集群内的流量,并且不会到达集群外部的任何目的地。
具体来说,Service 和 pod 范围不得与以下各项重叠:
任何集群中节点的 IP 地址
负载均衡器使用的 IP 地址
控制平面节点和负载均衡器使用的 VIP 地址
vCenter 服务器、DNS 服务器和 NTP 服务器的 IP 地址
我们建议您的 Service 和 Pod 范围位于 RFC 1918 地址空间中。
以下是建议使用 RFC 1918 地址的一个原因。假设您的 Pod 或 Service 范围包含外部 IP 地址。从 Pod 发送到其中一个外部地址的任何流量都将被视为集群内流量,并且不会到达外部目标。
network.vCenter.networkName
必需
不可变字符串
您的用户集群节点所在的 vSphere 网络的名称。
如果名称中包含特殊字符,您必须对其使用转义序列。
特殊字符 | 转义序列 |
---|---|
正斜杠 (/ ) |
%2f |
反斜杠 (\ ) |
%5c |
百分号 (% ) |
%25 |
如果网络名称不是唯一的,则可以指定网络的路径,例如 /datacenter-2/network/my-network
。
例如:
network: vCenter: networkName: "my-user-cluster-network"
network.vCenter.additionalNodeInterfaces
如果将 multipleNetworkInterfaces
设置为 true
,请填写此部分。
否则,请移除此部分或将其注释掉。
对象数组,其中每个对象都描述一个可用于全部或部分集群节点的网络接口。
network.vCenter.additionalNodeInterfaces[i].networkName
必需(如果 multipleNetworkInterfaces
= true
)
不可变字符串
此额外的节点接口将连接到的 vSphere 网络的名称。
例如:
network: vCenter: additionalNodeInterfaces: - networkName: "my-node-interface-1"
network.vCenter.additionalNodeInterfaces[i].type
必需(如果 multipleNetworkInterfaces
= true
)
不可变字符串
例如:
network: vCenter: additionalNodeInterfaces: - name: "my-node-interface-1" type: "static"
network.vCenter.additionalNodeInterfaces[i].ipBlockFilePath
必需(如果 network.vCenter.additionalNodeInterfaces[i].type
= static
)
不可变字符串
IP 地址块文件的路径,该文件包含在具有此网络接口的节点上用于此网络接口的 IP 地址。
例如:
network: vCenter: additionalNodeInterfaces: - name: "my-node-interface-1" type: "static" ipBlockFilePath: "my-ipblock-file-1"
loadBalancer
本部分包含有关用户集群的负载均衡器的信息。
loadBalancer.vips.controlPlaneVIP
必需
不可变字符串
您已选择在负载均衡器上为用户集群的 Kubernetes API 服务器配置的 IP 地址。
例如:
loadBalancer: vips: controlplaneVIP: "203.0.113.3"
loadBalancer.vips.ingressVIP
必需
不可变字符串
您选择在负载均衡器上为入站流量代理配置的 IP 地址。
例如:
loadBalancer: vips: ingressVIP: "203.0.113.4"
loadBalancer.kind
必需
不可变字符串
请将此设置为 "ManualLB"
、"F5BigIP"
、"Seesaw"
或 "MetalLB"
。
例如:
loadBalancer: kind: "MetalLB"
loadBalancer.manualLB
如果将 loadbalancer.kind
设置为 "manualLB"
,请填写此部分。否则,请移除此部分或将其注释掉。
loadBalancer.manualLB.ingressHTTPNodePort
必需(如果 loadBalancer.kind
= ManualLB
)
不可变整数
用户集群中的入站流量代理由 LoadBalancer
类型的 Kubernetes Service 公开。该 Service 具有用于 HTTP 的 ServicePort。您必须为 HTTP ServicePort 选择 nodePort
值。
将此字段设置为 nodePort
值。
例如:
loadBalancer: manualLB: ingressHTTPNodePort: 32527
loadBalancer.manualLB.ingressHTTPSNodePort
必需(如果 loadBalancer.kind
= ManualLB
)
不可变整数
用户集群中的入站流量代理由 LoadBalancer 类型的 Service 公开。该 Service 具有用于 HTTPS 的 ServicePort。您必须为 HTTPS ServicePort 选择 nodePort
值。
将此字段设置为 nodePort
值。
例如:
loadBalancer: manualLB: ingressHTTPSNodePort: 30139
loadBalancer.manualLB.controlPlaneNodePort
必需(如果 loadBalancer.kind
= ManualLB
)
不可变整数
在管理员集群中运行并由 LoadBalancer
类型的 Service 公开的用户集群的 Kubernetes API 服务器。您必须为 Service 选择 nodePort
值。
将此字段设置为 nodePort
值。
例如:
loadBalancer: manualLB: controlPlaneNodePort: 30968
loadBalancer.manualLB.konnectivityServerNodePort
必需(如果 loadBalancer.kind
= ManualLB
)
不可变整数
在管理员集群中运行并由 LoadBalancer
类型的 Service 公开的用户集群的 Kubernetes API 服务器。Konnectivity 服务器会通过不同的 nodePort
值重复使用此 Service。您必须为 Konnectivity 服务器选择 nodePort
值。
将此字段设置为 Konnectivity 服务器的 nodePort
值。
例如:
loadBalancer: manualLB: konnectivityServerNodePort: 30969
loadBalancer.manualLB.addonsNodePort
删除该字段。在用户集群中不使用它。
loadBalancer.f5BigIP
如果将 loadbalancer.kind
设置为 "f5BigIP"
,请填写此部分。否则,请移除此部分或将其注释掉。
loadBalancer.f5BigIP.address
必需(如果 loadBalancer.kind
= "f5BigIP"
)
不可变字符串
F5 BIG-IP 负载均衡器的地址。
例如:
loadBalancer: f5BigIP: address: "203.0.113.2"
loadBalancer.f5BigIP.fileRef.path
必需(如果 loadBalancer.kind
= "f5BigIP"
)
可变字符串
凭据文件的路径,该文件包含 Anthos clusters on VMware 用于连接到 F5 BIG-IP 负载均衡器的帐号的用户名和密码。
用户帐号必须拥有有充分权限设置和管理负载均衡器的用户角色。管理员角色或资源管理员角色足够。
如需了解如何更新 F5 BIG-IP 凭据,请参阅更新集群凭据。
例如:
loadBalancer: f5BigIP: fileRef: path: ""my-config-folder/user-creds.yaml"
loadBalancer.f5BigIP.fileRef.entry
必需(如果 loadBalancer.kind
= "f5BigIP"
)
不可变字符串
凭据配置文件中的凭据块名称,该文件包含 F5 BIG-IP 帐号的用户名和密码。
例如:
loadBalancer: f5BigIP: fileRef: entry: "f5-creds"
loadBalancer.f5BigIP.partition
必需(如果 loadBalancer.kind
= "f5BigIP"
)
不可变字符串
您为管理员集群创建的 BIG-IP 分区的名称。
例如:
loadBalancer: f5BigIP: partition: "my-f5-admin-partition"
loadBalancer.f5BigIP.snatPoolName
必需(如果 loadBalancer.kind
= "f5BigIP"
并且您使用的是 SNAT)
不可变字符串
SNAT 池的名称。
例如:
loadBalancer: f5BigIP: snatPoolName: "my-snat-pool"
loadBalancer.seesaw
如果将 loadbalancer.kind
设置为 "Seesaw"
,请填写此部分。否则,请移除此部分或将其注释掉。
如需了解如何设置 Seesaw 负载均衡器,请参阅 Seesaw 负载均衡器快速入门和使用 Seesaw 进行捆绑式负载均衡。
loadBalancer.seesaw.ipBlockFilePath
必需(如果 loadBalancer.kind
= Seesaw
)
不可变字符串
您的 Seesaw 虚拟机的 IP 地址块文件的路径。
例如:
loadBalancer: seesaw: ipBlockFilePath: "config-folder/user-seesaw-ipblock.yaml"
loadBalancer.seesaw.vrid
必需(如果 loadBalancer.kind
= Seesaw
)
不可变整数
可能的值:1 - 255
预填充:0
您的 Seesaw 虚拟机的虚拟路由器标识符。此标识符(您选择的整数)在 VLAN 中必须是唯一的。
例如:
loadBalancer: seesaw: vrid: 125
loadBalancer.seesaw.masterIP
必需(如果 loadBalancer.kind
= Seesaw
)
不可变字符串
主 Seesaw 虚拟机上配置的虚拟 IP 地址。
例如:
loadBalancer: seesaw: masterIP: 172.16.20.21
loadBalancer.seesaw.cpus
必需(如果 loadBalancer.kind
= Seesaw
)
不可变整数
预填充:4
每个 Seesaw 虚拟机的 CPU 数量。
例如:
loadBalancer: seesaw: cpus: 8
loadBalancer.seesaw.memoryMB
必需(如果 loadBalancer.kind
= Seesaw
)
不可变整数
预填充:3072
每个 Seesaw 虚拟机的内存大小(以 MiB 为单位)。
例如:
loadBalancer: seesaw: memoryMB: 8192
注意:此字段指定内存兆比字节 (MiB) 数,而不是兆字节 (MB) 数。1 MiB 为 2^20 = 1048576 字节。1 MB 为 10^6 = 100 万字节。
loadBalancer.seesaw.vCenter.networkName
可选
不可变字符串
默认值:与集群节点相同
包含 Seesaw 虚拟机的 vCenter 网络的名称。
例如:
loadBalancer: seesaw: vCenter: networkName: "my-seesaw-network"
loadBalancer.seesaw.enableHA
可选
相关(如果 loadBalancer.kind
= Seesaw
)
不可变布尔值
预填充:false
默认值:false
如果要创建高可用性 (HA) Seesaw 负载均衡器,请将此值设置为 true
。否则,请将其设置为 false
。高可用性 Seesaw 负载均衡器使用(主备)虚拟机对。
例如:
loadBalancer: seesaw: enableHA: true
loadBalancer.seesaw.disableVRRPMAC
可选
相关(如果 loadBalancer.kind
= Seesaw
)
不可变布尔值
预填充:true
默认值:true
如果将此值设置为 true
,则 Seesaw 负载均衡器不会使用 MAC 学习进行故障切换,而是会使用免费 ARP。如果将其设置为 false
,则 Seesaw 负载均衡器会使用 MAC 学习。我们建议您将此值设置为 true
。如果您使用的是 vSphere 7 或更高版本,并且具有高可用性 Seesaw 负载均衡器,则必须将此值设置为 true
。
例如:
loadBalancer: seesaw: disableVRRPMAC: true
loadBalancer.metalLB
如果将 loadbalancer.kind
设置为 "MetalLB"
,请填写此部分。否则,请移除此部分或将其注释掉。
如需了解详情,请参阅使用 MetalLB 进行捆绑式负载均衡。
loadBalancer.metalLB.addressPools
必需(如果 loadBalancer.kind
= 'MetalLB')
可变对象数组,每个对象都保存有关 MetalLB 负载均衡器要使用的地址池的信息。
loadBalancer.metalLB.addressPools[i].name
必需(如果 loadBalancer.kind
= MetalLB
)
可变字符串
您为地址池选择的名称。
例如:
loadBalancer: metalLB: addressPools: - name: "my-address-pool-1"
loadBalancer.metalLB.addressPools[i].addresses
必需(如果 loadBalancer.kind
= MetalLB
)
可变的字符串数组,其中每个字符串都是一个地址范围。每个范围都必须采用 CIDR 格式或带连字符的范围格式。
例如:
loadBalancer: metalLB: addressPools: - name: "my-address-pool-1" addresses: - "192.0.2.0/26" - "192.0.2.64-192.0.2.72"
loadBalancer.metalLB.addressPools[i].avoidBuggyIPs
可选
相关(如果 loadBalancer.kind
= MetalLB
)
可变布尔值
预填充:false
默认值:false
如果将该字段设置为 true
,则 MetalLB 控制器不会将以 .0 或 .255 结尾的 IP 地址分配给 Service。这样可以避免有问题的用户设备错误地丢弃发送到这些特殊 IP 地址的流量。
例如:
loadBalancer: metalLB: addressPools: - name: "my-address-pool-1" - "192.0.2.0/26" - "192.0.2.64-192.0.2.72" avoidBuggyIPs: true
loadBalancer.metalLB.addressPools[i].manualAssign
可选
相关(如果 loadBalancer.kind
= MetalLB
)
可变布尔值
预填充:false
默认值:false
如果您不希望 MetalLB 控制器自动将此池中的 IP 地址分配给 Service,请将该字段设置为 true
。之后,开发者便可以创建 LoadBalancer
类型的 Service 并手动指定池中的一个地址。
否则,请将其设置为 false
。
例如:
loadBalancer: metalLB: addressPools: - name: "my-address-pool-1" manualAssign: true
enableDataplaneV2
可选
不可变布尔值
预填充:false
默认值:false
如果您要启用 Dataplane V2,请将此字段设置为 true
。否则,请将其设置为 false
。
例如:
enableDataplaneV2: true
如需了解问题排查步骤,请参阅数据平面 V2 问题排查。
enableWindowsDataplaneV2
预览版
可选
不可变布尔值
预填充:false
默认值:false
如果要为具有 Windows 节点的集群启用 Windows Dataplane V2,请将此字段设置为 true
。否则,请将其设置为 false
。
如果 enableWindowsDataplaneV2
设置为 true
,则系统会启用 containerd 运行时(而不是 Docker 运行时)。
例如:
enableWindowsDataplaneV2: true
如需了解问题排查步骤,请参阅数据平面 V2 问题排查。 如需设置包含 Windows Server 操作系统节点的节点池,请参阅 Windows Server 操作系统节点池用户指南。
multipleNetworkInterfaces
预览版
可选
不可变布尔值
预填充:false
默认值:false
如果要为 Pod 启用多个网络接口,请将此值设置为 true
。否则,请将其设置为 false
。
如需了解详情,请参阅为 Pod 配置多个网络接口。
示例:
multipleNetworkInterfaces: true
advancedNetworking
预览版
可选
布尔值
预填充:false
默认值:false
如果您计划创建出站 NAT 网关,请将此字段设置为 true
。否则,请将其设置为 false
。
如果您将此字段设置为 true
,则还必须将 enableDataplaneV2
设置为 true
。
例如:
advancedNetworking: true
masterNode
本部分包含有关管理员集群中节点(用作此用户集群的控制平面节点)的信息。
masterNode.vsphere.datastore
可选(如果 vCenter.datacenter
从管理员集群继承)
必需(如果 vCenter.datacenter
不等于管理员集群的数据中心)
不可变字符串
默认值:如果 vCenter.datacenter
从管理员集群继承,则此字段默认为在此配置文件中指定的 vCenter.datastore
。
默认值:如果 vCenter.datacenter
与管理员集群的数据中心不同,则此字段没有默认值。
此用户集群的控制平面节点的 vSphere 数据存储区。
例如:
masterNode: vsphere: datastore: "control-plane-datastore"
masterNode.cpus
可选
可变整数
预填充:4
默认值:4
用作此用户集群控制平面的各管理员集群节点的 CPU 数。
例如:
masterNode: cpus: 8
masterNode.memoryMB
可选
可变整数
预填充:8192
默认值:8192
用作此用户集群控制平面的每个管理员集群节点的内存大小(以 MiB 为单位)。必须是 4 的倍数。
例如:
masterNode: memoryMB: 8192
注意:此字段指定内存兆比字节 (MiB) 数,而不是兆字节 (MB) 数。1 MiB 为 2^20 = 1048576 字节。1 MB 为 10^6 = 100 万字节。
masterNode.replicas
可选
不可变整数
可能的值:1 或 3
预填充:1
默认值:1
此用户集群的控制平面节点数量。创建集群后,此数字便无法更改。如果您希望稍后更新副本数量,则必须重新创建用户集群。
用户集群的控制平面节点位于管理员集群中。
例如:
masterNode: replicas: 3
masterNode.autoResize.enabled
可选
可变布尔值
预填充:false
默认值:false
将此字段设置为 true
以启用用户集群控制平面节点的自动大小调整功能。否则,请将其设置为 false
。
用户集群的控制平面节点位于管理员集群中。
如需了解详情,请参阅为用户集群的控制平面节点启用节点大小调整。
例如:
masterNode: autoResize: enabled: true
masterNode.vsphere.datastore
可选
不可变字符串
默认值:vCenter.datastore
的值
将在其中创建此用户集群的控制平面节点的数据存储区。
例如:
masterNode: vSphere: datastore: "control-plane-datastore"
nodePools
必需
对象数组,其中每个对象都描述一个节点池。
如需了解详情,请参阅创建和管理节点池。
nodePools[i].name
必需
可变字符串
您为节点池选择的名称。该名称必须:
- 最多包含 40 个字符
- 只能包含小写字母数字字符或连字符 (
-
) - 以字母字符开头
- 以字母数字字符结尾
例如:
nodePools: - name: "my-node-pool-1"
nodePools[i].cpus
必需
可变整数
预填充:4
池中每个节点的 vCPU 数量。
例如:
nodePools" - name: "my-node-pool" cpus: 8
nodePools[i].memoryMB
必需
可变整数
预填充:8192
池中每个节点的内存大小(以 MiB 为单位)。必须是 4 的倍数。
例如:
nodePools" - name: "my-node-pool" memoryMB: 8192
注意:此字段指定内存兆比字节 (MiB) 数,而不是兆字节 (MB) 数。1 MiB 为 2^20 = 1048576 字节。1 MB 为 10^6 = 100 万字节。
nodePools[i].replicas
必需
可变整数
预填充:3
可能的值:数组的所有节点池中未污染的节点总数必须至少为 3。
池中的节点数。
例如:
nodePools: - name: "my-node-pool" replicas: 5
nodePools[i].bootDiskSizeGB
可选
可变整数
预填充:40
默认值:40
池中每个节点的启动磁盘的大小(以吉比字节为单位)。
例如:
nodePools - name: "my-node-pool" bootDiskSizeGB: 40
nodePools[i].osImageType
可选
可变字符串
可能的值:“ubuntu”、“ubuntu_containerd”、“cos”、“windows”
预填充:“ubuntu_containerd”
默认值:“ubuntu_containerd”
要在节点池中的虚拟机上运行的操作系统映像类型。
例如:
nodePools - name: "my-node-pool" osImageType: "ubuntu_containerd"
nodePools[i].osImage
必需(如果 nodePools[i].osImageType
= windows
)
可变字符串
Windows 虚拟机模板的名称。该模板必须基于具有 en-US 语言/区域标记的 Windows Server 2019 ISO。
如需了解详情,请参阅 Windows Server 操作系统节点池用户指南。
nodePools[i].labels
可选
可变映射
要应用于池中每个 Kubernetes 节点对象的标签。
例如:
nodePools: - name: "my-node-pool" labels: environment: "production" tier: "cache"
nodePools[i].taints
可选
可变对象数组,每个对象都描述了一个污点。
例如:
nodePools: - name: "my-node-pool" taints: - key: "staging" value: "true" effect: "NoSchedule"
nodePools[i].vsphere.datastore
可选
可变字符串
默认值:vCenter.datastore
的值
将在其中创建节点的 vCenter 数据存储区的名称。
例如:
nodePools: - name: "my-node-pool" vsphere: datastore: "my-datastore"
nodePools[i].vsphere.tags
可选
可变对象的数组,每个对象都描述要放置在节点池中的虚拟机上的 vSphere 标记。
每个标记都有一个类别和名称。
例如:
nodePools: - name: "my-node-pool" vsphere: tags: - category: "purpose" name: "testing"
如果要将标记附加到节点池中的所有虚拟机,您的 vCenter 用户帐号必须具有以下 vSphere 标记权限:
- vSphere 标记。分配或取消分配 vSphere 标记
- vSphere 标记。在对象上分配或取消分配 vSphere 标记 (vSphere 7)
nodePools[i].autoscaling
预览版
可选
如果要为节点池启用自动扩缩功能,请填写此部分。否则,请移除此部分或将其注释掉。
nodePools[i].autoscaling.minReplicas
可选
可变整数
可能的值:大于或等于 1
预填充:0
自动扩缩器可以为池设置的最小节点数。
例如:
nodePools: - name: "my-node-pool" autoscaling: minReplicas: 5
nodePools[i].autoscaling.maxReplicas
可选
可变整数
预填充:0
自动扩缩器可以为池设置的最大节点数。
例如:
nodePools: - name: "my-node-pool" autoscaling: maxReplicas: 10
nodePools[i].enableLoadBalancer
预览版
可选
相关(如果 loadBalancer.kind
= "MetalLB"
)
可变布尔值
预填充:false
默认值:false
如果要允许 MetalLB speaker 在池中的节点上运行,请将此值设置为 true
。否则,请将其设置为 false
。
如需了解详情,请参阅捆绑式负载均衡。
例如:
nodePools: - name: "my-node-pool" enableLoadBalancer: true
antiAffinityGroups.enabled
必需
可变布尔值
预填充:true
将此值设为 true
可启用 DRS 规则创建。否则,请将其设置为 false
。
例如:
antiAffinityGroups: enabled true
Anthos clusters on VMware 会自动为您的用户集群节点创建 VMware 分布式资源调度器 (DRS) 反亲和性规则,使其分布到数据中心内的至少三个物理主机上。
为了使用此功能,您的 vSphere 环境必须满足以下条件:
VMware DRS 已启用。VMware DRS 需要 vSphere Enterprise Plus 许可版本。
您的 vSphere 用户帐号具有
Host.Inventory.Modify cluster
特权。至少有三个物理主机可用。
回想一下,如果您拥有 vSphere Standard 许可,则无法启用 VMware DRS。
如果您未启用 DRS,或没有至少三个主机可供安排 vSphere 虚拟机,请将 antiAffinityGroups.enabled
设置为 false
。
enableVMTracking
预览版
可选
预填充:false
将此值设为 true
以启用基于 vSphere 标记的虚拟机跟踪。否则,请将其设置为 false
。
如需了解详情,请参阅启用虚拟机跟踪。
例如:
enableVMTracking: true
authentication
本部分包含有关如何对集群用户进行身份验证和授权的信息。
authentication.oidc
请勿使用本部分。请改为在创建集群后,按照使用 OIDC 为 Anthos Identity Service 配置集群中所述修改 ClientConfig 自定义资源。
authentication.sni
可选
如果要为集群的 Kubernetes API 服务器提供其他服务证书,请填写此部分。否则,请移除此部分或将其注释掉。
authentication.sni.certPath
可选
不可变字符串
Kubernetes API 服务器服务证书的路径。
例如:
authentication: sni: certPath: "my-cert-folder/example.com.crt"
authentication.sni.keyPath
可选
不可变字符串
证书私钥文件的路径。
例如:
authentication: sni: keyPath: "my-cert-folder/example.com.key"
gkeConnect
必填
本部分包含您在向 Google Cloud 舰队注册您的集群时,需要用到的 Google Cloud 项目和服务帐号的信息。
gkeConnect.projectID
必需
不可变字符串
舰队宿主项目的 ID。
例如:
gkeConnect: projectID: "my-fleet-host-project-123"
gkeConnect.registerServiceAccountKeyPath
必需
可变字符串
连接和注册服务帐号的 JSON 密钥文件的路径。
要更新此字段的值,请使用 gkectl update cluster
。
如需了解如何更改连接和注册服务帐号密钥,请参阅轮替服务帐号密钥。
例如:
gkeConnect: registerServiceAccountKeyPath: "my-key-folder/connect-register-key.json"
stackdriver
如果要为集群启用 Cloud Logging 和 Cloud Monitoring,请填写此部分的信息。否则,请移除此部分或将其注释掉。
stackdriver.projectID
必需(对于 Logging 和 Monitoring)
不可变字符串
日志记录和监控项目的 ID。这是您将在其中查看日志和指标的 Cloud 项目。
例如:
stackdriver: projectID: "my-logs-project"
stackdriver.clusterLocation
必需(对于 Logging 和 Monitoring)
不可变字符串
预填充:“us-central1”
您要在其中存储日志的 Google Cloud 区域。建议选择一个靠近您的本地数据中心的区域。
例如:
stackdriver: clusterLocation: "us-central1"
stackdriver.enableVPC
可选
不可变布尔值
预填充:false
如果集群的网络由 VPC 控制,请将此字段设置为 true
。这样可以确保所有遥测流都通过 Google 的受限 IP 地址。否则,请将其设置为 false
。
例如:
stackdriver: enableVPC: false
stackdriver.serviceAccountKeyPath
必需(对于 Logging 和 Monitoring)
可变字符串
您的日志记录和监控服务帐号的 JSON 密钥文件的路径。
要更新此字段的值,请使用 gkectl update cluster
。
如需了解如何更改日志记录和监控服务帐号密钥,请参阅轮替服务帐号密钥。
例如:
stackdriver: serviceAccountKeyPath: "my-key-folder/log-mon-key.json"
stackdriver.disableVsphereResourceMetrics
可选
不可变布尔值
预填充:false
默认值:false
将此属性设置为 true
可停用从 vSphere 收集指标。否则,请将其设置为 false
。
例如:
stackdriver: disableVsphereResourceMetrics: true
usageMetering
Alpha 版
可选
如果要为集群启用用量计量功能,请填写此部分。否则,请移除此部分或将其注释掉。
usageMetering.bigQueryProjectID
Alpha 版
必需(对于用量计量)
不可变字符串
您要在其中存储用量计量数据的 Google Cloud 项目的 ID。
例如:
usageMetering: bigQueryProjectID: "my-bq-project"
usageMetering.bigQueryDatasetID
Alpha 版
必需(对于用量计量)
不可变字符串
您要在其中存储用量计量数据的 BigQuery 数据集的 ID。例如:
usageMetering: bigQueryDatasetID: "my-bq-dataset"
usageMetering.bigQueryServiceAccountKeyPath
Alpha 版
必需(对于用量计量)
可变字符串。
BigQuery 服务帐号的 JSON 密钥文件的路径。
要更新此字段的值,请使用 gkectl update cluster
。
如需了解如何更改 BigQuery 服务帐号密钥,请参阅轮替服务帐号密钥。
例如:
usageMetering: bigQueryServiceAccountKeyPath: "my-key-folder/bq-key.json"
usageMetering.enableConsumptionMetering
Alpha 版
必需(对于用量计量)
不可变布尔值
预填充:false
如果要启用基于消耗量的计量功能,请将此值设置为 true
。否则,请将其设置为 false。
例如:
usageMetering: enableConsumptionMetering: true
cloudAuditLogging
如果要将集群的 Kubernetes API 服务器中的审核日志与 Cloud Audit Logs 集成,请填写此部分。否则,请移除此部分或将其注释掉。
cloudAuditLogging.projectID
必需(对于 Cloud Audit Logs)
不可变字符串
要在其中存储审核日志的 Google Cloud 项目的 ID。
例如:
cloudAuditLogging: projectID: "my-audit-project"
cloudAuditLogging.clusterLocation
必需(对于 Cloud Audit Logs)
不可变字符串
您要在其中存储审核日志的 Google Cloud 区域。建议选择一个靠近您的本地数据中心的区域
例如:
cloudAuditLogging: clusterLocation: "us-central1"
cloudAuditLogging.serviceAccountKeyPath
预览版
必需(对于 Cloud Audit Logs)
可变字符串
审核日志记录服务帐号的 JSON 密钥文件的路径。
要更新此字段的值,请使用 gkectl update cluster
。
如需了解如何更改审核和日志记录服务帐号密钥,请参阅轮替服务帐号密钥。
例如:
cloudAuditLogging: serviceAccountKeyPath: "my-key-folder/audit-log-key.json"
autoRepair.enabled
必需
可变布尔值
预填充:true
将此属性设置为 true
以启用节点自动修复。否则,请将其设置为 false
。
例如:
autoRepair: enabled: true
secretsEncryption
如果您想加密 Secret 而无需外部 KMS(密钥管理服务)或任何其他依赖项,请填写此部分。否则,请移除此部分或将其注释掉。
secretsEncryption.mode
必需(对于 Secret 加密)
不可变字符串
可能的值:“GeneratedKey”
预填充:“GeneratedKey”
Secret 加密模式。
secretsEncryption: mode: "GeneratedKey"
secretsEncryption.generatedKey.keyVersion
必需(对于 Secret 加密)
可变整数
预填充:1
您选择用于密钥版本号的整数。我们建议您从 1
开始。
如需了解如何为现有集群更新此字段,请参阅始终开启的 Secret 加密。
例如:
secretsEncryption: generatedKey: keyVersion: 1
secretsEncryption.generatedKey.disabled
必需(对于 Secret 加密)
可变布尔值
预填充:false
将此值设置为 true
以停用 Secret 加密。否则,请将其设置为 false
。
如需了解如何为现有集群更新此字段,请参阅始终开启的 Secret 加密。
例如:
secretsEncryption: generatedKey: disabled: false