本文档介绍了 1.29 版 Google Distributed Cloud 的管理员集群配置文件中的字段。
生成配置文件模板
如果您使用了 gkeadm
来创建管理员工作站,则 gkeadm
为您的管理员集群配置文件生成了一个模板。此外,gkeadm
还为您填写了一些字段。
如果您未使用 gkeadm
创建管理员工作站,则可以使用 gkectl
为管理员集群配置文件生成模板。
如需为管理员集群配置文件生成模板,请运行以下命令:
gkectl create-config admin --config=OUTPUT_FILENAME --gke-on-prem-version=VERSION
将 OUTPUT_FILENAME
替换为您为生成的模板选择的路径。如果省略此标志,则 gkectl
将该文件命名为 admin-cluster.yaml
,并将其放在当前目录中。
将 VERSION
替换为 1.29 版补丁的完整版本。例如:gkectl create-config admin --gke-on-prem-version=1.29.400-gke.81
。此版本必须等于或小于 gkectl
版本。如果省略此标志,则生成的配置模板会填充基于最新 1.29 版补丁的值。
模板
填写配置文件
在配置文件中,按照以下部分的说明输入字段值。
name
可选
字符串
默认值:前缀为“gke-admin-”的随机名称
您为集群选择的名称。
示例:
name: "my-admin-cluster"
bundlePath
必需
可变
字符串
Google Distributed Cloud 软件包文件的路径。
Google Distributed Cloud 完整软件包文件包含特定 Google Distributed Cloud 版本中的所有组件。创建管理员工作站时,该工作站会随附以下完整软件包:
/var/lib/gke/bundles/gke-onprem-vsphere-VERSION-full.tgz
示例:
bundlePath: "/var/lib/gke/bundles/gke-onprem-vsphere-1.10.0-gke.8.full.tgz"
preparedSecrets.enabled
预览版
可选
不可变
布尔值
预填充:false
默认值:false
如果要在管理员集群中使用准备好的凭据,请将此值设置为 true
。否则,请将其设置为 false
。
示例:
preparedSecrets: enabled: true
vCenter
必需
不可变
本部分包含有关您的 vSphere 环境以及与 vCenter Server 连接的信息。
vCenter.address
必需
不可变
字符串
您的 vCenter 服务器的 IP 地址或主机名。
如需了解详情,请参阅查找 vCenter 服务器地址。
示例:
vCenter: address: "203.0.113.100"
vCenter: address: "my-vcenter-server.my-domain.example"
vCenter.datacenter
必需
不可变
字符串
vSphere 数据中心的相对路径。
您指定的值是相对于名为 /
的根文件夹而言的。
如果数据中心位于根文件夹中,则该值是数据中心的名称。
示例:
vCenter: datacenter: "my-data-center"
否则,该值是相对路径,其中包含一个或多个文件夹以及数据中心的名称。
示例:
vCenter: datacenter: "data-centers/data-center-1"
vCenter.cluster
必需
不可变
字符串
vSphere 集群的相对路径,代表将运行管理员集群虚拟机的 ESXi 主机。此 vSphere 集群代表 vCenter 数据中心内的物理 ESXi 主机的一部分。
您指定的值相对于 /.../DATA_CENTER/vm/
。
如果您的 vSphere 集群位于 /.../DATA_CENTER/vm/
文件夹中,则该值是 vSphere 集群的名称。
示例:
vCenter: cluster: "my-vsphere-cluster"
否则,该值是相对路径,其中包含一个或多个文件夹以及 vSphere 集群的名称。
示例:
vCenter: cluster: "clusters/vsphere-cluster-1"
vCenter.resourcePool
必需
不可变
字符串
管理员集群虚拟机的 vCenter 资源池。
如果您要使用默认资源池,请将此字段设置为 VSPHERE_CLUSTER/Resources
。
示例:
vCenter: resourcePool: "my-vsphere-cluster/Resources"
如果您要使用已创建的资源池,请将其设置为资源池的相对路径。
您指定的值相对于 /.../DATA_CENTER/host/.../VSPHERE_CLUSTER/Resources/
如果资源池是 /.../DATA_CENTER/host/.../VSPHERE_CLUSTER/Resources/
的直接子级,则该值是资源池的名称。
示例:
vCenter: resourcePool: "my-resource-pool"
否则,该值是相对路径,其中包含两个或更多个资源池。
示例:
vCenter: resourcePool: "resource-pool-1/resource-pool-2"
vCenter.datastore
如果未指定 vCenter.storagePolicyName
,则为必需
不可变
字符串
您的管理员集群的 vSphere 数据存储区的名称。
您指定的值必须是名称,而不是路径。请勿在值中包含任何文件夹。
示例:
vCenter: datastore: "my-datastore"
您必须为 vCenter.datastore
或 vCenter.storagePolicyName
指定值,但不能同时为两者指定值。如果为此字段指定了值,则请勿为 vCenter.storagePolicyName
指定值。vCenter.datastore
字段不可变,但在将数据存储区迁移到基于存储政策的管理 (SPBM) 时,您可以将该字段设置为空字符串。
vCenter.storagePolicyName
如果未指定 vCenter.datastore
,则为必需
不可变
字符串
集群节点的虚拟机存储政策的名称。
管理员集群必须具有高可用性 (HA),才能使用存储政策。
如需了解详情,请参阅配置存储政策。
您必须为 vCenter.datastore
或 vCenter.storagePolicyName
指定值,但不能同时为两者指定值。如果为此字段指定了值,则请勿为 vCenter.datastore
指定值。
vCenter.caCertPath
必需
可变
字符串
您的 vCenter 服务器的 CA 证书的路径。
如需了解详情,请参阅获取 vCenter CA 证书。
如需了解如何为现有集群更新此字段,请参阅更新 vCenter 证书引用。
示例:
vCenter: caCertPath: "/usr/local/google/home/me/certs/vcenter-ca-cert.pem"
vCenter.credentials.fileRef.path
必需
字符串
凭据配置文件的路径,该文件包含您的 vCenter 用户账号的用户名和密码。用户账号应具有 Administrator 角色或同等权限。请参阅 vSphere 要求。
您可以使用 gkectl update
在现有集群中更新此字段。
如需了解如何更新 vCenter 凭据,请参阅更新集群凭据。
示例:
vCenter: credentials: fileRef: path: "my-config-folder/admin-creds.yaml"
vCenter.credentials.fileRef.entry
必需
字符串
凭据配置文件中的凭据块名称,该文件包含您的 vCenter 用户账号的用户名和密码。
您可以使用 gkectl update
在现有集群中更新此字段。
如需了解如何更新 vCenter 凭据,请参阅更新集群凭据。
示例:
vCenter: credentials: fileRef: entry: "vcenter-creds"
vCenter.folder
可选
不可变
字符串
默认值:数据中心范围的文件夹
您已创建的 vSphere 文件夹的相对路径。此文件夹将用于存储管理员集群虚拟机。
如果未指定值,则管理员集群虚拟机将放在 /.../DATA_CENTER/vm/
中。
如果指定值,则相对于 /.../DATA_CENTER/vm/
。
该值可以是文件夹的名称。
示例:
vCenter: folder: "my-folder"
或者,该值可以是相对路径,其中包含多个文件夹。
示例:
vCenter: folder: "folders/folder-1"
vCenter.dataDisk
请勿为此字段提供值。请删除该字段或将其注释掉。
network
必需
不可变
本部分包含有关管理员集群网络的信息。
network.hostConfig
必需
不可变
本部分包含有关集群节点虚拟机使用的 NTP 服务器、DNS 服务器和 DNS 搜索网域的信息。
network.hostConfig.dnsServers
如果填写了 network.hostConfig
部分,则此字段是必需的。
不可变
字符串数组。
数组中的元素数量上限为 3。
虚拟机的 DNS 服务器的地址。
示例:
network: hostConfig: dnsServers: - "172.16.255.1" - "172.16.255.2"
network.hostConfig.ntpServers
如果填写了 network.hostConfig
部分,则此字段是必需的。
不可变
字符串数组
供虚拟机使用的时间服务器地址。
示例:
network: hostConfig: ntpServers: - "216.239.35.0"
network.hostConfig.searchDomainsForDNS
可选
不可变
字符串数组
供虚拟机使用的 DNS 搜索网域。这些网域会用作网域搜索列表的一部分。
示例:
network: hostConfig: searchDomainsForDNS: - "my.local.com"
network.ipMode.type
必需
不可变
字符串
预填充值:“static”
默认值:“dhcp”
如果您希望集群节点从 DHCP 服务器获取其 IP 地址,请将此设置为 "dhcp"
。如果您希望集群节点从您提供的列表中选择静态 IP 地址,请将此设置为 "static"
。
示例:
network: ipMode: type: "static"
network.ipMode.ipBlockFilePath
必需(如果 network.ipMode.type
= static
)
不可变
字符串
集群的 IP 地址块文件的路径。
示例:
network: ipMode: ipBlockFilePath: "/my-config-folder/admin-cluster-ipblock.yaml"
network.serviceCIDR
必需
不可变
字符串
可能的最小范围:/24
最大可能范围:/12
预填充值:“10.96.232.0/24”
默认值:“10.96.232.0/24”
用于集群中 Service 的 IP 地址范围(采用 CIDR 格式)。
示例:
network: serviceCIDR: "10.96.232.0/24"
network.podCIDR
必需
不可变
字符串
最小可能范围:/18
最大可能范围:/8
预填充值:“192.168.0.0/16”
默认值:“192.168.0.0/16”
用于集群中 Pod 的 IP 地址范围(采用 CIDR 格式)。
示例:
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 网络的名称。
示例:
network: vCenter: networkName: "my-network"
如果名称中包含特殊字符,您必须对其使用转义序列。
特殊字符 | 转义序列 |
---|---|
正斜杠 (/ ) |
%2f |
反斜杠 (\ ) |
%5c |
百分号 (% ) |
%25 |
如果网络名称在数据中心内不是唯一的,则可以指定完整路径。
示例:
network: vCenter: networkName: "/data-centers/data-center-1/network/my-network"
network.controlPlaneIPBlock
必需
network.controlPlaneIPBlock.netmask
必需
不可变
字符串
具有控制平面节点的网络的网络掩码。
示例:
network: controlPlaneIPBlock: netmask: "255.255.255.0"
network.controlPlaneIPBlock.gateway
必需
不可变
字符串
控制平面节点默认网关的 IP 地址。
示例:
network: controlPlaneIPBlock: gateway: "172.16.22.1"
network.controlPlaneIPBlock.ips
必需
不可变
包含三个对象的数组,其中每个对象都具有 IP 地址和可选主机名。
这些是将分配给控制平面节点的 IP 地址。
示例:
network: controlPlaneIPBlock: ips: - ip: "172.16.22.6" hostname: "admin-cp-vm-1" - ip: "172.16.22.7" hostname: "admin-cp-vm-2" - ip: "172.16.22.8" hostname: "admin-cp-vm-3"
loadBalancer
本部分包含有关管理员集群的负载均衡器的信息。
loadBalancer.vips.controlPlaneVIP
必需
不可变
字符串
您选择为管理员集群的 Kubernetes API 服务器在负载均衡器上配置的 IP 地址。
示例:
loadBalancer: vips: controlplaneVIP: "203.0.113.3"
loadBalancer.kind
1.30 及更高版本
必需
不可变
字符串
预填充值:“MetalLB”
字符串。请将此字段设置为 "ManualLB"
或 "MetalLB"
。
如需启用新功能和高级功能,如果您有第三方负载均衡器(例如 F5 BIG-IP 或 Citrix),请使用 "ManualLB"
;对于我们的捆绑解决方案,请使用 "MetalLB"
。
注意与先前版本的以下差异:
在 1.30 及更高版本中,对于新管理员集群,不允许使用值
"F5BigIP"
。在 1.28 及更高版本中,对于新管理员集群,不允许使用值
"Seesaw"
。
如果您已有使用这些负载均衡器的集群,请参阅以下迁移指南:
示例:
loadBalancer:
kind: "MetalLB"
1.28 和 1.29
必需
不可变
字符串
预填充值:“MetalLB”
字符串。请将此设置为 "ManualLB"
、"F5BigIP"
或 "MetalLB"
如需启用新功能和高级功能,如果您有第三方负载均衡器(例如 F5 BIG-IP 或 Citrix),我们建议您使用 "ManualLB"
;对于我们的捆绑解决方案,建议使用 "MetalLB"
。
在 1.28 及更高版本中,对于新管理员集群,不允许使用值 "Seesaw"
。如果您已有使用 Seesaw 负载均衡器的集群,请参阅从 Seesaw 负载均衡器迁移到 MetalLB。
示例:
loadBalancer:
kind: "MetalLB"
1.16 及更低版本
必需
不可变
字符串
预填充值:“MetalLB”
字符串。请将此设置为 "ManualLB"
、"F5BigIP"
、"Seesaw"
或 "MetalLB"
如果您将 adminMaster.replicas
设置为 3
,则无法使用 Seesaw 负载均衡器。
示例:
loadBalancer:
kind: "MetalLB"
loadBalancer.manualLB
如果将 loadbalancer.kind
设置为 "ManualLB"
,请填写此部分。否则,请移除此部分。
不可变
loadBalancer.manualLB.ingressHTTPNodePort
从配置文件中移除此字段。此字段未在管理员集群中使用。
loadBalancer.manualLB.ingressHTTPSNodePort
从配置文件中移除此字段。此字段未在管理员集群中使用。
loadBalancer.manualLB.konnectivityServerNodePort
从配置文件中移除此字段。此字段未在管理员集群中使用。
loadBalancer.f5BigIP
1.30 及更高版本
在 1.30 及更高版本中,对于新管理员集群,loadbalancer.kind
不允许使用值 "F5BigIP"
。如果配置文件中包含 loadBalancer.f5BigIP
部分,请将其移除或注释掉。
您仍然可以将 F5 BIG-IP 负载均衡器与新管理员集群搭配使用,但配置不同。如需了解配置详细信息,请参阅启用手动负载均衡模式。
如果您已有 F5-BIG-IP 负载均衡器,并且集群配置使用此部分,则在升级到 1.29 或更高版本后,我们建议您迁移到手动负载均衡。
1.29
如果将 loadbalancer.kind
设置为 "f5BigIP"
,请填写此部分。
否则,请移除此部分。
如需启用新功能和高级功能,我们建议您为 F5 BIG-IP 负载均衡器配置手动负载均衡。如需启用手动负载均衡,请将 loadbalancer.kind
设置为 "ManualLB"
,并填写 loadBalancer.manualLB
部分。如需了解详情,请参阅启用手动负载均衡模式。
如果您已有 F5-BIG-IP 负载均衡器,并且集群配置使用此部分,则在升级到 1.29 或更高版本后,我们建议您迁移到手动负载均衡。
1.28 及更低版本
如果将 loadbalancer.kind
设置为 "f5BigIP"
,请填写此部分。
否则,请移除此部分。
如需启用新功能和高级功能,我们建议您为 F5 BIG-IP 负载均衡器配置手动负载均衡。如需启用手动负载均衡,请将 loadbalancer.kind
设置为 "ManualLB"
,并填写 loadBalancer.manualLB
部分。如需了解详情,请参阅启用手动负载均衡模式。
loadBalancer.f5BigIP.address
1.30 及更高版本
不允许用于新集群
必需(如果 loadBalancer.kind
= "f5BigIp"
)
不可变
字符串
F5 BIG-IP 负载均衡器的地址。例如:
loadBalancer:
f5BigIP:
address: "203.0.113.2"
1.29 及更低版本
必需(如果 loadBalancer.kind
= "f5BigIp"
)
不可变
字符串
F5 BIG-IP 负载均衡器的地址。例如:
loadBalancer:
f5BigIP:
address: "203.0.113.2"
loadBalancer.f5BigIP.credentials.fileRef.path
1.30 及更高版本
不允许用于新集群
必需(如果 loadBalancer.kind
= "f5BigIp"
)
可变
字符串
凭据配置文件的路径,该文件包含 Google Distributed Cloud 用于连接到 F5 BIG-IP 负载均衡器的账号的用户名和密码。
用户账号必须拥有有充分权限设置和管理负载均衡器的用户角色。管理员角色或资源管理员角色足够。
您可以使用 gkectl update
在现有集群中更新此字段。
如需了解如何更新 F5 BIG-IP 凭据,请参阅更新集群凭据。
示例:
loadBalancer:
f5BigIP:
credentials:
fileRef:
path: "my-config-folder/admin-creds.yaml"
1.29 及更低版本
必需(如果 loadBalancer.kind
= "f5BigIp"
)
可变
字符串
凭据配置文件的路径,该文件包含 Google Distributed Cloud 用于连接到 F5 BIG-IP 负载均衡器的账号的用户名和密码。
用户账号必须拥有有充分权限设置和管理负载均衡器的用户角色。管理员角色或资源管理员角色足够。
您可以使用 gkectl update
在现有集群中更新此字段。
如需了解如何更新 F5 BIG-IP 凭据,请参阅更新集群凭据。
示例:
loadBalancer:
f5BigIP:
credentials:
fileRef:
path: "my-config-folder/admin-creds.yaml"
loadBalancer.f5BigIP.credentialsfileRef.entry
1.30 及更高版本
不允许用于新集群
必需(如果 loadBalancer.kind
= "f5BigIp"
)
可变
字符串
凭据配置文件中的凭据块名称,该文件包含 F5 BIG-IP 账号的用户名和密码。
您可以使用 gkectl update
在现有集群中更新此字段。
如需了解如何更新 F5 BIG-IP 凭据,请参阅更新集群凭据。
示例:
loadBalancer:
f5BigIP:
credentials:
fileRef:
entry: "f5-creds"
1.29 及更低版本
必需(如果 loadBalancer.kind
= "f5BigIp"
)
可变
字符串
凭据配置文件中的凭据块名称,该文件包含 F5 BIG-IP 账号的用户名和密码。
您可以使用 gkectl update
在现有集群中更新此字段。
如需了解如何更新 F5 BIG-IP 凭据,请参阅更新集群凭据。
示例:
loadBalancer:
f5BigIP:
credentials:
fileRef:
entry: "f5-creds"
loadBalancer.f5BigIP.partition
1.30 及更高版本
不允许用于新集群
必需(如果 loadBalancer.kind
= "f5BigIp"
)
不可变
字符串
您为管理员集群创建的 BIG-IP 分区的名称。
示例:
loadBalancer:
f5BigIP:
partition: "my-f5-admin-partition"
1.29 及更低版本
必需(如果 loadBalancer.kind
= "f5BigIp"
)
不可变
字符串
您为管理员集群创建的 BIG-IP 分区的名称。
示例:
loadBalancer:
f5BigIP:
partition: "my-f5-admin-partition"
loadBalancer.f5BigIP.snatPoolName
1.30 及更高版本
不允许用于新集群
可选
相关(如果 loadBalancer.kind
= "f5BigIp"
)
不可变
字符串
如果您使用的是 SNAT,则它是 SNAT 池的名称。如果您不使用 SNAT,请移除此字段。
示例:
loadBalancer:
f5BigIP:
snatPoolName: "my-snat-pool"
1.29 及更低版本
可选
相关(如果 loadBalancer.kind
= "f5BigIp"
)
不可变
字符串
如果您使用的是 SNAT,则它是 SNAT 池的名称。如果您不使用 SNAT,请移除此字段。
示例:
loadBalancer:
f5BigIP:
snatPoolName: "my-snat-pool"
loadBalancer.seesaw
请勿使用本部分。1.28 版及更高版本中的新管理员集群不支持 Seesaw 负载均衡器。我们建议您为新的管理员集群配置 MetalLB 负载均衡器。如需详细了解如何配置 MetalLB,请参阅使用 MetalLB 进行捆绑式负载均衡。
虽然我们仍支持已升级的非 HA 管理员集群使用 Seesaw,但建议您迁移到 MetalLB。
antiAffinityGroups.enabled
可选
可变
布尔值
预填充值:true
将此值设为 true
可启用 DRS 规则创建。否则,请将其设置为 false
。
示例:
antiAffinityGroups: enabled: true
如果此字段为 true
,则 Google Distributed Cloud 会为您的管理员集群节点创建 VMware 分布式资源调度器 (DRS) 反亲和性规则,使它们分布在数据中心的至少三个物理 ESXi 主机上。
为了使用此功能,您的 vSphere 环境必须满足以下条件:
VMware DRS 已启用。VMware DRS 需要 vSphere Enterprise Plus 许可版本。
您的 vSphere 用户账号具有
Host.Inventory.Modify cluster
特权。至少有四个 ESXi 主机可用。
即使该规则要求群集节点分布在三个 ESXi 主机上,我们强烈建议您至少有四个可用的 ESXi 主机。这样可以防止您丢失管理员集群控制平面。例如,假设您只有三个 ESXi 主机,并且您的管理员集群控制平面节点位于发生故障的 ESXi 主机上。DRS 规则将阻止控制平面节点放置在其余两个 ESXi 主机之一上。
回想一下,如果您拥有 vSphere Standard 许可,则无法启用 VMware DRS。
如果您未启用 DRS,或没有至少四个主机可供安排 vSphere 虚拟机,请将 antiAffinityGroups.enabled
设置为 false
。
adminMaster
不可更改
管理员集群中控制平面节点的配置设置。
adminMaster.cpus
预览版
可选
不可变
整数
预填充值:4
默认值:4
管理员集群中每个控制平面节点的 vCPU 数量。
示例:
adminMaster: cpus: 4
adminMaster.memoryMB
预览版
可选
不可变
整数
预填充值:16384
默认值:16384
管理员集群中每个控制平面节点的内存大小(以 MiB 为单位)。
示例:
adminMaster: memoryMB: 16384
adminMaster.replicas
1.28 及更高版本
对于新集群是必需的
不可变
整数
可能的值:3
管理员集群中的控制平面节点数量。在 1.28 及更高版本中,新管理员集群必须具有高可用性 (HA)。将此字段设置为 3
可创建包含 3 个控制平面节点的 HA 管理员集群。
示例:
adminMaster:
replicas: 3
1.16 及更低版本
可选
不可变
整数
可能的值:1 或 3
预填充值:1
默认值:1
管理员集群中的控制平面节点数量。如果要创建高可用性管理员集群,请将此字段设置为 3
。否则,请将其设置为 1
。
如果您将此字段设置为 3
,则还必须填写 network.controlPlaneIPBlock
部分和 network.hostConfig
部分。
如果将此字段设置为 3
,则无法使用 Seesaw 负载均衡器。
示例:
adminMaster:
replicas: 3
proxy
如果您的网络由代理服务器提供支持,请填写此部分。否则,请移除此部分或将其注释掉。 您在此处指定的代理服务器会被此管理员集群管理的用户集群使用。
不可变
proxy.url
如果填写了 proxy
部分,则此字段是必需的。
不可变
字符串
代理服务器的 HTTP 地址。即使端口号与该方案的默认端口相同,也要填写此端口号。
示例:
proxy: url: "http://my-proxy.example.local:80"
您在此处指定的代理服务器会被 Google Distributed Cloud 集群使用。此外,除非您在管理员工作站上设置 HTTPS_PROXY
环境变量,否则您的管理员工作站会自动配置为使用同一代理服务器。
如果您指定 proxy.url
,则还必须指定 proxy.noProxy
。
设置管理员集群的代理配置后,除非重新构建集群,否则无法修改或删除该配置。
proxy.noProxy
可选
不可变
字符串
不应通过代理服务器的 IP 地址、IP 地址范围、主机名和域名的列表(以英文逗号分隔)。当 Google Distributed Cloud 向这些地址、主机或网域之一发送请求时,系统会直接发送请求。
示例:
proxy: noProxy: "10.151.222.0/24,my-host.example.local,10.151.2.1"
privateRegistry
如果您有一个私有容器注册表,请填写此部分。否则,请移除此部分或将其注释掉。
privateRegistry.address
必需(对于私有注册表)
不可变
字符串
运行您的私有注册表的机器的 IP 地址或 FQDN(完全限定域名)。
示例:
privateRegistry: address: "203.0.113.10"
privateRegistry: address: "fqdn.example.com"
privateRegistry.credentials.fileRef.path
必需(对于私有注册表)
可变
字符串
凭据配置文件的路径,该文件包含 Google Distributed Cloud 可用于访问私有注册表的账号的用户名和密码。
示例:
privateRegistry: credentials: fileRef: path: "my-config-folder/admin-creds.yaml"
privateRegistry.credentials.fileRef.entry
必需(对于私有注册表)
可变
字符串
凭据配置文件中的凭据块名称,该文件包含您的私有注册表账号的用户名和密码。
privateRegistry: credentials: fileRef: entry: "private-registry-creds"
privateRegistry.caCertPath
必需(对于私有注册表)
可变
字符串
当容器运行时从您的私有注册表中拉取映像时,该注册表必须通过提供证书来证明其身份。注册表的证书由证书授权机构 (CA) 签名。容器运行时使用 CA 的证书来验证该注册表的证书。
将此字段设置为 CA 证书的路径。
示例:
privateRegistry: caCertPath: "my-cert-folder/registry-ca.crt"
componentAccessServiceAccountKeyPath
必需
可变
字符串
组件访问服务账号的 JSON 密钥文件的路径。
示例:
componentAccessServiceAccountKeyPath: "my-key-folder/access-key.json"
gkeConnect
必需
可变
如果填写 gkeConnect
部分,则管理员集群会在创建后自动注册到舰队。本部分包含有关注册集群所需的 Google Cloud 项目和服务账号的信息。
在创建或更新集群期间,系统会在管理员集群上配置多个 RBAC 政策。有了这些 RBAC 政策,您才能在 Google Cloud 控制台中创建用户集群。
gkeConnect.projectID
必需
不可变
字符串
舰队宿主项目的 ID。
对于新集群,此项目 ID 必须与 stackdriver.projectID
和 cloudAuditLogging.projectID
中设置的 ID 相同。如果项目 ID 不同,集群创建将失败。此要求不适用于现有集群。
示例:
gkeConnect: projectID: "my-fleet-host-project"
gkeConnect.location
可选
不可变
字符串
默认值:global
每个集群的舰队成员资格由 Fleet 服务 (gkehub.googleapis.com
) 和 Connect 服务 (gkeconnect.googleapis.com
) 管理。这些服务的位置可以是全球级的,也可以是区域级的。在 1.28 版及更高版本中,您可以选择指定 Fleet 和 Connect 服务运行的 Google Cloud 区域。如果未指定,则使用服务的全球实例。请注意以下几点:
在 1.28 版之前创建的管理员集群由全球舰队和 Connect 服务管理。
对于新集群,如果添加此字段,则您指定的区域必须与
cloudAuditLogging.clusterLocation
、stackdriver.clusterLocation
和gkeOnPremAPI.location
中配置的区域相同。如果区域不相同,集群创建将失败。
示例:
gkeConnect: location: "us-central1"
gkeConnect.registerServiceAccountKeyPath
必需
可变
字符串
连接和注册服务账号的 JSON 密钥文件的路径。
示例:
gkeConnect: registerServiceAccountKeyPath: "my-key-folder/connect-register-key.json"
gkeOnPremAPI
可选
在 1.16 及更高版本中,如果在 Google Cloud 项目中启用了 GKE On-Prem API,则项目中的所有集群会在 stackdriver.clusterLocation
中配置的区域中自动注册 GKE On-Prem API。
如果您想要在 GKE On-Prem API 中注册项目中的所有集群,请务必执行准备工作中的步骤,以在项目中激活和使用 GKE On-Prem API。
如果您不想在 GKE On-Prem API 中注册集群,请添加此部分并将
gkeOnPremAPI.enabled
设置为false
。如果您不想注册项目中的任何集群,请在项目中停用gkeonprem.googleapis.com
(GKE On-Prem API 的服务名称)。如需查看相关说明,请参阅停用服务。
在 GKE On-Prem API 中注册管理员集群后,您可以使用 Google Cloud 控制台、Google Cloud CLI 或 Terraform 这些标准工具来升级由管理员集群管理的用户集群。注册集群还可让您运行 gcloud
命令来获取集群的相关信息。
添加此部分并创建或更新管理员集群后,如果后续您移除此部分并更新集群,更新将失败。
gkeOnPremAPI.enabled
如果添加了 gkeOnPremAPI
部分,则此字段是必须的。
可变
布尔值
默认值:true
默认情况下,如果项目中启用了 GKE On-Prem API,则集群会在 GKE On-Prem API 中注册。如果您不想注册集群,请设置为 false
。
在 GKE On-Prem API 中注册集群后,如果您需要取消注册集群,请进行以下更改然后更新集群:
gkeOnPremAPI: enabled: false
gkeOnPremAPI.location
不可变
字符串
默认值:stackdriver.clusterLocation
Google Cloud 区域,GKE On-Prem API 在其中运行和存储集群元数据。选择一个支持的区域。您必须使用在 cloudAuditLogging.clusterLocation
、gkeConnect.location
和 stackdriver.clusterLocation
中配置的同一区域。如果 gkeOnPremAPI.enabled
为 false
,请勿添加此字段。
stackdriver
默认为必需
可变
如果要为集群启用 Cloud Logging 和 Cloud Monitoring,请填写此部分的信息。否则,请移除此部分。
默认情况下,此部分是必填的。也就是说,如果您不包括此部分,则必须在运行 gkectl create admin
时添加 --skip-validation-stackdriver
标志。
如果您要使用 GKE On-Prem API 客户端管理用户集群的生命周期,则此部分在管理员集群中是必需的。
stackdriver.projectID
对于 Logging 和 Monitoring 是必需的
不可变
字符串
舰队宿主项目的 ID。
对于新集群,此项目 ID 必须与 gkeConnect.projectID
和 cloudAuditLogging.projectID
中设置的 ID 相同。如果项目 ID 不同,集群创建将失败。此要求不适用于现有集群。
如果需要,您可以在此项目中配置日志路由器,以将日志路由到另一个项目中的日志存储桶。如需了解如何配置日志路由器,请参阅支持的目标位置。
示例:
stackdriver: projectID: "my-fleet-host-project"
stackdriver.clusterLocation
对于 Logging 和 Monitoring 是必需的
不可变
字符串
预填充值:“us-central1”
您要在其中存储日志的 Google Cloud 区域。建议选择一个靠近您的本地数据中心的区域。
对于新集群,如果您在配置文件中添加 gkeOnPremAPI
和 cloudAuditLogging
部分,则您在此处设置的区域必须与您在 cloudAuditLogging.clusterLocation
、gkeConnect.location
和 gkeOnPremAPI.location
中设置的区域相同。如果区域不相同,集群创建将失败。
示例:
stackdriver: clusterLocation: "us-central1"
stackdriver.enableVPC
可选
不可变
布尔值
预填充值:false
如果集群的网络由 VPC 控制,请将此字段设置为 true
。这样可以确保所有遥测流都通过 Google 的受限 IP 地址。否则,请将其设置为 false
。
示例:
stackdriver: enableVPC: false
stackdriver.serviceAccountKeyPath
对于 Logging 和 Monitoring 是必需的
可变
字符串
您的日志记录和监控服务账号的 JSON 密钥文件的路径。
如需了解如何更新现有集群中的此字段,请参阅轮替服务账号密钥。
示例:
stackdriver: serviceAccountKeyPath: "my-key-folder/log-mon-key.json"
stackdriver.disableVsphereResourceMetrics
可选
可变
相关(对于 Logging 和 Monitoring)
布尔值
预填充值:false
默认值:false
将此属性设置为 true
可停用从 vSphere 收集指标。否则,请将其设置为 false
。
如果您要在 Google Cloud 控制台中管理用户集群的生命周期,则此部分在管理员集群中是必需的。
示例:
stackdriver: disableVsphereResourceMetrics: true
cloudAuditLogging
如果要将集群的 Kubernetes API 服务器中的审核日志与 Cloud Audit Logs 集成,请填写此部分。否则,请移除此部分或将其注释掉。
可变
如果您要使用 GKE On-Prem API 客户端管理用户集群的生命周期,则此部分在管理员集群中是必需的。
cloudAuditLogging.projectID
对于 Cloud Audit Logs 是必需的
不可变
字符串
舰队宿主项目的 ID。对于新集群,此项目 ID 必须与 gkeConnect.projecID
和 stackdriver.projectID
中设置的 ID 相同。如果项目 ID 不同,集群创建将失败。此要求不适用于现有集群。
如果需要,您可以在此项目中配置日志路由器,以将日志路由到另一个项目中的日志存储桶。如需了解如何配置日志路由器,请参阅支持的目标位置。
示例:
cloudAuditLogging: projectID: "my-fleet-host-project"
cloudAuditLogging.clusterLocation
对于 Cloud Audit Logs 是必需的
不可变
字符串
您要在其中存储审核日志的 Google Cloud 区域。建议选择一个靠近您的本地数据中心的区域
对于新集群,如果您在配置文件中添加 gkeOnPremAPI
和 stackdriver
部分,则您在此处设置的区域必须与您在 gkeConnect.location
、gkeOnPremAPI.location
和 stackdriver.clusterLocation
中设置的区域相同。如果区域不相同,集群创建将失败。
示例:
cloudAuditLogging: clusterLocation: "us-central1"
cloudAuditLogging.serviceAccountKeyPath
对于 Cloud Audit Logs 是必需的
可变
字符串
审核日志记录服务账号的 JSON 密钥文件的路径。
如需了解如何更新现有集群中的此字段,请参阅轮替服务账号密钥。
示例:
cloudAuditLogging: serviceAccountKeyPath: "my-key-folder/audit-log-key.json"
clusterBackup.datastore
预览版
可选
可变
字符串
如果要启用备份管理员集群,请将此设置为您要用于保存集群备份的 vSphere 数据存储区。
示例:
clusterBackup: datastore: "my-datastore"
autoRepair.enabled
可选
可变
布尔值
预填充值:true
将此值设置为 true
以启用节点自动修复。否则,请将其设置为 false
。
要更新此字段的值,请使用 gkectl update admin
。
示例:
autoRepair: enabled: true
secretsEncryption
如果您想加密 Secret 而无需外部 KMS(密钥管理服务)或任何其他依赖项,请填写此部分。否则,请移除此部分或将其注释掉。
不可变
secretsEncryption.mode
对于 Secret 加密是必需的
不可变
字符串
可能的值:“GeneratedKey”
预填充值:“GeneratedKey”
Secret 加密模式。
secretsEncryption: mode: "GeneratedKey"
secretsEncryption.generatedKey.keyVersion
对于 Secret 加密是必需的
可变
整数
预填充值:1
您选择用于密钥版本号的整数。我们建议您从 1
开始。
示例:
secretsEncryption: generatedKey: keyVersion: 1
secretsEncryption.generatedKey.disabled
对于 Secret 加密是可选的
可变
布尔值
预填充值:false
将此值设置为 true
以停用 Secret 加密。否则,请将其设置为 false
。
示例:
secretsEncryption: generatedKey: disabled: false
osImageType
可选
可变
字符串
可能的值:“ubuntu_containerd”“cos”“ubuntu_cgv2”“cos_cgv2”
预填充值:“ubuntu_cgv2”
默认值:“ubuntu_containerd”
要在管理员集群节点上运行的操作系统映像的类型。
如果您指定 ubuntu_cgv2
或 cos_cgv2
,则必须先运行 gkectl prepare --extra-os-image-types=cgroupv2
,然后再创建/更新集群。
示例:
osImageType: "cos"