集群配置字段参考文档

本页面介绍了裸机上 Google Distributed Cloud(纯软件)的集群配置文件中支持的字段。对于每个字段,下表标识了该字段是否为必填字段。该表还显示了哪些字段是可变的,这意味着创建集群后可以更改哪些字段。如上表中所述,某些可变字段只能在集群升级期间更改。

生成集群配置文件模板

您可以使用 bmctl create config 命令创建集群配置文件。虽然有些字段具有默认值,而有些字段(如 metadata.name)可以自动填充,但此 YAML 格式配置文件是用于指定集群相关信息的模板。

如需创建新的集群配置文件,请在 /baremetal 文件夹中使用以下命令:

bmctl create config -c CLUSTER_NAME

CLUSTER_NAME 替换为您要创建的集群的名称。如需详细了解 bmctl,请参阅 bmctl 工具。如需查看所生成集群配置文件的示例,请参阅集群配置文件示例

填写配置文件

在创建或升级集群之前,请按照以下字段参考表中的说明,在配置文件中输入字段值。

集群配置字段

  • 选择配置类型
  • 集群资源
  • 命名空间资源
  • NodePool 资源
  • 凭据
  • 注册表镜像
  • ClusterCIDRConfig 资源

字段名称 资源类型 是否必需? 是否可更改?

必需。字符串。集群版本。此值为集群创建和集群升级设置。

可变性:无法为现有集群修改此值。只能通过集群升级过程更新版本。

集群资源 必需 可更改

本部分包含使用 OpenID Connect (OIDC) 所需的设置。 通过 OIDC,您可以使用现有身份提供方来管理集群中的用户和群组身份验证。

集群资源

可选。OIDC 提供商的 base64 编码的 PEM 编码证书。如需创建该字符串,请对证书(包括标头)进行 base64 编码。将生成的字符串作为单独的一行添加到 certificateAuthorityData 中。

例如(封装以适应表的示例):

certificateAuthorityData:
        LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tC
        ...k1JSUN2RENDQWFT==
集群资源 可选 不可变

可选。字符串。向 OpenID 提供商发出身份验证请求的客户端应用的 ID。

集群资源 可选 不可变

可选。字符串。OIDC 客户端应用和 OIDC 提供商之间的共享密钥令牌。

集群资源 可选 不可变

可选。布尔值 (true|false)。指定是否在集群中部署反向代理,以将 Google Cloud 控制台连接到无法通过互联网公开访问的本地身份提供商。如果无法通过公共互联网访问您的身份提供商,请将此字段设置为 true,以进行 Google Cloud 控制台身份验证。此值默认设置为 false

集群资源 可选 不可变

可选。英文逗号分隔列表。要发送到 OpenID 提供商的其他键值对参数。

集群资源 可选 不可变

可选。字符串。 提供方用于返回安全群组的 JWT 声明。

集群资源 可选 不可变

可选。字符串。附加到群组声明的前缀,以防止与现有名称冲突。例如,给定一个群组 dev 和一个前缀 oidc:,则格式为 oidc:dev

集群资源 可选 不可变

可选。网址字符串。用于向 OpenID 发送授权请求的网址,例如 https://example.com/adfs。Kubernetes API 服务器使用此网址来发现用于验证令牌的公钥。网址必须使用 HTTPS。

集群资源 可选 不可变

可选。网址字符串。kubectl 用于授权的重定向网址。启用 OIDC 时,必须指定 kubectlRedirectURL 值。

集群资源 可选 不可变

可选。网址字符串。将集群连接到您的 OIDC 提供商时使用的代理服务器(如果适用)。该值应包含主机名/IP 地址,并可根据需要选择包含端口、用户名和密码。例如:http://user:password@10.10.10.10:8888

集群资源 可选 不可变

可选。英文逗号分隔列表。要发送到 OpenID 提供商的其他范围。Microsoft Azure 和 Okta 需要 offline_access 范围。

集群资源 可选 不可变

可选。字符串。 用作用户名的 JWT 声明。如果未指定,则默认为 sub

集群资源 可选 不可变

可选。字符串。附加到用户名声明前面的前缀。

集群资源 可选 不可变

可选。布尔值 (true|false)。如果设置为 true,则在将资源应用于现有集群时会忽略内部预检检查。默认为 false

可变性:可以使用 bmctl update 命令为现有集群修改此值。

集群资源 可选 可更改

字符串。运维服务账号密钥的路径。Google Distributed Cloud 使用运维服务账号向 Google Cloud Observability 进行身份验证,以访问 Logging API 和 Monitoring API。除了用户集群之外,必须提供运维服务账号密钥。用户集群使用为管理集群(管理员集群或混合集群)指定的凭据。

您无法为集群停用 Cloud Logging 和 Cloud Monitoring。

如需有关如何配置此服务账号的说明,请参阅配置服务账号

凭据 必需 可更改

字符串。必需。要向其中添加节点池的集群的名称。在关联的集群所在的同一命名空间中创建节点池资源,并在此字段中引用该集群名称。如需了解详情,请参阅在集群中添加和移除节点池

例如:

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 资源 必需 不可变

本部分包含集群的网络设置。

集群资源 必需 可更改

布尔值。将此字段设置为 true 以启用高级网络功能,例如使用 BGP 的捆绑式负载均衡或出站 NAT 网关。这两项功能均使用 Network Gateway for GDC。 Network Gateway for GDC 是用于在 GKE Enterprise 和 Google Kubernetes Engine (GKE) 中启用高级网络功能的关键组件。Network Gateway for GDC 的主要优势之一是它可以从您在 NetworkGatewayGroup 自定义资源中指定的一组地址动态地分配浮动 IP 地址。

如需详细了解 Network Gateway for GDC 和相关的高级网络功能,请参阅配置出站流量 NAT 网关使用 BGP 配置捆绑式负载均衡器

集群资源 可选 不可变

