集群资源
是
是
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
。
集群资源
否
否
authentication.oidc.extraParams
可选。英文逗号分隔列表。要发送到 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.multipleNetworkInterfaces
可选。布尔值。将此字段设置为 true
可为 pod 启用多个网络接口。此功能目前为预览版 。
如需详细了解如何设置和使用多个网络接口,请参阅为 pod 配置多个网络接口 预览版文档。
集群资源
否
否
clusterNetwork.pods.cidrBlocks
必需。采用 CIDR 地址块格式的 IPv4 地址范围。pods 指定从哪个 IP 范围分配 pod 网络。
例如:
pods :
cidrBlocks :
- 192.168.0.0/16
集群资源
是
否
clusterNetwork.services.cidrBlocks
必需。采用 CIDR 地址块格式的 IPv4 地址范围。指定从哪个 IP 地址范围分配服务虚拟 IP (VIP) 地址。此范围不得与可从您的网络访问的任何子网重叠。如需详细了解专用互联网的地址分配,请参阅 RFC 1918 。
例如:
services :
cidrBlocks :
- 10.96.0.0/12
集群资源
是
否
clusterOperations
本部分包含 Cloud Logging 和 Cloud Monitoring 的信息。
集群资源
—
—
clusterOperations.enableApplication
布尔值。设置为 true
可收集除了默认系统日志/指标之外的应用日志/指标,这些日志/指标与 Kubernetes 控制平面或集群管理代理等系统组件相对应。
集群资源
否
否
clusterOperations.disableCloudAuditLogging
(预览版 )
布尔值。设置为 false
可启用 Cloud Audit Logs。Cloud Audit Logs 可用于调查可疑的 API 请求以及收集统计信息。如需了解详情,请参阅启用审核日志记录 。
集群资源
否
是
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
布尔值。确定是否使用软件模拟来运行虚拟机。如果该节点支持硬件虚拟化,请将 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
模式下,Anthos clusters 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.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.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.containerRuntime
可选。字符串。指定在节点上调度容器时要使用的容器运行时(docker
或 containerd
)。如果未指定容器运行时,则默认为 docker
。如需详细了解如何设置容器运行时,请参阅更改容器运行时 。
允许使用的值:containerd
| docker
集群资源
否
否
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 地址范围、主机名和域名的逗号分隔列表。当 Anthos clusters on Bare Metal 向其中一个地址、主机或网域发送请求时,该请求会直接发送。
集群资源
否
否
proxy.url
字符串。代理服务器的 HTTP 地址。即使端口号与该方案的默认端口相同,也要填写此端口号。
例如:
proxy :
url: url : "http://my-proxy.example.local:80"
noProxy : "10.151.222.0/24, my-host.example.local,10.151.2.1"
集群资源
否
否
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
必需。字符串。指定集群的类型。标准部署模型由一个管理员集群以及一个或多个由管理员集群管理的用户集群组成。Anthos clusters on Bare Metal 支持以下类型的集群:
管理员 - 用于管理用户集群的集群。
用户 - 用于运行工作负载的集群。
混合 - 一个同时用于管理和工作负载的单个集群,也可以管理用户集群。
独立 - 一个可以管理自身也可以运行工作负载的单个集群,但不能创建或管理其他用户集群。
集群类型在创建集群时指定,无法更改以进行更新或升级。如需详细了解如何创建集群,请参阅创建集群:概览 。
允许使用的值:admin
| user
| hybrid
| standalone
无法为现有集群修改此值。
集群资源
是
否
name
必需。字符串。通常,命名空间名称使用 cluster-CLUSTER_NAME
模式,但并不严格要求使用 cluster-
前缀,因为必需使用 Anthos clusters on Bare Metal 1.7.2 版。
无法为现有集群修改此值。
命名空间资源
是
否
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 从不被逐出。
对于 Anthos clusters 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
)。如需详细了解如何使用注册表镜像,请参阅使用注册表镜像安装 Anthos clusters on bare metal 。
为方便起见,bmctl
会接受集群规范之外的 registryMirrors
字段,例如凭据键值对。如需查看示例,请参阅注册表镜像设置说明 。
例如:
registryMirrors :
- endpoint : https://172.18.0.20:5000
caCertPath : /root/ca.crt
pullCredentialConfigPath : /root/.docker/config.json
注册表镜像
可选
可更改
registryMirrors.endpoint
字符串。镜像的端点,由注册表服务器 IP 地址和端口号组成。(可选)您可以在注册表服务器中使用您自己的命名空间,而不是根命名空间。如果没有命名空间,端点格式为 REGISTRY_IP :PORT
。如果使用命名空间,端点格式为 REGISTRY_IP :PORT /v2/NAMESPACE
。指定命名空间时必须包含 /v2
。
例如:
- endpoint : https://172.18.0.20:5000/v2/test-namespace
注册表镜像
可选
可更改
registryMirrors.caCertPath
字符串。如果您的注册表服务器使用专用 TLS 证书,则为 CA 证书文件的路径。如果您的注册表不需要专用 TLS 证书,则可以将 caCertPath
字段留空。
注册表镜像
可选
可更改
registryMirrors.pullCredentialConfigPath
字符串。Docker CLI 配置文件 config.json
的路径。Docker 会将身份验证设置保存在配置文件中。只有在使用注册表镜像时此字段才适用。如果您的注册表服务器不需要使用 Docker 配置文件即可进行身份验证,则可以将 pullCredentialConfigPath
字段留空。
例如:
registryMirrors :
- endpoint : https://172.18.0.20:5000
caCertPath : /root/ca.crt
pullCredentialConfigPath : /root/.docker/config.json
注册表镜像
可选
可更改
凭据
bmctl
生成的 Anthos clusters 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
字符串。代理服务帐号密钥的路径。Anthos clusters on Bare Metal 使用此服务帐号来维护 Anthos clusters on Bare Metal 与 Google Cloud 之间的连接。
如需有关如何配置此服务帐号的说明,请参阅配置服务帐号以与 Connect 搭配使用 。
凭据
否
是
gkeConnectRegisterServiceAccountKeyPath
字符串。注册服务帐号密钥的路径。Anthos clusters on Bare Metal 使用此服务帐号向 Google Cloud 注册您的用户集群。
如需有关如何配置此服务帐号的说明,请参阅配置服务帐号以与 Connect 搭配使用 。
凭据
否
是
cloudOperationsServiceAccountKeyPath
字符串。运维服务帐号密钥的路径。Anthos clusters on Bare Metal 使用运维服务帐号向 Google Cloud 的运维套件进行身份验证,以访问 Logging API 和 Monitoring API。
如需有关如何配置此服务帐号的说明,请参阅配置服务帐号以与 Logging 和 Monitoring 搭配使用 。
凭据
否
是