集群资源
必填
可更改
authentication
本部分包含使用 OpenID Connect (OIDC) 所需的设置。借助 OIDC,您可以使用现有的身份提供商来管理 Google Distributed Cloud 集群中的用户和群组身份验证。
集群资源
—
—
authentication.oidc.certificateAuthorityData
可选。OIDC 提供商的 base64
编码的 PEM 编码证书 。如需创建该字符串,请对证书(包括标头)进行 base64
编码。将生成的字符串作为单独的一行添加到 certificateAuthorityData
中。
例如(封装以适应表的示例):
certificateAuthorityData :
LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tC
...k1JSUN2RENDQWFT==
集群资源
可选
不可变
authentication.oidc.clientID
可选。字符串。向 OpenID 提供商发出身份验证请求的客户端应用的 ID。
集群资源
可选
不可变
authentication.oidc.clientSecret
可选。字符串。OIDC 客户端应用和 OIDC 提供商之间的共享密钥令牌。
集群资源
可选
不可变
authentication.oidc.deployCloudConsoleProxy
可选。布尔值 (true
|false
)。指定是否在集群中部署反向代理,以将 Google Cloud 控制台连接到无法通过互联网公开访问的本地身份提供商。如果无法通过公共互联网访问您的身份提供商,请将此字段设置为 true
,以进行 Google Cloud 控制台身份验证。此值默认设置为 false
。
集群资源
可选
不可变
可选。英文逗号分隔列表。要发送到 OpenID 提供商的其他键值对参数。
集群资源
可选
不可变
authentication.oidc.groupPrefix
可选。字符串。附加到群组声明的前缀,以防止与现有名称冲突。例如,给定一个群组 dev
和一个前缀 oidc:
,则格式为 oidc:dev
。
集群资源
可选
不可变
authentication.oidc.group
可选。字符串。
提供方用于返回安全群组的 JWT 声明。
集群资源
可选
不可变
authentication.oidc.issuerURL
可选。网址字符串。用于向 OpenID 发送授权请求的网址,例如 https://example.com/adfs
。Kubernetes API 服务器使用此网址来发现用于验证令牌的公钥。网址必须使用 HTTPS。
集群资源
可选
不可变
authentication.oidc.kubectlRedirectURL
可选。网址字符串。kubectl
用于授权的重定向网址。启用 OIDC 时,必须指定 kubectlRedirectURL
值。
集群资源
可选
不可变
authentication.oidc.proxy
可选。网址字符串。将集群连接到您的 OIDC 提供商时使用的代理服务器(如果适用)。该值应包含主机名/IP 地址,并可根据需要选择包含端口、用户名和密码。例如:http://user:password@10.10.10.10:8888
。
集群资源
可选
不可变
authentication.oidc.scopes
可选。英文逗号分隔列表。要发送到 OpenID 提供商的其他范围。Microsoft Azure 和 Okta 需要 offline_access
范围。
集群资源
可选
不可变
authentication.oidc.usernamePrefix
可选。字符串。附加到用户名声明前面的前缀。
集群资源
可选
不可变
authentication.oidc.username
可选。字符串。
用作用户名的 JWT 声明。如果未指定,则默认为 sub
。
集群资源
可选
不可变
bypassPreflightCheck
可选。布尔值 (true
|false
)。如果设置为 true
,则在将资源应用于现有集群时会忽略内部预检检查。默认为 false
。
可变性 :可以使用 bmctl update
命令为现有集群修改此值。
集群资源
可选
可更改
clusterNetwork
本部分包含集群的网络设置。
集群资源
必填
可更改
clusterNetwork.advancedNetworking
布尔值。将此字段设置为 true
以启用高级网络功能,例如使用 BGP 的捆绑式负载均衡或出站 NAT 网关。这两项功能都使用适用于 GDC 的网络网关。Network Gateway for GDC 是在 GKE Enterprise 和 Google Kubernetes Engine (GKE) 中启用高级网络功能的关键组件。适用于 GDC 的 Network Gateway 的主要优势之一是可以从您在 NetworkGatewayGroup
自定义资源中指定的一组地址动态分配浮动 IP 地址。
如需详细了解 Network Gateway for GDC 和相关的高级网络功能,请参阅配置出站流量 NAT 网关 和使用 BGP 配置捆绑式负载均衡器 。
集群资源
可选
不可变
clusterNetwork.bundledIngress
布尔值。将此字段设置为 false
可停用与 Google Distributed Cloud 捆绑的 Ingress 功能。集群的捆绑 Ingress 功能仅支持入站流量。如果您与 Istio 或 Cloud Service Mesh 集成,以获得功能全面的服务网格的额外优势,我们建议您停用捆绑式 Ingress。此字段默认设置为 true
。此字段不在生成的集群配置文件中。您只能为 1.13.0 版及更高版本的集群停用捆绑式 Ingress。
如需详细了解捆绑式 Ingress 功能,请参阅创建 Service 和 Ingress 。
集群资源
可选
可更改
clusterNetwork.flatIPv4
布尔值。将此字段设置成 true
以启用平面模式集群网络模型。在平面模式下,每个 pod 都有专属的唯一 IP 地址。Pod 可以直接相互通信,而无需中间网关或网络地址转换 (NAT)。flatIPv4
的默认值为 false
。您只能在创建集群期间启用平面模式。为集群启用平面模式后,无法将其停用。
集群资源
可选
不可变
clusterNetwork.forwardMode
可选。字符串。指定 Dataplane V2 负载均衡的网络模式。来源网络地址转换 (SNAT) 是默认的网络模式。直接服务器返回 (DSR) 模式可以解决 SNAT 负载均衡问题。在 DSR 模式 (forwardMode: dsr
) 下,负载均衡器节点使用 IP 选项来保存客户端来源地址。
只能在创建集群时配置 Dataplane V2 负载均衡的网络模式。
允许的值包括:dsr
| snat
如需了解详情,请参阅配置负载均衡网络模式 。
集群资源
可选
不可变
clusterNetwork.multipleNetworkInterfaces
可选。布尔值。将此字段设置为 true
可为 pod 启用多个网络接口。
如需详细了解如何设置和使用多个网络接口,请参阅为 Pod 配置多个网络接口 文档。
集群资源
可选
不可变
clusterNetwork.pods.cidrBlocks
必需。采用 CIDR 地址块格式的 IPv4 地址范围。pods 指定从哪个 IP 范围分配 pod 网络。
Pod CIDR 范围下限 :/18
的掩码值,对应于 14 位(16,384 个 IP 地址)的大小。
Pod CIDR 范围上限 :/8
的掩码值,对应于 24 位(16,777,216 个 IP 地址)的大小。
例如:
pods :
cidrBlocks :
- 192.168.0.0/16
集群资源
必填
不可变
clusterNetwork.sriovOperator
可选。布尔值。将此字段设置为 true
可为您的集群启用 SR-IOV 网络。
如需详细了解如何配置和使用 SR-IOV 网络,请参阅设置 SR-IOV 网络 文档。
集群资源
可选
可更改
clusterNetwork.services.cidrBlocks
必需。采用 CIDR 地址块格式的 IPv4 地址范围。指定从哪个 IP 地址范围分配服务虚拟 IP (VIP) 地址。此范围不得与可从您的网络访问的任何子网重叠。如需详细了解专用互联网的地址分配,请参阅 RFC 1918 。
从 Google Distributed Cloud 1.15.0 版开始,此字段是可变的。如果需要,您可以在创建集群后增加为服务分配的 IP 地址数量。如需了解详情,请参阅扩大服务网络范围 。
您只能扩大 IPv4 服务 CIDR 的范围,网络范围无法缩小,这意味着无法增大掩码(“/”之后的值)。
Service CIDR 范围下限 :/24
的掩码值,对应于 8 位(256 个地址)的大小。
Service CIDR 范围上限 :/12
的掩码值,对应于 20 位(1,048,576 个 IP 地址)的大小。
例如:
services :
cidrBlocks :
- 10.96.0.0/12
集群资源
必填
可更改
clusterOperations
本部分包含 Cloud Logging 和 Cloud Monitoring 的信息。
集群资源
必填
可更改
clusterOperations.enableApplication
此字段不再使用,并且无效。Stackdriver 自定义资源中启用了应用日志记录和监控功能。如需详细了解如何启用应用日志记录和监控功能,请参阅启用应用日志记录和监控功能 。
集群资源
免运维
可更改
clusterOperations.disableCloudAuditLogging
布尔值。Cloud Audit Logs 适用于调查可疑的 API 请求以及收集统计信息。Cloud Audit Logs 默认处于启用状态 (disableCloudAuditLogging: false
)。设置为 true
可停用 Cloud Audit Logs。
如需了解详情,请参阅使用审核日志记录 。
集群资源
可选
可更改
clusterOperations.location
字符串。您要存储 Logging 日志和 Monitoring 指标的 Google Cloud 区域。建议选择一个靠近您的本地数据中心的区域。如需了解详情,请参阅全球位置 。
例如:
location : us-central1
集群资源
必填
不可变
clusterOperations.projectID
字符串。要在其中查看日志和指标的 Google Cloud 项目的 ID。
集群资源
必填
不可变
controlPlane
本部分包含有关控制平面及其组件的信息。
集群资源
必填
可更改
可选。字符串数组(域名和 IP 地址)。主题备用名称 (SAN) 是 SSL 证书的一项功能,可让您定义证书对其有效的域名和子网域。在 Google Distributed Cloud 集群上,API 服务器证书的 SAN 默认包含控制平面节点的 IP 和 VIP 地址以及 Kubernetes DNS 名称。使用此字段向集群的 API 服务器证书添加额外的 SAN。域名必须符合 RFC 1035 。 如需了解详情,请参阅向 API 服务器证书添加域名 。
例如:
...
controlPlane :
apiServerCertExtraSANs :
- "demo-dns.example.com"
- "sample-dns.com"
nodePoolSpec :
...
此字段可以随时添加或更改。
集群资源
可选
可更改
controlPlane.nodePoolSpec
本部分指定控制平面及其组件所使用的节点池的 IP 地址。控制平面节点池规范(例如负载均衡器节点池规范 )是特殊的。此规范可声明并控制关键集群资源。此资源的规范来源是集群配置文件中的这个部分。请勿直接修改顶级控制平面节点池资源。请改为修改集群配置文件中的相关部分。
集群资源
必填
可更改
controlPlane.nodePoolSpec.nodes
必需。IP 地址数组。通常,此数组要么是单个机器的 IP 地址,要么是高可用性 (HA) 部署中三个机器的 IP 地址。
例如:
controlPlane :
nodePoolSpec :
nodes :
- address : 192.168.1.212
- address : 192.168.1.213
- address : 192.168.1.214
每次更新或升级集群时都可以更改此字段。
集群资源
必填
可更改
controlPlane.nodePoolSpec.nodes.address
必需。字符串(IPv4 地址)。指定节点池时,您可以使用 address
字段为每个节点的 SSH 访问权限指定默认 IPv4 地址。如需执行集群管理操作(例如安装和升级),您必须拥有 SSH 访问权限。默认情况下,此 IP 地址也用于数据和 Kubernetes 流量。但是,如果您为给定节点指定 k8sIP
地址,则流量会在该节点的两个地址之间拆分,并且 k8sIP
地址专用于数据和 Kubernetes 流量。
例如:
controlPlane :
nodePoolSpec :
nodes :
- address : 192.168.1.212
- address : 192.168.1.213
- address : 192.168.1.214
每次更新或升级集群时都可以更改此字段。
集群资源
必填
可更改
controlPlane.nodePoolSpec.nodes.k8sIP
可选。字符串(IPv4 地址)。为节点指定可选的 k8sIP
地址时,该地址专用于处理该节点的数据和 Kubernetes 流量,例如 Kubernetes API、kubelet 及工作负载的请求和响应。指定 k8sIP
时,标准节点 IP 地址 nodePoolSpec.nodes.address
专用于与节点建立 SSH 连接。如果您未指定 k8sIP
地址,则标准节点 IP 地址会处理节点的所有流量。
例如:
controlPlane :
nodePoolSpec :
nodes :
- address : 192.168.2.212
k8sIP : 192.168.1.212
- address : 192.168.1.213
- address : 192.168.1.214
创建集群后,此字段便无法修改。
集群资源
可选
不可更改
controlPlane.nodePoolSpec.kubeletConfig
可选。本部分包含用于在控制平面节点池中的所有节点上配置 kubelet 的字段。
例如:
controlPlane :
nodePoolSpec :
kubeletConfig :
registryBurst : 15
registryPullQPS : 10
serializeImagePulls : false
集群资源
可选
可更改
controlPlane.nodePoolSpec.kubeletConfig.registryBurst
可选。整数(非负)。指定可以添加到处理队列以处理请求高峰的映像拉取请求的最大数量。拉取开始后,就可以向队列添加新请求。默认值为 10。此字段对应于 registryBurst
kubelet 配置 (v1beta1) 选项。
registryPullQPS
的值优先于此设置。例如,使用默认设置时,最多允许 10 个并发查询,但必须以每秒 5 次查询的默认速率处理。此爆发行为仅在 registryPullQPS
大于 0
时使用。
创建、更新或升级集群时可以设置此字段,并且此设置在集群升级后持续有效。如需了解详情,请参阅配置 kubelet 映像拉取设置 。
集群资源
可选
可更改
controlPlane.nodePoolSpec.kubeletConfig.registryPullQPS
可选。整数(非负)。指定 Container Registry 映像拉取查询的处理速率,单位为每秒查询次数 (QPS)。当 registryPullQPS
设置为大于 0 的值时,查询速率会限制为该值(单位为每秒查询次数)。如果 registryPullQPS
设置为 0
,则对查询速率没有限制。默认值为 5
。
此字段对应于 registryPullQPS
kubelet 配置 (v1beta1) 选项。
创建、更新或升级集群时可以设置此字段,并且此设置在集群升级后持续有效。如需了解详情,请参阅配置 kubelet 映像拉取设置 。
集群资源
可选
可更改
controlPlane.nodePoolSpec.kubeletConfig.serializeImagePulls
可选。布尔值 (true
|false
)。此字段指定 Container Registry 拉取是并行处理还是逐个处理。默认值为 true
,指定一次处理一个拉取。设置为 false
时,kubelet 会并行拉取映像。此字段对应于 serializeImagePulls
kubelet 配置 (v1beta1) 选项。
创建、更新或升级集群时可以设置此字段,并且此设置在集群升级后持续有效。如需了解详情,请参阅配置 kubelet 映像拉取设置 。
集群资源
可选
可更改
gkeConnect
本部分包含您要用于将集群连接到 Google Cloud 的 Google Cloud 项目的相关信息。
集群资源
必填
不可更改
gkeConnect.projectID
必需:字符串。您要用于将集群连接到 Google Cloud 的 Google Cloud 项目的 ID。这也称为舰队宿主项目 。
例如:
spec :
...
gkeConnect :
projectID : "my-connect-project-123"
无法为现有集群修改此值。
集群资源
必填
不可变
gkeConnect.location
可选。字符串。默认值为 global
。
集群的舰队成员资格由舰队服务 (gkehub.googleapis.com
) 和 Connect 服务 (gkeconnect.googleapis.com
) 管理。舰队成员资格可以是全球级的,也可以是区域级的。(可选)您可以使用 gkeConnect.location
指定 Fleet 和 Connect 服务运行的 Google Cloud 区域,以便将流量限制在您的区域。
如需查看支持的区域列表,请参阅 GKE On-Prem API 支持的区域 。
如果未指定,则使用服务的全局实例。
请注意以下几点:
在版本低于 1.28 的情况下创建的集群由全球级舰队和 Connect 服务管理。
使用 GKE On-Prem API 客户端(例如 Google Cloud 控制台、Google Cloud CLI 或 Terraform)创建的新集群会使用您为 GKE On-Prem API 指定的同一区域。
对于新集群,如果添加此字段,则您指定的区域必须与 gkeOnPremAPI.location
中配置的区域相同。如果区域不相同,集群创建将失败。
例如:
spec :
...
gkeConnect :
projectID : "my-connect-project-123"
location : "us-central1"
无法为现有集群修改此值。
集群资源
可选
不可更改
gkeOnPremAPI
在 1.16 及更高版本中,如果在 Google Cloud 项目中启用了 GKE On-Prem API,则项目中的所有集群会在 clusterOperations.location
中配置的区域中自动注册 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 中注册项目中的所有集群,请务必执行准备工作 中的步骤,以在项目中激活和使用 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 CLI 命令来获取有关集群的信息 。
GKE On-Prem API 将集群状态元数据存储在 Google Cloud 中。此元数据可让 API 管理集群生命周期。标准工具使用 GKE On-Prem API 并且它们统称为 GKE On-Prem API 客户端 。
如果您将 gkeOnPremAPI.enabled
设置为 true
,在使用 bmctl
创建或更新集群之前,请务必执行准备工作 中的步骤,以启用并初始化 GKE On-Prem API。
添加此部分并创建或更新集群后,如果后续您移除此部分并更新集群,更新将失败。
如果您想要使用标准工具而不是 bmctl
来创建集群,请参阅以下文档:
使用标准工具创建集群时,集群会自动在 GKE On-Prem API 中注册。
集群资源
可选
gkeOnPremAPI.enabled
默认情况下,如果项目中启用了 GKE On-Prem API,则集群会在 GKE On-Prem API 中注册。如果您不想注册集群,请设置为 false
。
在 GKE On-Prem API 中注册集群后,如果您需要取消注册集群,请进行以下更改然后更新集群:
gkeOnPremAPI :
enabled : false
集群资源
必填
可更改
gkeOnPremAPI.location
Google Cloud 区域,GKE On-Prem API 在其中运行和存储集群元数据。选择一个支持的区域 。如果 gkeOnPremAPI.enabled
为 true
,则必须是非空字符串。如果 gkeOnPremAPI.enabled
为 false
,请勿添加此字段。
如果配置文件中未包含此部分,则此字段设置为 clusterOperations.location
。
集群资源
可选
不可更改
kubevirt.useEmulation
(已弃用)
已弃用 。从 1.11.2 版开始,您可以通过仅更新 VMRuntime 自定义资源来启用或停用 VM Runtime on GDC。
布尔值。确定是否使用软件模拟来运行虚拟机。如果该节点支持硬件虚拟化,请将 useEmulation
设置为 false
以获得更好的性能。如果硬件虚拟化不受支持或者您不确定硬件虚拟化是否受支持,请将其设置为 true
。
集群资源
可选
可更改
loadBalancer
本部分包含集群负载均衡设置。
集群资源
必填
可更改
loadBalancer.addressPools
对象。集群负载均衡器池的名称和 IP 地址数组。地址池配置仅对非管理员集群中的 bundled
负载均衡模式有效。您可以随时添加新的地址池,但无法移除现有的地址池。
只能修改现有地址池以更改 avoidBuggyIPs
和 manualAssign
字段。
集群资源
可选
不可变
loadBalancer.addressPools.addresses
IP 地址范围数组。为数据平面负载均衡器指定不重叠的 IP 范围列表。所有地址都必须与负载均衡器节点位于同一子网中。
例如:
addressPools :
- name : pool1
addresses :
- 192.168.1.0-192.168.1.4
- 192.168.1.240/28
集群资源
可选
不可变
loadBalancer.addressPools.name
字符串。您为集群负载均衡器池选择的名称。
集群资源
必填
不可变
loadBalancer.addressPools.avoidBuggyIPs
可选。布尔值 (true
| false
)。如果为 true
,则该池会忽略以 .0
和 .255
结尾的 IP 地址。 某些网络硬件会丢弃流向这些特殊地址的流量。您可以省略此字段,其默认值为 false
。
集群资源
可选
可更改
loadBalancer.addressPools.manualAssign
可选。布尔值 (true
| false
)。如果为 true
,则此池中的地址不会自动分配给 Kubernetes Service。如果为 true
,则只有在 Service 明确指定时,才使用此池中的 IP 地址。您可以省略此字段,其默认值为 false
。
集群资源
可选
可更改
loadBalancer.mode
必需。字符串。指定负载均衡模式。在 bundled
模式下,Google Distributed Cloud 会在集群创建期间在负载均衡器节点上安装负载均衡器。在 manual
模式下,集群依赖于手动配置的外部负载均衡器。如需了解详情,请参阅负载均衡器概览 。
允许使用的值:bundled
| manual
集群资源
必填
不可变
loadBalancer.type
可选。字符串。指定使用的捆绑式负载均衡类型(第 2 层或边界网关协议 [BGP])。如果您使用的是标准捆绑式负载均衡 ,请将 type
设置为 layer2
。如果您使用的是使用 BGP 的捆绑式负载均衡 ,请将 type
设置为 bgp
。如果未设置 type
,则默认为 layer2
。
允许使用的值:layer2
| bgp
集群资源
可选
不可变
loadBalancer.nodePoolSpec
可选。使用此部分配置负载均衡器节点池。您指定的节点是 Kubernetes 集群的一部分,并运行常规工作负载和负载均衡器。如果您未指定节点池,则控制平面节点用于进行负载均衡。本部分仅在负载均衡模式设置为 bundled
时适用。
重要提示 :如果您在创建集群时未指定 loadBalancer.nodePoolSpec
,则以后无法添加 nodePoolSpec
。对于配置了 loadBalancer.nodePoolSpec
的集群,您可以随时更新 nodePoolSpec
。
如果要阻止工作负载在负载均衡器节点池中的节点上运行,请将以下污点添加到该节点:
node-role.kubernetes.io/load-balancer:NoSchedule
Google Distributed Cloud 会将此污点的容忍设置添加到负载均衡所需的 pod 中。
集群资源
可选
可更改
loadBalancer.nodePoolSpec.nodes
本部分包含负载均衡器节点池中节点的 IP 地址数组。
默认情况下,负载均衡器节点池中的所有节点必须与在配置文件的 loadBalancer.addressPools
部分中配置的负载均衡器 VIP 位于同一第 2 层子网中。不过,如果您为节点指定了 Kubernetes IP 地址 k8sIP
,则只有该地址需要与其他负载均衡器 VIP 位于同一第 2 层子网中。
集群资源
可选
可更改
loadBalancer.nodePoolSpec.nodes.address
可选。字符串(IPv4 地址)。指定节点池时,您可以使用 address
字段为每个节点的 SSH 访问权限指定默认 IPv4 地址。如需执行集群管理操作(例如安装和升级),您必须拥有 SSH 访问权限。默认情况下,此 IP 地址也用于数据和 Kubernetes 流量。但是,如果您为给定节点指定 k8sIP
地址,则流量会在该节点的两个地址之间拆分,并且 k8sIP
地址专用于数据和 Kubernetes 流量。
虽然负载均衡器节点池中的节点可以运行工作负载,但它们与工作器节点池中的节点是分开的。一个给定的集群节点不能添加到多个节点池中。重叠的节点 IP 地址会阻止创建集群以及其他集群操作。
例如:
loadBalancer :
mode : bundled
...
nodePoolSpec :
nodes :
- address : 10.200.0.25
- address : 10.200.0.26
- address : 10.200.0.27
集群资源
可选
可更改
loadBalancer.nodePoolSpec.nodes.k8sIP
可选。字符串(IPv4 地址)。为节点指定可选的 k8sIP
地址时,该地址专用于处理该节点的数据和 Kubernetes 流量,例如 Kubernetes API、kubelet 及工作负载的请求和响应。指定 k8sIP
时,标准节点 IP 地址 nodePoolSpec.nodes.address
专用于与节点建立 SSH 连接。如果您未指定 k8sIP
地址,则标准节点 IP 地址会处理节点的所有流量。
注意: Google Distributed Cloud on Bare Metal(纯软件)会为某些集群操作(例如创建管理员集群)部署引导集群。如果指定了 k8sIP
地址,则此暂时性引导集群会在集群操作期间访问这两个节点地址。
例如:
loadBalancer :
mode : bundled
...
addressPools :
- name : pool1
addresses :
- 10.200.0.92-10.200.0.100
nodePoolSpec :
nodes :
- address : 10.200.1.25
k8sIP : 10.200.0.25
- address : 10.200.0.26
- address : 10.200.0.27
创建集群后,此字段便无法修改。
集群资源
可选
不可更改
loadBalancer.nodePoolSpec.kubeletConfig
可选。本部分包含用于在控制平面节点池中的所有节点上配置 kubelet 的字段。
例如:
loadBalancer :
nodePoolSpec :
kubeletConfig :
registryBurst : 15
registryPullQPS : 10
serializeImagePulls : false
集群资源
可选
可更改
loadBalancer.nodePoolSpec.kubeletConfig.registryBurst
可选。整数(非负)。指定可以添加到处理队列以处理请求高峰的映像拉取请求的最大数量。拉取开始后,就可以向队列添加新请求。默认值为 10。此字段对应于 registryBurst
kubelet 配置 (v1beta1) 选项。
registryPullQPS
的值优先于此设置。例如,使用默认设置时,最多允许 10 个并发查询,但必须以每秒 5 次查询的默认速率处理。此爆发行为仅在 registryPullQPS
大于 0
时使用。
创建、更新或升级集群时可以设置此字段,并且此设置在集群升级后持续有效。如需了解详情,请参阅配置 kubelet 映像拉取设置 。
集群资源
可选
可更改
loadBalancer.nodePoolSpec.kubeletConfig.registryPullQPS
可选。整数(非负)。指定 Container Registry 映像拉取查询的处理速率,单位为每秒查询次数 (QPS)。当 registryPullQPS
设置为大于 0 的值时,查询速率会限制为该值(单位为每秒查询次数)。如果 registryPullQPS
设置为 0
,则对查询速率没有限制。默认值为 5
。
此字段对应于 registryPullQPS
kubelet 配置 (v1beta1) 选项。
创建、更新或升级集群时可以设置此字段,并且此设置在集群升级后持续有效。如需了解详情,请参阅配置 kubelet 映像拉取设置 。
集群资源
可选
可更改
loadBalancer.nodePoolSpec.kubeletConfig.serializeImagePulls
可选。布尔值 (true
|false
)。此字段指定 Container Registry 拉取是并行处理还是逐个处理。默认值为 true
,指定一次处理一个拉取。设置为 false
时,kubelet 会并行拉取映像。此字段对应于 serializeImagePulls
kubelet 配置 (v1beta1) 选项。
创建、更新或升级集群时可以设置此字段,并且此设置在集群升级后持续有效。如需了解详情,请参阅配置 kubelet 映像拉取设置 。
集群资源
可选
可更改
loadBalancer.ports.controlPlaneLBPort
数字。用于发送到 Kubernetes 控制平面(Kubernetes API 服务器)的流量的目标端口。
集群资源
必填
不可变
集群资源
必填
不可变
loadBalancer.vips.ingressVIP
可选。字符串(IPv4 地址)。您已选择在负载均衡器上为入站流量配置的 IP 地址。
集群资源
可选
不可变
loadBalancer.localASN
可选。字符串。指定正在创建的集群的自治系统编号 (ASN)。设置使用边界网关协议 (BGP) 的捆绑式负载均衡解决方案时,将使用此字段。 如需了解详情,请参阅配置使用 BGP 的捆绑式负载均衡器 。
集群资源
可选
可更改
loadBalancer.bgpPeers
可选。对象(映射列表)。本部分指定本地网络中(集群外部)的一个或多个边界网关协议 (BGP) 对等方。在设置使用 BGP 的捆绑式负载均衡解决方案的控制平面负载均衡部分时,您可以指定 BGP 对等方。每个对等方都通过映射指定,此映射包含 IP 地址、自治系统编号 (ASN) 以及控制平面节点的一个或多个 IP 地址的列表(可选)。创建集群后,无法更新控制平面负载均衡的 BGP 对等互连配置。
例如:
loadBalancer :
mode : bundled
type : bgp
localASN : 65001
bgpPeers :
- ip : 10.0.1.254
asn : 65002
controlPlaneNodes :
- 10.0.1.10
- 10.0.1.11
- ip : 10.0.2.254
asn : 65002
controlPlaneNodes :
- 10.0.2.10
如需了解详情,请参阅配置使用 BGP 的捆绑式负载均衡器 。
集群资源
可选
可更改
loadBalancer.bgpPeers.ip
可选。字符串(IPv4 地址)。本地网络中的外部对等互连设备的 IP 地址。如需了解详情,请参阅配置使用 BGP 的捆绑式负载均衡器 。
集群资源
可选
可更改
loadBalancer.bgpPeers.asn
可选。字符串。外部对等设备所属网络的自治系统编号 (ASN)。在设置使用 BGP 的捆绑式负载均衡解决方案时,为设置用于进行控制平面负载均衡的每个 BGP 对等方指定 ASN。 如需了解详情,请参阅配置使用 BGP 的捆绑式负载均衡器 。
集群资源
可选
可更改
loadBalancer.bgpPeers.controlPlaneNodes
可选。IP (IPv4) 地址的数组。当您设置使用 BGP 的捆绑式负载均衡解决方案时,连接到外部 BGP 对等方的控制平面节点的一个或多个 IP 地址。如果您不指定任何控制平面节点,则所有控制平面节点都将连接到外部对等方。如果指定一个或多个 IP 地址,则只有指定的节点会参与对等互连会话。如需了解详情,请参阅配置使用 BGP 的捆绑式负载均衡器 。
集群资源
可选
可更改
maintenanceBlocks.cidrBlocks
可选。单个 IPv4 地址或 IPv4 地址范围。指定要置于维护模式的节点机器的 IP 地址。如需了解详情,请参阅将节点置于维护模式 。
例如:
maintenanceBlocks :
cidrBlocks :
- 192.168.1.200 # Single machine
- 192.168.1.100-192.168.1.109 # Ten machines
集群资源
可选
可更改
nodeAccess.loginUser
可选。字符串。指定要用于对集群中的节点机器进行无密码 SUDO 功能访问的非根用户名。您的 SSH 密钥 sshPrivateKeyPath
必须可用于指定用户。集群创建和更新操作会检查是否可以通过指定的用户和 SSH 密钥访问节点机器。
集群资源
可选
可更改
osEnvironmentConfig.addPackageRepo
可选。布尔值 (true
| false
)。指定是否使用您自己的软件包代码库服务器,而不是默认的 Docker apt
代码库。如需使用您自己的软件包代码库,请将 addPackageRepo
设置为 false
。使用此功能可跳过向部署中的每一个裸机机器添加软件包代码库的步骤。如需了解详情,请参阅使用私有软件包代码库服务器 。
集群资源
可选
不可更改
nodeConfig
本部分包含集群节点配置的设置。
集群资源
可选
可变(仅限升级)
nodeConfig.containerRuntime
(已弃用)
已弃用。从 1.13.0 版开始,Google Distributed Cloud 仅支持 containerd
作为容器运行时。containerRuntime
字段已弃用,并且已从生成的集群配置文件中移除。对于 Google Distributed Cloud 1.13.0 版及更高版本,如果集群配置文件包含此字段,则值必须为 containerd
。
集群资源
可选
可变(仅限升级)
nodeConfig.podDensity
本部分指定 pod 密度配置。
集群资源
可选
不可变
nodeConfig.podDensity.maxPodsPerNode
可选。整数。指定可在单个节点上运行的最大 pod 数。对于自行管理的集群,maxPodsPerNode
的允许值为 32
–250
(针对高可用性 [HA] 集群)和 64
-250
(针对非 HA 集群)。对于用户集群,maxPodsPerNode
的允许值为 32
–250
。如果未指定,则默认值为 110
。创建集群后,无法更新此值。
Kubernetes 会为每个节点分配一个无类别域间路由 (CIDR) 地址块 ,以便每个 pod 都可以有一个唯一的 IP 地址。CIDR 地址块的大小对应于每个节点的最大 pod 数。如需详细了解如何设置每个节点的最大 pod 数,请参阅 pod 网络 。
集群资源
可选
不可更改
nodeConfig.privateRegistries
预览版
本部分将为用户集群指定节点级私有注册表配置。节点级私有注册表用于工作负载,可让您更好地控制映像拉取及其相关安全性。
例如:
spec:
bypassPreflightCheck: false
...
nodeConfig:
containerRuntime: containerd
podDensity:
maxPodsPerNode: 250
privateRegistries:
- caCertSecretRef:
name: ca-9dd74fd308bac6df562c7a7b220590b5
namespace: some-namespace
host: 10 .200.0.2:5007
pullCredentialSecretRef:
name: pull-creds-9dd74fd308bac6df562c7a7b220590b5
namespace: some-namespace
...
对于管理员集群,节点级私有注册表在管理员集群配置文件的“凭据”部分 中指定。
如需详细了解如何配置节点访问专用注册表,请参阅配置节点以向专用注册表进行身份验证 。
仅在 1.29 版集群上提供预览版 支持配置节点级私有注册表。
集群资源
可选
可更改
nodeConfig.privateRegistries.caCertSecretRef
预览版
如适用,请使用此部分指定为存储私有注册表的 CA 证书(服务器根 CA)而创建的 Secret 的名称和命名空间。如果您的本地注册表不需要使用专用 TLS 证书,则可以省略此区块。
仅在 1.29 版集群上提供预览版 支持配置节点级私有注册表。
集群资源
可选
可更改
nodeConfig.privateRegistries.caCertSecretRef.name
预览版
可选。字符串。为存储私有注册表的 CA 证书而创建的 Secret 的名称。
如需详细了解如何配置对私有注册表的节点访问权限,请参阅配置节点以向私有注册表进行身份验证 。
仅在 1.29 版集群上提供预览版 支持配置节点级私有注册表。
集群资源
可选
可更改
nodeConfig.privateRegistries.caCertSecretRef.namespace
预览版
可选。字符串。为存储私有注册表的 CA 证书而创建的 Secret 的命名空间。
如需详细了解如何配置节点访问专用注册表,请参阅配置节点以向专用注册表进行身份验证 。
仅在 1.29 版集群上提供预览版 支持配置节点级私有注册表。
集群资源
可选
可更改
nodeConfig.privateRegistries.host
预览版
字符串。此字段指定单个私有注册表的主机和端口。您可以使用域名或 IP 地址指定主机。请勿添加 http
或 https
前缀。
为用户集群指定私有注册表时,host
为必填字段。
仅在版本 1.29 集群的预览版 中支持配置节点级专用注册表。
集群资源
可选
可更改
nodeConfig.privateRegistries.pullCredentialSecretRef
预览版
在适用情况下,使用此部分指定为了存储私有注册表凭据而创建的 Secret 的名称和命名空间。
在配置用户集群时,使用 pullCredentialSecretRef
代码块可授予节点对需要进行身份验证的专用注册表的访问权限。
仅在版本 1.29 集群的预览版 中支持配置节点级专用注册表。
集群资源
可选
可更改
nodeConfig.privateRegistries.pullCredentialSecretRef.name
预览版
可选。字符串。为存储私有注册表凭据而创建的 Secret 的名称。
如需详细了解如何配置对私有注册表的节点访问权限,请参阅配置节点以向私有注册表进行身份验证 。
仅在 1.29 版集群上提供预览版 支持配置节点级私有注册表。
集群资源
可选
可更改
nodeConfig.privateRegistries.pullCredentialSecretRef.namespace
预览版
可选。字符串。为存储私有注册表凭据而创建的 Secret 的命名空间。
如需详细了解如何配置节点访问专用注册表,请参阅配置节点以向专用注册表进行身份验证 。
仅在 1.29 版集群上提供预览版 支持配置节点级私有注册表。
集群资源
可选
可更改
nodePoolUpgradeStrategy
可选。本部分包含用于为集群中的工作器节点池配置升级策略的设置。如需了解详情,请参阅并行升级 。
集群资源
可选
可更改
nodePoolUpgradeStrategy.concurrentNodePools
可选。布尔值(0
或 1
)。默认值:1
。此字段指定是否同时升级集群的所有工作器节点池。默认情况下 (1
),按顺序逐个升级。如果将 concurrentNodePools
设置为 0
,则同时升级集群中的每个工作器节点池。
apiVersion : baremetal.cluster.gke.io/v1
kind : Cluster
metadata :
name : cluster1
namespace : cluster-cluster1
spec :
...
nodePoolUpgradeStrategy :
concurrentNodePools : 0
...
如需了解详情,请参阅节点池升级策略 。
每个工作器池中的节点都会根据其对应的 NodePool 规范中的升级策略 进行升级。
集群资源
可选
可更改
nodePoolUpgradeStrategy.pause
可选。布尔值(true
或 false
)。默认值:false
。此字段指定是暂停还是恢复活跃集群升级。
Google Distributed Cloud 1.29
对于所有控制平面节点均为次要版本 1.29 或更高版本的集群,升级暂停和恢复功能是正式版。对于版本 1.29 集群,此功能默认处于启用状态。
Google Distributed Cloud 1.28
升级暂停和恢复功能在预览 版中提供,适用于所有控制平面节点的次要版本为 1.28 或更高版本的集群。对于 1.28 版集群,请使用 preview.baremetal.cluster.gke.io/upgrade-pause-and-resume
注解启用该功能。
将 nodePoolUpgradeStrategy.pause
值更新为 true
以暂停活跃的集群升级:
apiVersion : baremetal.cluster.gke.io/v1
kind : Cluster
metadata :
name : cluster1
namespace : cluster-cluster1
annotations : preview.baremetal.cluster.gke.io/upgrade-pause-and-resume
spec :
...
nodePoolUpgradeStrategy :
pause : true
...
如需了解详情,请参阅暂停和恢复升级 。
集群资源
可选
可更改
periodicHealthCheck
此部分包含定期运行健康检查的配置信息。在集群资源中,唯一可用于定期健康检查的设置是 enable
字段。如需了解详情,请参阅定期健康检查 。
集群资源
可选
可更改
periodicHealthCheck.enable
可选。布尔值 (true
|false
)。为集群启用或停用定期运行的健康检查。默认情况下,所有集群都会启用定期健康检查。您可以将 periodicHealthCheck.enable
字段设置为 false
,以停用集群的定期健康检查。
如需了解详情,请参阅停用定期健康检查 。
集群资源
可选
可更改
profile
可选。字符串。对于独立集群,将 profile
设置为 edge
时,它会最大限度地减少集群的资源消耗量。边缘配置文件仅适用于独立集群。边缘配置文件减少了系统资源要求,建议用于具有严格资源限制的边缘设备。如需了解与边缘配置文件相关的硬件要求,请参阅使用边缘配置文件的独立集群的资源要求 。
集群资源
可选
不可变
proxy
如果您的网络由代理服务器提供支持,请填写此部分。
否则,请移除此部分。
集群资源
可选
可更改
proxy.noProxy
字符串。不应通过代理服务器的 IP 地址、IP 地址范围、主机名和域名的列表(以英文逗号分隔)。当 Google Distributed Cloud 向其中一个地址、主机或网域发送请求时,该请求会直接发送。
集群资源
可选
不可变
proxy.url
字符串。代理服务器的 HTTP 地址。即使端口号与该方案的默认端口相同,也要填写此端口号。
例如:
proxy :
url : "http://my-proxy.example.local:80"
noProxy : "10.151.222.0/24, my-host.example.local,10.151.2.1"
集群资源
可选
可更改
clusterSecurity
本部分指定与集群安全相关的设置。
集群资源
可选
可更改
clusterSecurity.enableSeccomp
(预览版 )
可选。布尔值 (true
|false
)。启用或停用集群范围的 seccomp
。停用此字段后,集群配置文件中没有 seccomp
配置文件的容器会以未受限状态运行。启用此字段后,系统会使用容器运行时的默认 seccomp
配置文件来保护这些容器。默认情况下,此功能处于启用状态。
创建集群后,只能在升级期间切换此字段。
如需了解详情,请参阅使用 seccomp
限制容器 。
集群资源
可选
可变(仅限升级)
clusterSecurity.enableRootlessContainers
可选。布尔值 (true
|false
)。启用或停用无根裸金属系统容器。启用此字段后,裸金属系统容器会以用户 ID 在 2000-5000 范围内的非根用户身份运行。停用此字段后,裸金属系统容器会以根用户身份运行。此功能默认处于启用状态。强烈建议不要关闭此功能,因为以根用户身份运行容器会带来安全风险。创建集群后,只能在升级期间切换此字段。如需了解详情,请参阅不要以根用户身份运行容器 。
集群资源
可选
可变(仅限升级)
clusterSecurity.authorization
可选。授权可配置用户对集群的访问权限。
集群资源
可选
可更改
clusterSecurity.authorization.clusterAdmin
可选。指定此集群的集群管理员。
集群资源
可选
可更改
clusterSecurity.authorization.clusterAdmin.gcpAccounts
可选。gcpAccounts
字段指定被授予 Kubernetes 基于角色的访问控制 (RBAC) 角色 clusterrole/cluster-admin
的账号列表。具有此角色的账号拥有对集群的所有命名空间中的每个资源的完整访问权限。此字段还会配置 RBAC 政策,以便指定的账号使用连接网关 针对集群运行 kubectl
命令。如果您有多个集群需要管理(尤其是在同时具有 GKE 和本地集群的混合环境中),则此字段会很方便。
如果用户具有必需的 Identity and Access Management 角色来访问 Google Cloud 控制台 ,则这些 RBAC 政策还可让用户使用其 Google 身份登录控制台。
此字段接受账号名称数组。支持用户账号和服务账号。对于用户,您需要指定其 Google Cloud 账号电子邮件地址。对于服务账号,请按以下格式指定电子邮件地址:
SERVICE_ACCOUNT @PROJECT_ID .iam.gserviceaccount.com
。
例如:
...
clusterSecurity:
authorization:
clusterAdmin:
gcpAccounts:
- alex@example.com
- hao@example.com
- my-sa@example-project-123.iam.gserviceaccount.com
...
更新集群以添加账号时,请务必将列表中的所有账号(包括现有账号和新账号)包含在内,因为更新命令会用您在更新中指定的内容来覆盖此列表。
此字段仅适用于可以运行工作负载的集群。例如,您无法为管理员集群指定 gcpAccounts
。
集群资源
可选
可更改
clusterSecurity.startUIDRangeRootlessContainers
可选。整数。默认值为 2000
。Google Distributed Cloud 中的系统容器有助于安装和管理集群。这些容器使用的用户 ID (UID) 和群组 ID (GID) 可以通过集群规范中的 startUIDRangeRootlessContainers
字段控制。系统容器使用 startUIDRangeRootlessContainers
到 startUIDRangeRootlessContainers
+ 2999 范围内的 UID 和 GID,默认情况下,该范围为 2000
到 4999
。更新 startUIDRangeRootlessContainers
时,请选择一个值以确保系统容器使用的 UID 和 GID 空间与分配给用户工作负载的 UID 和 GID 空间不重叠。startUIDRangeRootlessContainers
值只能在升级期间更改。
允许的值包括:1000
-57000
例如:
apiVersion : baremetal.cluster.gke.io/v1
kind : Cluster
metadata :
name : name-of-cluster
spec :
clusterSecurity :
startUIDRangeRootlessContainers : 5000
...
如需了解详情,请参阅不要以根用户身份运行容器 。
集群资源
可选
可变(仅限升级)
storage.lvpNodeMounts.path
必需。字符串。使用 path
字段来指定可发现已装载磁盘的宿主机路径。系统会为每个装载创建一个本地 PersistentVolume (PV)。默认路径为 /mnt/localpv-share
。如需了解如何配置节点装载,请参阅配置 LVP 节点装载 。
集群资源
必填
不可更改
集群资源
必填
不可变
storage.lvpNodeMounts
本部分指定由装载磁盘支持的本地永久性卷的配置(路径)。您必须自行格式化并装载这些磁盘。您可以在创建集群之前或之后执行此任务。如需了解详情,请参阅 LVP 节点装载 。
集群资源
必填
不可变
storage.lvpShare
本部分指定由共享文件系统中的子目录支持的本地永久性卷的配置。创建集群时,系统会自动创建这些子目录。如需了解详情,请参阅 LVP 共享 。
集群资源
必填
不可变
storage.lvpShare.path
必需。字符串。使用 path
字段来指定可以创建子目录的宿主机路径。将为每个子目录创建一个本地 PersistentVolume (PV)。如需了解如何配置 LVP 共享,请参阅配置 LVP 共享 。
集群资源
必填
不可变
storage.lvpShare.numPVUnderSharedPath
必需。字符串。指定要在 lvpShare.path
下创建的子目录的数量。默认值为 5
。如需了解如何配置 LVP 共享,请参阅配置 LVP 共享 。
集群资源
必填
不可变
storage.lvpShare.storageClassName
必需。字符串。指定用于创建永久性卷的 StorageClass。StorageClass 在创建集群期间创建。默认值为 local-shared
。如需了解如何配置 LVP 共享,请参阅配置 LVP 共享 。
集群资源
可选
不可变
type
必需。字符串。指定集群的类型。标准部署模型由一个管理员集群以及一个或多个由管理员集群管理的用户集群组成。Google Distributed Cloud 支持以下类型的集群:
管理员 - 用于管理用户集群的集群。
用户 - 用于运行工作负载的集群。
混合 - 一个同时用于管理和工作负载的单个集群,也可以管理用户集群。
独立 - 一个可以管理自身也可以运行工作负载的单个集群,但不能创建或管理其他用户集群。
集群类型在创建集群时指定,无法更改以进行更新或升级。如需详细了解如何创建集群,请参阅创建集群:概览 。
允许使用的值:admin
| user
| hybrid
| standalone
无法为现有集群修改此值。
集群资源
必填
不可变
name
必需。字符串。通常,命名空间名称使用 cluster-CLUSTER_NAME
格式,但从 Google Distributed Cloud 1.7.2 版开始,不严格要求使用 cluster-
前缀。
无法为现有集群修改此值。
命名空间资源
必填
不可变
clusterName
字符串。必需。要向其中添加节点池的集群的名称。在关联的集群所在的同一命名空间中创建节点池资源,并在此字段中引用该集群名称。如需了解详情,请参阅在集群中添加和移除节点池 。
例如:
apiVersion : baremetal.cluster.gke.io/v1
kind : NodePool
metadata :
name : node-pool-new
namespace : cluster-my-cluster
spec :
clusterName : my-cluster
nodes :
- address : 10.200.0.10
- address : 10.200.0.11
- address : 10.200.0.12
NodePool 资源
必填
不可变
nodes
可选。IP (IPv4) 地址的数组。这会定义工作器节点的节点池。
NodePool 资源
可选
可更改
nodes.address
可选。字符串(IPv4 地址)。工作器节点池中节点的一个或多个 IP 地址。
NodePool 资源
可选
可更改
kubeletConfig
可选。本部分包含用于在控制平面节点池中的所有节点上配置 kubelet 的字段。
例如:
apiVersion : baremetal.cluster.gke.io/v1
kind : NodePool
metadata :
name : node-pool-new
namespace : cluster-my-cluster
spec :
clusterName : my-cluster
...
kubeletConfig :
serializeImagePulls : true
registryBurst : 20
registryPullQPS : 10
NodePool 资源
可选
可更改
kubeletConfig.registryBurst
可选。整数(非负)。指定可以添加到处理队列以处理请求高峰的映像拉取请求的最大数量。拉取开始后,就可以向队列添加新请求。默认值为 10。此字段对应于 registryBurst
kubelet 配置 (v1beta1) 选项。
registryPullQPS
的值优先于此设置。例如,使用默认设置时,最多允许 10 个并发查询,但必须以每秒 5 次查询的默认速率处理。此爆发行为仅在 registryPullQPS
大于 0
时使用。
创建、更新或升级集群时可以设置此字段,并且此设置在集群升级后持续有效。如需了解详情,请参阅配置 kubelet 映像拉取设置 。
NodePool 资源
可选
可更改
kubeletConfig.registryPullQPS
可选。整数(非负)。指定 Container Registry 映像拉取查询的处理速率,单位为每秒查询次数 (QPS)。当 registryPullQPS
设置为大于 0 的值时,查询速率会限制为该值(单位为每秒查询次数)。如果 registryPullQPS
设置为 0
,则对查询速率没有限制。默认值为 5
。
此字段对应于 registryPullQPS
kubelet 配置 (v1beta1) 选项。
创建、更新或升级集群时可以设置此字段,并且此设置在集群升级后持续有效。如需了解详情,请参阅配置 kubelet 映像拉取设置 。
NodePool 资源
可选
可更改
kubeletConfig.serializeImagePulls
可选。布尔值 (true
|false
)。此字段指定 Container Registry 拉取是并行处理还是逐个处理。默认值为 true
,指定一次处理一个拉取。设置为 false
时,kubelet 会并行拉取映像。此字段对应于 serializeImagePulls
kubelet 配置 (v1beta1) 选项。
创建、更新或升级集群时可以设置此字段,并且此设置在集群升级后持续有效。如需了解详情,请参阅配置 kubelet 映像拉取设置 。
NodePool 资源
可选
可更改
taints
可选。对象。您可以利用节点污点对节点进行标记,以使调度器避免或阻止将其用于特定 pod。污点由键值对和相关效果组成。key
和 value
值是用于标识污点的字符串,effect
值指定系统如何为节点处理 pod。taints
对象可以具有多个污点。
effect
字段可使用以下值之一:
NoSchedule
- 除非 pod 具有匹配的容忍设置,否则无法将其调度到节点上。
PreferNoSchedule
- 系统会避免将不能容忍污点的 pod 放置在节点上,但这不是必需的。
NoExecute
- 不能容忍污点的 pod 会立即被逐出,能够容忍污点的 pod 从不被逐出。
对于 Google Distributed Cloud,污点会与节点池的节点协调,除非将 baremetal.cluster.gke.io/label-taint-no-sync
注解应用于集群。如需详细了解污点,请参阅污点和容忍设置 。
例如:
taints :
- key : status
value : testpool
effect : NoSchedule
NodePool 资源
可选
可更改
labels
可选。映射(键值对)。标签应用于节点池的节点,除非将 baremetal.cluster.gke.io/label-taint-no-sync
注解应用于集群。如需详细了解标签,请参阅标签和选择器 。
NodePool 资源
可选
可更改
upgradeStrategy
可选。本部分包含用于为工作器节点池中的节点配置升级策略的设置。如需了解详情,请参阅并行升级 。
注意:请勿为控制平面或负载均衡器节点池添加本部分。
NodePool 资源
可选
可更改
upgradeStrategy.parallelUpgrade
可选。本部分包含用于为工作器节点池配置并行节点升级的设置。在典型的默认集群升级中,每个集群节点按顺序依次升级。您可以配置工作器节点池,以便在升级集群时并行升级多个节点。并行升级节点可以显著加快集群升级速度,尤其是对于具有数百个节点的集群。
对于工作器节点池,您可以指定同时升级的节点数,并且可以为在能够整个升级过程中运行工作负载的节点数设置最小阈值。
如需了解详情,请参阅节点升级策略 。
apiVersion : baremetal.cluster.gke.io/v1
kind : NodePool
metadata :
name : np1
namespace : cluster-cluster1
spec :
clusterName : cluster1
nodes :
- address : 10.200.0.1
...
upgradeStrategy :
parallelUpgrade :
concurrentNodes : 2
minimumAvailableNodes : 5
NodePool 资源
可选
可更改
upgradeStrategy.parallelUpgrade.concurrentNodes
可选。整数(正数)。默认值:1
。最大值:15
。默认情况下 (1
),节点会按顺序逐个升级。将 concurrentNodes
设置为大于 1 的数字时,此字段指定要并行升级的节点数。请注意 concurrentNodes
的以下限制条件:
该值不能超过节点池 50% 的节点数或固定数字 15
这两者中的较小值。例如,如果您的节点池有 20 个节点,则不能指定大于 10
的值。如果您的节点池有 100 个节点,则 15
是您可以指定的最大值。
将此字段与 minimumAvailableNodes
字段一起使用时,这两个值的和不能超过节点池中的节点总数。例如,如果您的节点池有 20 个节点,并且 minimumAvailableNodes
设置为 18
,则 concurrentNodes
不能超过 2
。
并行升级不遵循 Pod 中断预算 (PDB) 。如果您的工作负载对中断很敏感,我们建议您指定 minimumAvailableNodes
,以确保在升级过程中有一定数量的节点可用于运行工作负载。如需了解详情,请参阅并行升级 。
NodePool 资源
可选
可更改
upgradeStrategy.parallelUpgrade.minimumAvailableNodes
可选。整数(非负)。默认值:取决于 concurrentNodes
。如需详细了解 minimumAvailableNodes
的默认值,请参阅并行升级默认值 。minimumAvailableNodes
可让您指定节点池中在整个升级过程中必须保持可用的节点数。当节点正在升级时,该节点被视为不可用。当满足以下任一条件时,节点也被视为不可用:
节点处于维护模式
节点正在协调
节点在升级过程中停滞
将此字段与 concurrentNodes
字段一起使用时,这两个值的和不能超过节点池中的节点总数。例如,如果您的节点池有 20 个节点,并且 concurrentNodes
设置为 10
,则 minimumAvailableNodes
不能超过 10
。
较大的 minimumAvailableNodes
值可最大限度地减少安排 Pod 时的容量问题,从而帮助在集群升级期间保护工作负载。但是,较大的 minimumAvailableNodes
值会增加升级停滞的风险,因为可能需要等待节点变为可用。如需了解详情,请参阅并行升级 。
NodePool 资源
可选
可更改
privateRegistries
预览版
可选。使用本部分指定要用于工作负载映像的私有注册表。在集群配置文件的凭据部分中配置私有注册表的这一方法仅适用于具有工作器节点池的混合或独立集群。
如需详细了解如何配置节点对私有注册表的访问权限,请参阅配置节点以向私有注册表进行身份验证 。
注意: 为方便起见,bmctl
会接受集群规范之外的 privateRegistries
字段,例如凭据键值对。如需查看示例,请参阅私有注册表设置说明 。
例如:
---
gcrKeyPath : baremetal/gcr.json
sshPrivateKeyPath : .ssh/id_rsa
...
privateRegistries :
- host : 10.200.0.2:5007
caCertPath : /root/cert.pem
pullCredentialConfigPath : /root/dockerconfig.json
...
凭据
可选
可更改
privateRegistries.host
预览版
字符串。此字段指定单个私有注册表的主机和端口。您可以使用域名或 IP 地址指定主机。请勿添加 http
或 https
前缀。
为混合集群或独立集群指定私有注册表时,host
为必填字段。
例如:
- host : 10.200.0.2:5007
凭据
可选
可更改
privateRegistries.caCertPath
预览版
可选。字符串。如果您的注册表服务器使用专用 TLS 证书,则此字段为 CA 证书文件(服务器根 CA)的路径。如果您的本地注册表不需要使用专用 TLS 证书,则可以省略此字段。
凭据
可选
可更改
privateRegistries.pullCredentialConfigPath
预览版
可选。字符串。Docker CLI 配置文件 config.json
的路径。Docker 会将身份验证设置保存在配置文件中。此字段仅适用于使用节点级专用注册表。
配置混合或独立集群时,请使用 pullCredentialConfigPath
字段让节点可以访问需要身份验证的私有注册表。
凭据
可选
可更改
registryMirrors
可选。使用此部分指定用于安装集群的注册表镜像,而不是 Container Registry (gcr.io
)。如需详细了解如何使用注册表镜像,请参阅使用注册表镜像安装 Google Distributed Cloud 。
注意: 为方便起见,bmctl
会接受集群规范之外的 registryMirrors
字段,例如凭据键值对。如需查看示例,请参阅注册表镜像设置说明 。
例如:
registryMirrors :
- endpoint : https://172.18.0.20:5000
caCertPath : /root/ca.crt
pullCredentialConfigPath : /root/.docker/config.json
hosts :
- somehost.io
- otherhost.io
注册表镜像
可选
可更改
registryMirrors.endpoint
字符串。镜像的端点,由注册表服务器 IP 地址和端口号组成。(可选)您可以在注册表服务器中使用您自己的命名空间,而不是根命名空间。如果没有命名空间,端点格式为 REGISTRY_IP :PORT
。如果使用命名空间,端点格式为 REGISTRY_IP :PORT /v2/NAMESPACE
。指定命名空间时必须包含 /v2
。
指定注册表镜像时,endpoint
为必填字段。您可以指定多个镜像/端点。
例如:
- endpoint : https://172.18.0.20:5000/v2/test-namespace
注册表镜像
可选
可更改
registryMirrors.caCertPath
可选。字符串。如果您的注册表服务器使用专用 TLS 证书,则此字段为 CA 证书文件(服务器根 CA)的路径。如果您的本地注册表不需要使用专用 TLS 证书,则可以省略此字段。
注册表镜像
可选
可更改
registryMirrors.pullCredentialConfigPath
可选。字符串。Docker CLI 配置文件 config.json
的路径。Docker 会将身份验证设置保存在配置文件中。只有在使用注册表镜像时此字段才适用。如果您的注册表服务器不需要使用 Docker 配置文件即可进行身份验证,则可以省略此字段。
例如:
registryMirrors :
- endpoint : https://172.18.0.20:5000
caCertPath : /root/ca.crt
pullCredentialConfigPath : /root/.docker/config.json
注册表镜像
可选
可更改
registryMirrors.hosts
可选。针对特定注册表镜像 (endpoint
) 在本地镜像的主机的域名数组。当容器运行时遇到来自指定主机的映像拉取请求时,它会首先检查本地注册表镜像。如需了解详情,请参阅从注册表镜像创建集群 。
例如:
registryMirrors :
- endpoint : https://172.18.0.20:5000
caCertPath : /root/ca.crt
pullCredentialConfigPath : /root/.docker/config.json
hosts :
- somehost.io
- otherhost.io
注册表镜像
可选
可更改
凭据
bmctl
生成的 Google Distributed Cloud 集群配置文件包含用于指定本地文件系统中凭据和密钥文件的路径的字段。集群彼此连接和连接到 Google Cloud 项目时需要这些凭据和密钥。
注意: 这些键值对字段不是 Kubernetes 集群自定义资源的有效元素。只有 bmctl
能理解此格式,标准 Kubernetes 工具无法理解此格式。如果要使用 kubectl
将更改应用到集群,请移除凭据和密钥字段。
例如:
gcrKeyPath : bmctl-workspace/.sa-keys/my-gcp-project-anthos-baremetal-gcr.json
sshPrivateKeyPath : /home/root-user/.ssh/id_rsa
gkeConnectAgentServiceAccountKeyPath : bmctl-workspace/.sa-keys/my-gcp-project-anthos-baremetal-connect.json
gkeConnectRegisterServiceAccountKeyPath : bmctl-workspace/.sa-keys/my-gcp-project-anthos-baremetal-register.json
cloudOperationsServiceAccountKeyPath : bmctl-workspace/.sa-keys/my-gcp-project-anthos-baremetal-cloud-ops.json
凭据
可选
可更改
gcrKeyPath
字符串。Container Registry 服务账号密钥的路径。Container Registry 服务账号 是一个服务代理,在与 Google Cloud 服务交互时会代表 Container Registry 执行操作。
凭据
可选
可更改
sshPrivateKeyPath
字符串。SSH 私钥的路径。必须通过 SSH 访问节点。
凭据
可选
可更改
gkeConnectAgentServiceAccountKeyPath
字符串。代理服务账号密钥的路径。Google Distributed Cloud 使用此服务账号来维护 Google Distributed Cloud 与 Google Cloud 之间的连接。
如需有关如何配置此服务账号的说明,请参阅配置服务账号以与 Connect 搭配使用 。
凭据
可选
可更改
gkeConnectRegisterServiceAccountKeyPath
字符串。注册服务账号密钥的路径。Google Distributed Cloud 使用此服务账号向 Google Cloud 注册您的用户集群。
如需有关如何配置此服务账号的说明,请参阅配置服务账号以与 Connect 搭配使用 。
凭据
可选
可更改
cloudOperationsServiceAccountKeyPath
字符串。运维服务账号密钥的路径。Google Distributed Cloud 使用运维服务账号向 Google Cloud Observability 进行身份验证,以访问 Logging API 和 Monitoring API。除了用户集群之外,必须提供运维服务账号密钥。用户集群使用为管理集群(管理员集群或混合集群)指定的凭据。
您无法为集群停用 Cloud Logging 和 Cloud Monitoring。
如需有关如何配置此服务账号的说明,请参阅配置服务账号 。
凭据
必填
可更改
ipv4
定义 IPv4 CIDR 范围的配置。必须至少为 ClusterCidrConfig
资源提供 ipv4
或 ipv6
字段之一。
ClusterCIDRConfig 资源
可选
不可变
ipv4.cidr
字符串。设置 IPv4 节点 CIDR 地址块。节点只能有来自每个系列的一个范围。此 CIDR 地址块必须与 Cluster
资源中描述的 Pod CIDR 一致。
例如:
ipv4 :
cidr : "10.1.0.0/16"
ClusterCIDRConfig 资源
必填
不可更改
ipv4.perNodeMaskSize
整数。定义节点 IPv4 CIDR 地址块的掩码大小。例如,值 24
转换为网络掩码 /24
。确保节点的 CIDR 地址块网络掩码大于 kubelet 可以调度的 Pod 数上限(在 kubelet 的 --max-pods
标志中定义)。
ClusterCIDRConfig 资源
必填
不可更改
ipv6
定义 IPv6 CIDR 范围的配置。必须至少为 ClusterCidrConfig
资源提供 ipv4
或 ipv6
字段之一。
ClusterCIDRConfig 资源
可选
不可变
ipv6.cidr
字符串。设置 IPv6 节点 CIDR 地址块。节点只能有来自每个系列的一个范围。
例如:
ipv6 :
cidr : "2620:0:1000:2631:3:10:3:0/112"
ClusterCIDRConfig 资源
必填
不可更改
ipv6.perNodeMaskSize
整数。定义节点 IPv6 CIDR 地址块的掩码大小。例如,值 120
转换为网络掩码 /120
。确保节点的 CIDR 地址块网络掩码大于 kubelet 可以调度的 Pod 数上限(在 kubelet 的 --max-pods
标志中定义)。
ClusterCIDRConfig 资源
必填
不可更改
nodeSelector.matchLabels
定义 CIDR 配置适用的节点。空节点选择器是默认设置,适用于所有节点。
例如:
nodeSelector :
matchLabels :
baremetal.cluster.gke.io/node-pool : "workers"
ClusterCIDRConfig 资源
可选
可更改