布尔值。将此字段设置为 false 可停用与 Google Distributed Cloud 软件捆绑的 Ingress 功能。集群的捆绑式 Ingress 功能仅支持入站流量。如果您与 Istio 或 Cloud Service Mesh 集成,以获得功能全面的服务网格的额外优势,我们建议您停用捆绑式 Ingress。此字段默认设置为 true。此字段不在生成的集群配置文件中。您只能为 1.13.0 版及更高版本的集群停用捆绑式 Ingress。

如需详细了解捆绑式 Ingress 功能,请参阅创建 Service 和 Ingress

集群资源 可选 可更改

布尔值。将此字段设置成 true 以启用平面模式集群网络模型。在平面模式下,每个 pod 都有专属的唯一 IP 地址。Pod 可以直接相互通信,而无需中间网关或网络地址转换 (NAT)。flatIPv4 的默认值为 false。您只能在创建集群期间启用平面模式。为集群启用平面模式后,无法将其停用。

集群资源 可选 不可变

可选。字符串。为 Dataplane V2 负载均衡指定网络模式。来源网络地址转换 (SNAT) 是默认的网络模式。直接服务器返回 (DSR) 模式可以解决 SNAT 负载均衡问题。在 DSR 模式 (forwardMode: dsr) 下,负载均衡器节点使用 IP 选项来保存客户端来源地址。 只有在创建集群时才能配置 Dataplane V2 负载均衡的网络模式。

允许的值包括:dsr | snat

如需了解详情,请参阅配置负载均衡网络模式

集群资源 可选 不可变

可选。布尔值。将此字段设置为 true 可为 pod 启用多个网络接口。

如需详细了解如何设置和使用多个网络接口,请参阅为 Pod 配置多个网络接口文档。

集群资源 可选 不可变

必需。采用 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
集群资源 必需 不可变

必需。采用 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
集群资源 必需 可变

可选。布尔值。将此字段设置为 true 可为您的集群启用 SR-IOV 网络。

如需详细了解如何配置和使用 SR-IOV 网络,请参阅设置 SR-IOV 网络文档。

集群资源 可选 可更改

本部分包含 Cloud Logging 和 Cloud Monitoring 的信息。

集群资源 必需 可更改

布尔值。Cloud Audit Logs 适用于调查可疑的 API 请求以及收集统计信息。Cloud Audit Logs 默认处于启用状态 (disableCloudAuditLogging: false)。设置为 true 可停用 Cloud Audit Logs。

如需了解详情,请参阅使用审核日志记录

集群资源 可选 可更改

此字段不再使用,并且无效。Stackdriver 自定义资源中启用了应用日志记录和监控功能。如需详细了解如何启用应用日志记录和监控功能,请参阅启用应用日志记录和监控功能

集群资源 免运维 可更改

字符串。您要路由和存储 Monitoring 指标的 Google Cloud 区域。我们建议您选择一个靠近本地数据中心的区域。在创建集群期间,此值用于在 stackdriver 资源规范中设置 clusterLocation 值。

Stackdriver 还会使用您指定的值为指标和日志添加标签。这些标签可用于在 Metrics Explorer 和 Logs Explorer 中进行过滤。

如需详细了解 Google Cloud 位置,请参阅全球位置。如需详细了解日志和指标路由,请参阅日志和指标路由

例如:

location: us-central1
集群资源 必需 不可变

字符串。要在其中查看日志和指标的 Google Cloud 项目的项目 ID。在创建集群期间,此值用于在 stackdriver 资源规范中设置 projectID 值。

集群资源 必需 不可变

本部分指定与集群安全相关的设置。

集群资源 可选 可更改

可选。授权可配置用户对集群的访问权限。

集群资源 可选 可更改

可选。指定此集群的集群管理员。

集群资源 可选 可更改

可选。gcpAccounts 字段指定被授予 Kubernetes 基于角色的访问控制 (RBAC) 角色 clusterrole/cluster-admin 的账号列表。具有此角色的账号拥有对集群的所有命名空间中的每个资源的完整访问权限。此字段还会配置 RBAC 政策,以便指定的账号使用连接网关针对集群运行 kubectl 命令。如果您有多个集群需要管理(尤其是在同时具有 GKE 和本地集群的混合环境中),则此字段会很方便。

如果用户具有必需的 Identity and Access Management 角色来访问 Google Cloud 控制台,则这些 RBAC 政策还可让用户使用其 Google 身份登录 Google Cloud 控制台。

此字段接受账号名称数组。支持用户账号和服务账号。对于用户,您需要指定其 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

集群资源 可选 可更改

可选。布尔值 (true|false)。启用或停用无根裸金属系统容器。启用此字段后,裸金属系统容器会以用户 ID 在 2000-5000 范围内的非根用户身份运行。停用此字段后,裸金属系统容器会以根用户身份运行。此功能默认处于启用状态。强烈建议不要关闭此功能,因为以根用户身份运行容器会带来安全风险。创建集群后,只能在升级期间切换此字段。如需了解详情,请参阅不要以根用户身份运行容器

集群资源 可选 可变(仅限升级)
预览版

可选。布尔值 (true|false)。启用或停用集群范围的 seccomp。停用此字段后,集群配置文件中没有 seccomp 配置文件的容器将不受限制。启用此字段后,系统会使用容器运行时的默认 seccomp 配置文件来保护这些容器。默认情况下,此功能处于启用状态。 创建集群后,只能在升级期间切换此字段。 如需了解详情,请参阅使用 seccomp 限制容器

集群资源 可选 可变(仅限升级)

可选。整数。默认值为 2000。Google Distributed Cloud 软件中的系统容器有助于安装和管理集群。 这些容器使用的用户 ID (UID) 和群组 ID (GID) 可由集群规范中的 startUIDRangeRootlessContainers 字段控制。系统容器使用 startUIDRangeRootlessContainersstartUIDRangeRootlessContainers + 2999 范围内的 UID 和 GID,因此默认范围为 20004999。更新 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
...

如需了解详情,请参阅不要以根用户身份运行容器

集群资源 可选 可变(仅限升级)

本部分包含有关控制平面及其组件的信息。

集群资源 必需 可更改

