集群资源
必填
可更改
authentication
本部分包含使用 OpenID Connect (OIDC) 所需的设置。OIDC 允许您使用现有的身份提供商来管理 Anthos clusters on Bare Metal 集群中的用户和群组身份验证。
集群资源
—
—
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 网关。这两项功能都使用 Anthos Network Gateway。Anthos Network Gateway 是在 GKE Enterprise 和 Google Kubernetes Engine (GKE) 中启用高级网络功能的关键组件。Anthos Network Gateway 的主要优势之一是可以从您在“NetworkGatewayGroup”自定义资源中指定的一组地址动态地分配浮动 IP 地址。
如需详细了解 Anthos Network Gateway 和相关的高级网络功能,请参阅配置出站流量 NAT 网关 和使用 BGP 配置捆绑式负载均衡器 。
集群资源
可选
不可变
clusterNetwork.bundledIngress
布尔值。将此字段设置为 false
可停用与 GKE on Bare Metal 捆绑的 Ingress 功能。集群的捆绑 Ingress 功能仅支持入站流量。如果您与 Istio 或 Anthos Service Mesh 集成,以获得功能全面的服务网格的额外优势,我们建议您停用捆绑式 Ingress。此字段默认设置为 true
。此字段不在生成的集群配置文件中。您只能为 1.13.0 版及更高版本的集群停用捆绑式 Ingress。
如需详细了解捆绑式 Ingress 功能,请参阅创建 Service 和 Ingress 。
集群资源
可选
可更改
clusterNetwork.flatIPv4
布尔值。将此字段设置成 true
以启用平面模式集群网络模型。在平面模式下,每个 pod 都有专属的唯一 IP 地址。Pod 可以直接相互通信,而无需中间网关或网络地址转换 (NAT)。flatIPv4
的默认值为 false
。您只能在创建集群期间启用平面模式。为集群启用平面模式后,无法将其停用。
集群资源
可选
不可变
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 。
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
布尔值。设置为 true
可收集除了默认系统日志/指标之外的应用日志/指标,这些日志/指标与 Kubernetes 控制平面或集群管理代理等系统组件相对应。您可以随时更改此值。
集群资源
可选
可更改
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
本部分包含有关控制平面及其组件的信息。
集群资源
必填
可更改
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
每次更新或升级集群时都可以更改此字段。
集群资源
必填
可更改
gkeConnect
本部分包含您要用于将集群连接到 Google Cloud 的 Google Cloud 项目的相关信息。
集群资源
必填
不可更改
gkeConnect.projectID
必需:字符串。您要用于将集群连接到 Google Cloud 的 Google Cloud 项目的 ID。这也称为舰队宿主项目 。
例如:
spec :
...
gkeConnect :
projectID : "my-connect-project-123"
无法为现有集群修改此值。
集群资源
必填
不可更改
kubevirt.useEmulation
(已弃用)
已弃用。 从 1.11.2 版开始,仅更新 VMRuntime 自定义资源即可启用或停用 VM Runtime on Google Distributed Cloud。
布尔值。确定是否使用软件模拟来运行虚拟机。如果该节点支持硬件虚拟化,请将 useEmulation
设置为 false
以获得更好的性能。如果硬件虚拟化不受支持或者您不确定硬件虚拟化是否受支持,请将其设置为 true
。
集群资源
可选
可更改
loadBalancer
本部分包含集群负载均衡设置。
集群资源
必填
可更改
loadBalancer.addressPools
对象。集群负载均衡器池的名称和 IP 地址数组。地址池配置仅对非管理员集群中的 bundled
负载均衡模式有效。您可以随时添加新的地址池,但无法修改或移除现有的地址池。
集群资源
可选
不可变
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
模式下,GKE on Bare Metal 会在集群创建期间在负载均衡器节点上安装负载均衡器。在 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
。
集群资源
可选
可更改
loadBalancer.nodePoolSpec.nodes
本部分包含负载均衡器节点池中节点的 IP 地址数组。
集群资源
可选
可更改
loadBalancer.nodePoolSpec.nodes.address
可选。字符串(IPv4 地址)。节点的 IP 地址。
集群资源
可选
可更改
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
)。指定在初始化裸机时是否添加软件包代码库。
集群资源
可选
不可更改
nodeConfig
本部分包含集群节点配置的设置。
集群资源
可选
可变(仅限升级)
nodeConfig.containerRuntime
(已弃用)
已弃用。从 1.13.0 版开始,GKE on Bare Metal 仅支持 containerd
作为容器运行时。containerRuntime
字段已弃用,并且已从生成的集群配置文件中移除。对于 GKE on Bare Metal 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 网络 。
集群资源
可选
不可变
profile
可选。字符串。对于独立集群,将 profile
设置为 edge
时,它会最大限度地减少集群的资源消耗量。边缘配置文件仅适用于独立集群。边缘配置文件减少了系统资源要求,建议用于具有严格资源限制的边缘设备。如需了解与边缘配置文件相关的硬件要求,请参阅使用边缘配置文件的独立集群的资源要求 。
集群资源
可选
不可变
proxy
如果您的网络由代理服务器提供支持,请填写此部分。
否则,请移除此部分。
集群资源
可选
可更改
proxy.noProxy
字符串。不应通过代理服务器的 IP 地址、IP 地址范围、主机名和域名的逗号分隔列表。当 GKE on Bare Metal 向其中一个地址、主机或网域发送请求时,该请求会直接发送。
集群资源
可选
不可变
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
。
集群资源
可选
可更改
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
必需。字符串。指定集群的类型。标准部署模型由一个管理员集群以及一个或多个由管理员集群管理的用户集群组成。GKE on Bare Metal 支持以下类型的集群:
管理员 - 用于管理用户集群的集群。
用户 - 用于运行工作负载的集群。
混合 - 一个同时用于管理和工作负载的单个集群,也可以管理用户集群。
独立 - 一个可以管理自身也可以运行工作负载的单个集群,但不能创建或管理其他用户集群。
集群类型在创建集群时指定,无法更改以进行更新或升级。如需详细了解如何创建集群,请参阅创建集群:概览 。
允许使用的值:admin
| user
| hybrid
| standalone
无法为现有集群修改此值。
集群资源
必填
不可变
name
必需。字符串。通常,命名空间名称使用 cluster-CLUSTER_NAME
格式,但从 GKE on Bare Metal 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 资源
可选
可更改
taints
可选。对象。您可以利用节点污点对节点进行标记,以使调度器避免或阻止将其用于特定 pod。污点由键值对和相关效果组成。key
和 value
值是用于标识污点的字符串,effect
值指定系统如何为节点处理 pod。taints
对象可以具有多个污点。
effect
字段可使用以下值之一:
NoSchedule
- 除非 pod 具有匹配的容忍设置,否则无法将其调度到节点上。
PreferNoSchedule
- 系统会避免将不能容忍污点的 pod 放置在节点上,但这不是必需的。
NoExecute
- 不能容忍污点的 pod 会立即被逐出,能够容忍污点的 pod 从不被逐出。
对于 GKE on Bare Metal,污点会与节点池的节点协调,除非将 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 资源
可选
可更改
registryMirrors
可选。使用此部分指定用于安装集群的注册表镜像,而不是 Container Registry (gcr.io
)。如需详细了解如何使用注册表镜像,请参阅使用注册表镜像安装 GKE on Bare Metal 。
为方便起见,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
为 GKE on Bare Metal 生成的集群配置文件包含用于指定本地文件系统中凭据和密钥文件的路径的字段。集群彼此连接和连接到 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 管理的服务账号,与 Google Cloud 服务交互时会代表 Container Registry 执行操作。
凭据
可选
可更改
sshPrivateKeyPath
字符串。SSH 私钥的路径。必须通过 SSH 访问节点。
凭据
可选
可更改
gkeConnectAgentServiceAccountKeyPath
字符串。代理服务账号密钥的路径。GKE on Bare Metal 使用此服务账号来维护 GKE on Bare Metal 与 GKE on Google Cloud 之间的连接。
如需有关如何配置此服务账号的说明,请参阅配置服务账号以与 Connect 搭配使用 。
凭据
可选
可更改
gkeConnectRegisterServiceAccountKeyPath
字符串。注册服务账号密钥的路径。GKE on Bare Metal 使用此服务账号向 Google Cloud 注册您的用户集群。
如需有关如何配置此服务账号的说明,请参阅配置服务账号以与 Connect 搭配使用 。
凭据
可选
可更改
cloudOperationsServiceAccountKeyPath
字符串。运维服务账号密钥的路径。GKE on Bare Metal 使用运维服务账号向 Google Cloud 的运维套件进行身份验证,以访问 Logging API 和 Monitoring API。
如需有关如何配置此服务账号的说明,请参阅配置服务账号以与 Logging 和 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 资源
可选
可更改