可选。字符串(域名和 IP 地址)的数组。主体备用名称 (SAN) 是 SSL 证书的一项功能,可让您定义您希望证书在其中有效的域名和子网域。在裸机集群上,API 服务器证书的 SAN 默认包含控制平面节点的 IP 和 VIP 地址以及 Kubernetes DNS 名称。使用此字段可向集群的 API 服务器证书添加额外的 SAN。域名必须符合 RFC 1035 的要求。 如需了解详情,请参阅向 API 服务器证书添加域名

例如:

...
controlPlane:
  apiServerCertExtraSANs:
  - "demo-dns.example.com"
  - "sample-dns.com"
  nodePoolSpec:
  ...
        

此字段可以随时添加或更改。

集群资源 可选 可更改

本部分指定控制平面及其组件所使用的节点池的 IP 地址。控制平面节点池规范(例如负载均衡器节点池规范)是特殊的。此规范可声明并控制关键集群资源。此资源的规范来源是集群配置文件中的这个部分。请勿直接修改顶级控制平面节点池资源。请改为修改集群配置文件中的相关部分。

集群资源 必需 可更改

可选。本部分包含用于在控制平面节点池中的所有节点上配置 kubelet 的字段。

例如:

controlPlane:
  nodePoolSpec:
    kubeletConfig:
      registryBurst: 15
      registryPullQPS: 10
      serializeImagePulls: false
集群资源 可选 可更改

可选。整数(非负)。指定可以添加到处理队列以处理请求高峰的映像拉取请求的最大数量。拉取开始后,就可以向队列添加新请求。默认值为 10。此字段对应于 registryBurst kubelet 配置 (v1beta1) 选项。

registryPullQPS 的值优先于此设置。例如,使用默认设置时,最多允许 10 个并发查询,但必须以每秒 5 次查询的默认速率处理。此爆发行为仅在 registryPullQPS 大于 0 时使用。

创建、更新或升级集群时可以设置此字段,并且此设置在集群升级后持续有效。如需了解详情,请参阅配置 kubelet 映像拉取设置

集群资源 可选 可更改

可选。整数(非负)。指定 Container Registry 映像拉取查询的处理速率,单位为每秒查询次数 (QPS)。当 registryPullQPS 设置为大于 0 的值时,查询速率会限制为该值(单位为每秒查询次数)。如果 registryPullQPS 设置为 0,则对查询速率没有限制。默认值为 5

此字段对应于 registryPullQPS kubelet 配置 (v1beta1) 选项。

创建、更新或升级集群时可以设置此字段,并且此设置在集群升级后持续有效。如需了解详情,请参阅配置 kubelet 映像拉取设置

集群资源 可选 可更改

可选。布尔值 (true|false)。此字段指定 Container Registry 拉取是并行处理还是逐个处理。默认值为 true,指定一次处理一个拉取。设置为 false 时,kubelet 会并行拉取映像。此字段对应于 serializeImagePulls kubelet 配置 (v1beta1) 选项。

创建、更新或升级集群时可以设置此字段,并且此设置在集群升级后持续有效。如需了解详情,请参阅配置 kubelet 映像拉取设置

集群资源 可选 可变

必需。IP 地址数组。通常,此数组要么是单个机器的 IP 地址,要么是高可用性 (HA) 部署中三个机器的 IP 地址。

例如:

controlPlane:
  nodePoolSpec:
    nodes:
    - address: 192.168.1.212
    - address: 192.168.1.213
    - address: 192.168.1.214
        

每次更新或升级集群时都可以更改此字段。

集群资源 必需 可更改

必需。字符串(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
        

每次更新或升级集群时都可以更改此字段。

集群资源 必需 可更改

可选。字符串(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
        

集群创建后,此字段便无法更改。

集群资源 可选 不可变

字符串。具有访问 Container Registry 资源所需的 IAM 权限的服务账号密钥的路径。

凭据 可选 可更改

本部分包含您将集群连接到 Google Cloud所要使用的 Google Cloud 项目的相关信息。

集群资源 必需 不可变

可选。字符串。默认值为 global。 集群的舰队成员资格由 Fleet 服务 (gkehub.googleapis.com) 和 Connect 服务 (gkeconnect.googleapis.com) 管理。舰队成员资格可以是全球级的,也可以是区域级的。或者,您可以使用 gkeConnect.location 指定 Fleet 服务和 Connect 服务运行的 Google Cloud 区域,以便将流量限制在您的区域内。

如需查看受支持区域的列表,请参阅 GKE On-Prem API 支持的区域。 如果未指定,则使用服务的全球实例。

请注意以下几点:

  • 在低于 1.28 的版本中创建的集群由全球 Fleet 和 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"

无法为现有集群修改此值。

集群资源 可选 不可变

必需:字符串。您将集群连接到 Google Cloud所要使用的 Google Cloud 项目的 ID。这也称为舰队宿主项目

例如:

spec:
  ...
  gkeConnect:
    projectID: "my-connect-project-123"

无法为现有集群修改此值。

集群资源 必需 不可变

字符串。代理服务账号密钥的路径。Google Distributed Cloud 使用此服务账号来维护您的本地集群与 Google Cloud之间的连接。

如需有关如何配置此服务账号的说明,请参阅配置服务账号以与 Connect 搭配使用

凭据 可选 可更改

字符串。注册服务账号密钥的路径。Google Distributed Cloud 使用此服务账号向 Google Cloud注册您的用户集群。

如需有关如何配置此服务账号的说明,请参阅配置服务账号以与 Connect 搭配使用

凭据 可选 可更改

在 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 中注册。

集群资源 可选

默认情况下,如果项目中启用了 GKE On-Prem API,则集群会在 GKE On-Prem API 中注册。如果您不想注册集群,请设置为 false

在 GKE On-Prem API 中注册集群后,如果您需要取消注册集群,请进行以下更改然后更新集群:

gkeOnPremAPI:
  enabled: false
集群资源 必需 可变

GKE On-Prem API 运行和存储集群元数据的 Google Cloud 区域。选择一个支持的区域。如果 gkeOnPremAPI.enabledtrue,则必须是非空字符串。如果 gkeOnPremAPI.enabledfalse,请勿添加此字段。

如果配置文件中未包含此部分,则此字段设置为 clusterOperations.location

集群资源 可选 不可变

定义 IPv4 CIDR 范围的配置。必须至少为 ClusterCidrConfig 资源提供 ipv4ipv6 字段之一。

ClusterCIDRConfig 资源 可选 不可变

字符串。设置 IPv4 节点 CIDR 地址块。节点只能有来自每个系列的一个范围。此 CIDR 地址块必须与 Cluster 资源中描述的 Pod CIDR 一致。

例如:

ipv4:
  cidr: "10.1.0.0/16"
         
ClusterCIDRConfig 资源 必需 不可变

整数。定义节点 IPv4 CIDR 地址块的掩码大小。例如,值 24 转换为网络掩码 /24。确保节点的 CIDR 地址块网络掩码大于 kubelet 可以调度的 Pod 数上限(在 kubelet 的 --max-pods 标志中定义)。

ClusterCIDRConfig 资源 必需 不可变

定义 IPv6 CIDR 范围的配置。必须至少为 ClusterCidrConfig 资源提供 ipv4ipv6 字段之一。

ClusterCIDRConfig 资源 可选 不可变

字符串。设置 IPv6 节点 CIDR 地址块。节点只能有来自每个系列的一个范围。

例如:

ipv6:
  cidr: "2620:0:1000:2631:3:10:3:0/112"
         
ClusterCIDRConfig 资源 必需 不可变

整数。定义节点 IPv6 CIDR 地址块的掩码大小。例如,值 120 转换为网络掩码 /120。确保节点的 CIDR 地址块网络掩码大于 kubelet 可以调度的 Pod 数上限(在 kubelet 的 --max-pods 标志中定义)。

ClusterCIDRConfig 资源 必需 不可变

可选。本部分包含用于在控制平面节点池中的所有节点上配置 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 资源 可选 可更改

可选。整数(非负)。指定可以添加到处理队列以处理请求高峰的映像拉取请求的最大数量。拉取开始后,就可以向队列添加新请求。默认值为 10。此字段对应于 registryBurst kubelet 配置 (v1beta1) 选项。

registryPullQPS 的值优先于此设置。例如,使用默认设置时,最多允许 10 个并发查询,但必须以每秒 5 次查询的默认速率处理。此爆发行为仅在 registryPullQPS 大于 0 时使用。

创建、更新或升级集群时可以设置此字段,并且此设置在集群升级后持续有效。如需了解详情,请参阅配置 kubelet 映像拉取设置

NodePool 资源 可选 可更改

可选。整数(非负)。指定 Container Registry 映像拉取查询的处理速率,单位为每秒查询次数 (QPS)。当 registryPullQPS 设置为大于 0 的值时,查询速率会限制为该值(单位为每秒查询次数)。如果 registryPullQPS 设置为 0,则对查询速率没有限制。默认值为 5

此字段对应于 registryPullQPS kubelet 配置 (v1beta1) 选项。

创建、更新或升级集群时可以设置此字段,并且此设置在集群升级后持续有效。如需了解详情,请参阅配置 kubelet 映像拉取设置

NodePool 资源 可选 可更改

可选。布尔值 (true|false)。此字段指定 Container Registry 拉取是并行处理还是逐个处理。默认值为 true,指定一次处理一个拉取。设置为 false 时,kubelet 会并行拉取映像。此字段对应于 serializeImagePulls kubelet 配置 (v1beta1) 选项。

创建、更新或升级集群时可以设置此字段,并且此设置在集群升级后持续有效。如需了解详情,请参阅配置 kubelet 映像拉取设置

NodePool 资源 可选 可更改

已弃用。从 1.11.2 版开始,仅更新 VMRuntime 自定义资源即可启用或停用 VM Runtime on GDC。 布尔值。确定是否使用软件模拟来运行虚拟机。如果该节点支持硬件虚拟化,请将 useEmulation 设置为 false 以获得更好的性能。如果硬件虚拟化不受支持或者您不确定硬件虚拟化是否受支持,请将其设置为 true

集群资源 可选 可更改

可选。映射(键值对)。标签应用于节点池的节点,除非将 baremetal.cluster.gke.io/label-taint-no-sync 注解应用于集群。如需详细了解标签,请参阅标签和选择器

NodePool 资源 可选 可更改

本部分包含集群负载均衡设置。

集群资源 必需 可更改

对象。集群负载均衡器池的名称和 IP 地址数组。地址池配置仅对非管理员集群中的 bundled 负载均衡模式有效。您可以随时添加新的地址池,但无法移除现有的地址池。 只能修改现有地址池以更改 avoidBuggyIPsmanualAssign 字段。

集群资源 可选 不可变

IP 地址范围数组。为数据平面负载均衡器指定不重叠的 IP 范围列表。所有地址都必须与负载均衡器节点位于同一子网中。

例如:

addressPools:
- name: pool1
  addresses:
  - 192.168.1.0-192.168.1.4
  - 192.168.1.240/28
  
集群资源 可选 不可变

可选。布尔值 (true | false)。如果为 true,则该池会忽略以 .0.255 结尾的 IP 地址。 某些网络硬件会丢弃流向这些特殊地址的流量。您可以省略此字段,其默认值为 false

集群资源 可选 可更改

可选。布尔值 (true | false)。如果为 true,则此池中的地址不会自动分配给 Kubernetes Service。如果为 true,则只有在 Service 明确指定时,才使用此池中的 IP 地址。您可以省略此字段,其默认值为 false

集群资源 可选 可更改

字符串。您为集群负载均衡器池选择的名称。

集群资源 必需 不可变

可选。对象(映射列表)。本部分指定本地网络中(集群外部)的一个或多个边界网关协议 (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 的捆绑式负载均衡器

集群资源 可选 可更改

可选。字符串。外部对等设备所属网络的自治系统编号 (ASN)。在设置使用 BGP 的捆绑式负载均衡解决方案时,为设置用于进行控制平面负载均衡的每个 BGP 对等方指定 ASN。 如需了解详情,请参阅配置使用 BGP 的捆绑式负载均衡器

集群资源 可选 可更改

可选。IP (IPv4) 地址的数组。当您设置使用 BGP 的捆绑式负载均衡解决方案时,连接到外部 BGP 对等方的控制平面节点的一个或多个 IP 地址。如果您不指定任何控制平面节点,则所有控制平面节点都将连接到外部对等方。如果指定一个或多个 IP 地址,则只有指定的节点会参与对等互连会话。如需了解详情,请参阅配置使用 BGP 的捆绑式负载均衡器

集群资源 可选 可更改

可选。字符串(IPv4 地址)。本地网络中的外部对等互连设备的 IP 地址。如需了解详情,请参阅配置使用 BGP 的捆绑式负载均衡器

集群资源 可选 可更改

可选。字符串。指定正在创建的集群的自治系统编号 (ASN)。设置使用边界网关协议 (BGP) 的捆绑式负载均衡解决方案时,将使用此字段。 如需了解详情,请参阅配置使用 BGP 的捆绑式负载均衡器

集群资源 可选 可更改

必需。字符串。指定负载均衡模式。在 bundled 模式下,Google Distributed Cloud 软件会在集群创建期间在负载均衡器节点上安装负载均衡器。在 manual 模式下,集群依赖于手动配置的外部负载均衡器。如需了解详情,请参阅负载均衡器概览

允许使用的值:bundled | manual

集群资源 必需 不可变

可选。使用此部分配置负载均衡器节点池。您指定的节点是 Kubernetes 集群的一部分,并运行常规工作负载和负载均衡器。如果您未指定节点池,则控制平面节点用于进行负载均衡。本部分仅在负载均衡模式设置为 bundled 时适用。

如果要阻止工作负载在负载均衡器节点池中的节点上运行,请将以下污点添加到该节点:

node-role.kubernetes.io/load-balancer:NoSchedule

Google Distributed Cloud 软件会向负载均衡所需的 Pod 添加对此污点的容忍设置。

集群资源 可选 可更改

可选。本部分包含用于在控制平面节点池中的所有节点上配置 kubelet 的字段。

例如:

loadBalancer:
  nodePoolSpec:
    kubeletConfig:
      registryBurst: 15
      registryPullQPS: 10
      serializeImagePulls: false
集群资源 可选 可更改

可选。整数(非负)。指定可以添加到处理队列以处理请求高峰的映像拉取请求的最大数量。拉取开始后,就可以向队列添加新请求。默认值为 10。此字段对应于 registryBurst kubelet 配置 (v1beta1) 选项。

registryPullQPS 的值优先于此设置。例如,使用默认设置时,最多允许 10 个并发查询,但必须以每秒 5 次查询的默认速率处理。此爆发行为仅在 registryPullQPS 大于 0 时使用。

创建、更新或升级集群时可以设置此字段,并且此设置在集群升级后持续有效。如需了解详情,请参阅配置 kubelet 映像拉取设置

集群资源 可选 可更改

可选。整数(非负)。指定 Container Registry 映像拉取查询的处理速率,单位为每秒查询次数 (QPS)。当 registryPullQPS 设置为大于 0 的值时,查询速率会限制为该值(单位为每秒查询次数)。如果 registryPullQPS 设置为 0,则对查询速率没有限制。默认值为 5

此字段对应于 registryPullQPS kubelet 配置 (v1beta1) 选项。

创建、更新或升级集群时可以设置此字段,并且此设置在集群升级后持续有效。如需了解详情,请参阅配置 kubelet 映像拉取设置

集群资源 可选 可更改

可选。布尔值 (true|false)。此字段指定 Container Registry 拉取是并行处理还是逐个处理。默认值为 true,指定一次处理一个拉取。设置为 false 时,kubelet 会并行拉取映像。此字段对应于 serializeImagePulls kubelet 配置 (v1beta1) 选项。

创建、更新或升级集群时可以设置此字段,并且此设置在集群升级后持续有效。如需了解详情,请参阅配置 kubelet 映像拉取设置

集群资源 可选 可更改

本部分包含负载均衡器节点池中节点的 IP 地址数组。

默认情况下,负载均衡器节点池中的所有节点必须与在配置文件的 loadBalancer.addressPools 部分中配置的负载均衡器 VIP 位于同一第 2 层子网中。不过,如果您为节点指定了 Kubernetes IP 地址 k8sIP,则只有该地址需要与其他负载均衡器 VIP 位于同一第 2 层子网中。

集群资源 可选 可更改

可选。字符串(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
        
集群资源 可选 可更改

可选。字符串(IPv4 地址)。为节点指定可选的 k8sIP 地址时,该地址专用于处理该节点的数据和 Kubernetes 流量,例如 Kubernetes API、kubelet 及工作负载的请求和响应。指定 k8sIP 时,标准节点 IP 地址 nodePoolSpec.nodes.address 专用于与节点建立 SSH 连接。如果您未指定 k8sIP 地址,则标准节点 IP 地址会处理节点的所有流量。

例如:

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
        

集群创建后,此字段便无法更改。

集群资源 可选 不可变

数字。用于发送到 Kubernetes 控制平面(Kubernetes API 服务器)的流量的目标端口。

集群资源 必需 不可变

可选。字符串。指定使用的捆绑式负载均衡类型(第 2 层或边界网关协议 [BGP])。如果您使用的是标准捆绑式负载均衡,请将 type 设置为 layer2。如果您使用的是使用 BGP 的捆绑式负载均衡,请将 type 设置为 bgp。如果未设置 type,则默认为 layer2

允许使用的值:layer2 | bgp

集群资源 可选 不可变

必需。指定要连接到 Kubernetes API 服务器的虚拟 IP 地址 (VIP)。此地址不得位于负载均衡器地址池 loadBalancer.addressPools.addresses 所使用的任何 IP 地址的范围内。

集群资源 必需 不可变

可选。字符串(IPv4 地址)。您已选择在负载均衡器上为入站流量配置的 IP 地址。

集群资源 可选 不可变

可选。单个 IPv4 地址或 IPv4 地址范围。指定要置于维护模式的节点机器的 IP 地址。如需了解详情,请参阅将节点置于维护模式

例如:

  maintenanceBlocks:
    cidrBlocks:
    - 192.168.1.200  # Single machine
    - 192.168.1.100-192.168.1.109  # Ten machines
  
集群资源 可选 可更改

必需。字符串。通常情况下,命名空间名称使用 cluster-CLUSTER_NAME 格式,但从 Google Distributed Cloud 软件 1.7.2 版开始,不严格要求使用 cluster- 前缀。

无法为现有集群修改此值。

命名空间资源 必需 不可变

可选。字符串。指定要用于对集群中的节点机器进行无密码 SUDO 功能访问的非根用户名。您的 SSH 密钥 sshPrivateKeyPath 必须可用于指定用户。集群创建和更新操作会检查是否可以通过指定的用户和 SSH 密钥访问节点机器。

集群资源 可选 可更改

本部分包含集群节点配置的设置。

集群资源 可选 可变(仅限升级)

已弃用。从 1.13.0 版开始,Google Distributed Cloud 仅支持 containerd 作为容器运行时。containerRuntime 字段已弃用,并且已从生成的集群配置文件中移除。对于 Google Distributed Cloud 软件 1.13.0 版及更高版本,如果集群配置文件包含此字段,则值必须为 containerd

集群资源 可选 可变(仅限升级)

本部分指定 pod 密度配置。

集群资源 可选 不可变

可选。整数。指定可在单个节点上运行的最大 pod 数。对于自行管理的集群,maxPodsPerNode 的允许值为 32250(针对高可用性 [HA] 集群)和 64-250(针对非 HA 集群)。对于用户集群,maxPodsPerNode 的允许值为 32250。如果未指定,则默认值为 110。创建集群后,无法更新此值。

Kubernetes 会为每个节点分配一个无类别域间路由 (CIDR) 地址块,以便每个 pod 都可以有一个唯一的 IP 地址。CIDR 地址块的大小对应于每个节点的最大 pod 数。如需详细了解如何设置每个节点的最大 pod 数,请参阅 pod 网络

集群资源 可选 不可变

本部分将为用户集群指定节点级私有注册表配置。节点级私有注册表旨在与您的工作负载搭配使用,以便您更好地控制映像拉取以及相关的安全性。

例如:

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.30 及更高版本:正式版
  • 1.29:预览版
集群资源 可选 可变

如果适用,请使用本部分指定为存储私有注册表的 CA 证书(服务器根 CA)而创建的 Secret 的名称和命名空间。如果您的本地注册表不需要使用专用 TLS 证书,则可以省略此区块。

以下列表展示了用于配置节点级私有注册表的各个版本的发布阶段:

  • 1.30 及更高版本:正式版
  • 1.29:预览版
集群资源 可选 可更改

可选。字符串。为存储私有注册表的 CA 证书而创建的 Secret 的名称。

如需详细了解如何配置节点对私有注册表的访问权限,请参阅配置节点以向私有注册表进行身份验证

以下列表展示了用于配置节点级私有注册表的各个版本的发布阶段:

  • 1.30 及更高版本:正式版
  • 1.29:预览版
集群资源 可选 可更改

可选。字符串。为存储私有注册表的 CA 证书而创建的 Secret 的命名空间。

如需详细了解如何配置节点对私有注册表的访问权限,请参阅配置节点以向私有注册表进行身份验证

以下列表展示了用于配置节点级私有注册表的各个版本的发布阶段:

  • 1.30 及更高版本:正式版
  • 1.29:预览版
集群资源 可选 可更改

字符串。此字段用于指定单个私有注册表的主机和端口。您可以使用域名或 IP 地址指定主机。请勿添加 httphttps 前缀。

为用户集群指定私有注册表时需要 host 字段。

以下列表展示了用于配置节点级私有注册表的各个版本的发布阶段:

  • 1.30 及更高版本:正式版
  • 1.29:预览版
集群资源 可选 可变

如果适用,请使用此部分指定为存储私有注册表凭据而创建的 Secret 的名称和命名空间。

在配置用户集群以向需要进行身份验证的私有注册表授予节点访问权限时,请使用 pullCredentialSecretRef 代码块。

以下列表展示了用于配置节点级私有注册表的各个版本的发布阶段:

  • 1.30 及更高版本:正式版
  • 1.29:预览版
集群资源 可选 可更改

可选。字符串。为存储私有注册表凭据而创建的 Secret 的名称。

如需详细了解如何配置节点对私有注册表的访问权限,请参阅配置节点以向私有注册表进行身份验证

以下列表展示了用于配置节点级私有注册表的各个版本的发布阶段:

  • 1.30 及更高版本:正式版
  • 1.29:预览版
集群资源 可选 可更改

可选。字符串。为存储私有注册表凭据而创建的 Secret 的命名空间。

如需详细了解如何配置节点对私有注册表的访问权限,请参阅配置节点以向私有注册表进行身份验证

以下列表展示了用于配置节点级私有注册表的各个版本的发布阶段:

  • 1.30 及更高版本:正式版
  • 1.29:预览版
集群资源 可选 可更改

可选。本部分包含用于为集群中的工作器节点池配置升级策略的设置。如需了解详情,请参阅并行升级

集群资源 可选 可更改

可选。布尔值(01)。默认值:1。此字段指定是否同时升级集群的所有工作器节点池。默认情况下 (1),按顺序逐个升级。如果将 concurrentNodePools 设置为 0,则同时升级集群中的每个工作器节点池。

apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
  name: cluster1
  namespace: cluster-cluster1
spec:
  ...
  nodePoolUpgradeStrategy:
    concurrentNodePools: 0
  ...

如需了解详情,请参阅节点池升级策略

每个工作器池中的节点都会根据其对应的 NodePool 规范中的升级策略进行升级。

集群资源 可选 可更改

可选。布尔值(truefalse)。默认值:false。此字段用于指定是暂停还是恢复正在进行的集群升级。

对于所有控制平面节点均为次要版本 1.29 或更高版本的集群,升级暂停和恢复功能是正式版功能。对于 1.29 版集群,此功能默认处于启用状态。

对于所有控制平面节点均为次要版本 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
  ...

如需了解详情,请参阅暂停和恢复升级

集群资源 可选 可更改

可选。IP (IPv4) 地址的数组。这会定义工作器节点的节点池。

NodePool 资源 可选 可更改

可选。字符串(IPv4 地址)。工作器节点池中节点的一个或多个 IP 地址。

NodePool 资源 可选 可更改

定义 CIDR 配置适用的节点。空节点选择器是默认设置,适用于所有节点。

例如:

nodeSelector:
  matchLabels:
    baremetal.cluster.gke.io/node-pool: "workers"
         
ClusterCIDRConfig 资源 可选 可更改

可选。布尔值 (true | false)。指定是否使用您自己的软件包代码库服务器,而不是默认的 Docker apt 代码库。如需使用您自己的软件包代码库,请将 addPackageRepo 设置为 false。使用此功能可跳过向部署中的每一个裸机机器添加软件包代码库的步骤。如需了解详情,请参阅使用私有软件包代码库服务器

集群资源 可选 不可变

此部分包含定期健康检查的配置信息。在集群资源中,唯一可用于定期健康检查的设置是 enable 字段。如需了解详情,请参阅定期健康检查

集群资源 可选 可更改

可选。布尔值 (true|false)。为集群启用或停用定期运行的健康检查。默认情况下,所有集群都会启用定期健康检查。您可以通过将 periodicHealthCheck.enable 字段设置为 false 来停用集群的定期健康检查。 如需了解详情,请参阅停用定期健康检查

集群资源 可选 可更改

可选。使用此部分指定要用于工作负载映像的私有注册表。在集群配置文件的凭据部分中配置私有注册表的这一方法仅适用于具有工作器节点池的混合或独立集群。

如需详细了解如何配置节点对私有注册表的访问权限,请参阅配置节点以向私有注册表进行身份验证

例如:

---
gcrKeyPath: baremetal/gcr.json
sshPrivateKeyPath: .ssh/id_rsa
...
privateRegistries:
  - host: 10.200.0.2:5007
    caCertPath: /root/cert.pem
    pullCredentialConfigPath: /root/dockerconfig.json
...
凭据 可选 可更改

可选。字符串。如果您的注册表服务器使用专用 TLS 证书,则此字段为 CA 证书文件(服务器根 CA)的路径。如果您的本地注册表不需要使用专用 TLS 证书,则可以省略此字段。

凭据 可选 可更改

字符串。此字段用于指定单个私有注册表的主机和端口。您可以使用域名或 IP 地址指定主机。请勿添加 httphttps 前缀。

为混合或独立集群指定私有注册表时需要 host 字段。

例如:

- host: 10.200.0.2:5007
凭据 可选 可更改

可选。字符串。Docker CLI 配置文件 config.json 的路径。Docker 会将身份验证设置保存在配置文件中。此字段仅适用于使用节点级私有注册表。

在配置混合集群或独立集群以向需要进行身份验证的私有注册表授予节点访问权限时,请使用 pullCredentialConfigPath 字段。

凭据 可选 可更改

可选。字符串。对于独立集群,将 profile 设置为 edge 时,它会最大限度地减少集群的资源消耗量。边缘配置文件仅适用于独立集群。边缘配置文件减少了系统资源要求,建议用于具有严格资源限制的边缘设备。如需了解与边缘配置文件相关的硬件要求,请参阅使用边缘配置文件的独立集群的资源要求

集群资源 可选 不可变

如果您的网络由代理服务器提供支持,请填写此部分。 否则,请移除此部分。

集群资源 可选 可更改

字符串。不应通过代理服务器的 IP 地址、IP 地址范围、主机名和域名的列表(以英文逗号分隔)。当您的集群向这些地址、主机或网域之一发送请求时,系统会直接发送请求。

集群资源 可选 不可变

字符串。代理服务器的 HTTP 地址。即使端口号与该方案的默认端口相同,也要填写此端口号。

例如:

proxy:
  url: "http://my-proxy.example.local:80"
  noProxy: "10.151.222.0/24, my-host.example.local,10.151.2.1"
  
集群资源 可选 可更改

可选。使用此部分指定用于安装集群的注册表镜像,而不是 Container Registry (gcr.io)。如需详细了解如何使用注册表镜像,请参阅使用容器映像的注册表镜像

例如:

registryMirrors:
  - endpoint: https://172.18.0.20:5000
    caCertPath: /root/ca.crt
    pullCredentialConfigPath: /root/.docker/config.json
    hosts:
      - somehost.io
      - otherhost.io
注册表镜像 可选 可更改

可选。字符串。如果您的注册表服务器使用专用 TLS 证书,则此字段为 CA 证书文件(服务器根 CA)的路径。如果您的本地注册表不需要使用专用 TLS 证书,则可以省略此字段。

注册表镜像 可选 可更改

字符串。镜像的端点,由注册表服务器 IP 地址和端口号组成。(可选)您可以在注册表服务器中使用您自己的命名空间,而不是根命名空间。如果没有命名空间,端点格式为 REGISTRY_IP:PORT。如果使用命名空间,端点格式为 REGISTRY_IP:PORT/v2/NAMESPACE。指定命名空间时必须包含 /v2

指定注册表镜像时,endpoint 为必填字段。您可以指定多个镜像/端点。

例如:

- endpoint: https://172.18.0.20:5000/v2/test-namespace
注册表镜像 可选 可更改

可选。针对特定注册表镜像 (endpoint) 在本地镜像的主机的域名数组。当容器运行时遇到来自指定主机的映像拉取请求时,它会首先检查本地注册表镜像。如需了解详情,请参阅从注册表镜像创建集群

例如:

registryMirrors:
  - endpoint: https://172.18.0.20:5000
    caCertPath: /root/ca.crt
    pullCredentialConfigPath: /root/.docker/config.json
    hosts:
    - somehost.io
    - otherhost.io
         
注册表镜像 可选 可更改

可选。字符串。Docker CLI 配置文件 config.json 的路径。Docker 会将身份验证设置保存在配置文件中。只有在使用注册表镜像时此字段才适用。如果您的注册表服务器不需要使用 Docker 配置文件即可进行身份验证,则可以省略此字段。

例如:

registryMirrors:
  - endpoint: https://172.18.0.20:5000
    caCertPath: /root/ca.crt
    pullCredentialConfigPath: /root/.docker/config.json
        
注册表镜像 可选 可更改

字符串。SSH 私钥的路径。必须通过 SSH 访问节点。

凭据 可选 可更改

本部分包含集群存储空间的设置。

集群资源 必需 不可变

本部分指定由装载磁盘支持的本地永久性卷的配置(路径)。您必须自行格式化并装载这些磁盘。您可以在创建集群之前或之后执行此任务。如需了解详情,请参阅 LVP 节点装载

集群资源 必需 不可变

必需。字符串。使用 path 字段来指定可发现已装载磁盘的宿主机路径。系统会为每个装载创建一个本地 PersistentVolume (PV)。默认路径为 /mnt/localpv-share。如需了解如何配置节点装载,请参阅配置 LVP 节点装载

集群资源 必需 不可变

本部分指定由共享文件系统中的子目录支持的本地永久性卷的配置。创建集群时,系统会自动创建这些子目录。如需了解详情,请参阅 LVP 共享

集群资源 必需 不可变

必需。字符串。指定要在 lvpShare.path 下创建的子目录的数量。默认值为 5。如需了解如何配置 LVP 共享,请参阅配置 LVP 共享

集群资源 必需 不可变

必需。字符串。使用 path 字段来指定可以创建子目录的宿主机路径。将为每个子目录创建一个本地 PersistentVolume (PV)。如需了解如何配置 LVP 共享,请参阅配置 LVP 共享

集群资源 必需 不可变

必需。字符串。指定用于创建永久性卷的 StorageClass。StorageClass 在创建集群期间创建。默认值为 local-shared。如需了解如何配置 LVP 共享,请参阅配置 LVP 共享

集群资源 可选 不可变

可选。对象。您可以利用节点污点对节点进行标记,以使调度器避免或阻止将其用于特定 pod。污点由键值对和相关效果组成。keyvalue 值是用于标识污点的字符串,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 资源 可选 可更改

必需。字符串。指定集群的类型。标准部署模型由一个管理员集群以及一个或多个由管理员集群管理的用户集群组成。 Google Distributed Cloud 软件支持以下类型的集群:

  • 管理员 - 用于管理用户集群的集群。
  • 用户 - 用于运行工作负载的集群。
  • 混合 - 一个同时用于管理和工作负载的单个集群,也可以管理用户集群。
  • 独立 - 一个可以管理自身也可以运行工作负载的单个集群,但不能创建或管理其他用户集群。

集群类型在创建集群时指定,无法更改以进行更新或升级。如需详细了解如何创建集群,请参阅创建集群:概览

允许使用的值:admin | user | hybrid | standalone

无法为现有集群修改此值。

集群资源 必需 不可变

可选。本部分包含用于为工作器节点池中的节点配置升级策略的设置。如需了解详情,请参阅并行升级。 注意:请勿为控制平面或负载均衡器节点池添加本部分。

NodePool 资源 可选 可更改

可选。本部分包含用于为工作器节点池配置并行节点升级的设置。在典型的默认集群升级中,每个集群节点按顺序依次升级。您可以配置工作器节点池,以便在升级集群时并行升级多个节点。并行升级节点可以显著加快集群升级速度,尤其是对于具有数百个节点的集群。

对于工作器节点池,您可以指定同时升级的节点数,并且可以为在能够整个升级过程中运行工作负载的节点数设置最小阈值。

如需了解详情,请参阅节点升级策略

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 资源 可选 可更改

可选。整数(正数)。默认值:1。最大值:15。默认情况下 (1),节点会按顺序逐个升级。将 concurrentNodes 设置为大于 1 的数字时,此字段指定要并行升级的节点数。请注意 concurrentNodes 的以下限制条件:

  • 该值不能超过节点池 50% 的节点数或固定数字 15 这两者中的较小值。例如,如果您的节点池有 20 个节点,则不能指定大于 10 的值。如果您的节点池有 100 个节点,则 15 是您可以指定的最大值。
  • 将此字段与 minimumAvailableNodes 字段一起使用时,这两个值的和不能超过节点池中的节点总数。例如,如果您的节点池有 20 个节点,并且 minimumAvailableNodes 设置为 18,则 concurrentNodes 不能超过 2

并行升级不遵循 Pod 中断预算 (PDB)。如果您的工作负载对中断很敏感,我们建议您指定 minimumAvailableNodes,以确保在升级过程中有一定数量的节点可用于运行工作负载。如需了解详情,请参阅并行升级

NodePool 资源 可选 可更改

可选。整数(非负)。默认值:取决于 concurrentNodes。如需详细了解 minimumAvailableNodes 的默认值,请参阅并行升级默认值minimumAvailableNodes 可让您指定节点池中在整个升级过程中必须保持可用的节点数。当节点正在升级时,该节点被视为不可用。当满足以下任一条件时,节点也被视为不可用:

  • 节点处于维护模式
  • 节点正在协调
  • 节点在升级过程中停滞

将此字段与 concurrentNodes 字段一起使用时,这两个值的和不能超过节点池中的节点总数。例如,如果您的节点池有 20 个节点,并且 concurrentNodes 设置为 10,则 minimumAvailableNodes 不能超过 10

较大的 minimumAvailableNodes 值可最大限度地减少安排 Pod 时的容量问题,从而帮助在集群升级期间保护工作负载。但是,较大的 minimumAvailableNodes 值会增加升级停滞的风险,因为可能需要等待节点变为可用。如需了解详情,请参阅并行升级

NodePool 资源 可选 可更改

bmctl 生成的集群配置文件包含用于指定本地文件系统中凭据和密钥文件路径的字段。集群彼此连接和连接到 Google Cloud 项目时需要这些凭据和密钥。

例如:

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
        
凭据 可选 可更改