注册库存机器
为了使 Platform Admin 能够创建用户集群,Anthos 需要一个空闲的机器池。在本部分中,您将库存机器注册到 Anthos 管理员集群,以便 Platform Admin 可以在稍后使用它们创建用户集群。这些机器必须满足与管理员集群节点相同的要求。
kubectl apply -f <path/to/example-machine.yaml> --kubeconfig=${ADMIN_KUBECONFIG}
例如:
apiVersion: baremetal.cluster.gke.io/v1alpha1
kind: InventoryMachine
metadata:
name: <ip address of the machine. e.g., 10.200.0.10>
labels:
"mykey": "myvalue"
"rack": "r1020"
spec:
address: <ip address of the machine. e.g., 10.200.0.10>
labels
是附加到资源的自由格式键值对。您后续可以在管理中心使用这些标签过滤机器。例如,您可以使用标签来标识机架位置、特殊硬件配置等。
[可选] 将不同的 SSH 密钥用于库存机器
默认情况下,Anthos 不公开模式使用 sshPrivateKeyPath
(用于访问管理员集群的机器)提供的 ssh-key
来访问这些库存机器。为了更好地让管理员集群机器和库存机器(用于用户集群)隔离,可将不同的 SSH 密钥用于库存机器。 您应该先在需要用户集群之前创建此类集群。
将 SSH 公钥分发给所有库存机器。
将 SSH 私钥作为 Secret 存储在管理员集群中,例如
user-cluster-ssh-key
kubectl create secret generic user-cluster-ssh-key -n anthos-creds --kubeconfig=${ADMIN_KUBECONFIG} \ --from-file=id_rsa=/path/to/KEYPAIR_PRIVATE_KEY_FILENAME
创建用户集群时,请在命名空间
anthos-creds
下指定在第 1 步(即user-cluster-ssh-key
)中创建的 Secret。仅在通过 API 创建集群时支持此操作。在用户集群 yaml 文件内的集群定义中将 SSH 密钥添加为
sshKeySecret
并指定imagePullSecret
,例如:apiVersion: baremetal.cluster.gke.io/v1 kind: Cluster metadata: name: <cluster-name> namespace: cluster-<cluster-name> spec: type: user credentials: sshKeySecret: name: user-cluster-ssh-key namespace: anthos-creds .... nodeAccess: loginUser: <login user name> ....
注册 VIP 地址池
为了让 Platform Admin 能创建除 InventoryMachines
以外的用户集群,Anthos 需要一个包含所有可用虚拟 IP 地址的池。管理中心界面使用它来告诉 Platform Admin 哪些虚拟 IP 可用,并在用户集群创建期间验证 VIP 的可用性。
在本部分中,您将向 Anthos 管理员集群注册 AddressPool,以便稍后用于创建用户集群。您需要使用 anthos-addresspool-default
名称创建一个且仅一个地址池。每个用户集群都将强制使用此地址池中的 VIP,并且不能重复使用同一 VIP 范围。虚拟 IP 必须满足与管理员集群相同的 VIP 要求,且不应与节点的 IP 重叠。通过说明字段,您可以在界面中添加一些其他说明。
kubectl apply -f <path/to/example-addresspool.yaml> --kubeconfig=${ADMIN_KUBECONFIG}
例如:
apiVersion: managementcenter.anthos.cloud.google.com/v1alpha1
kind: AddressPool
metadata:
name: anthos-addresspool-default
spec:
description: <description text>
addresses:
- <vip address pool. e.g, 10.200.0.100-10.200.0.200>
注册 Bootstrap Service
Bootstrap Service 是一个机制,用于在用户集群上预装存储服务和 GPU 驱动程序等其他资源(在创建它们之后),以便这些资源立即可用。您应该在要使用这些集群的用户集群之前创建 Bootstrap Service。
用途
kubectl create configmap <configmap-name> --kubeconfig=${ADMIN_KUBECONFIG} \ --from-file=<path/to/manifests> --namespace=anthos-management-center
创建 configmap,其中包含启动服务所需的所有清单
创建引用 configmap 的 Bootstra Service 对象
apiVersion: managementcenter.anthos.cloud.google.com/v1alpha1 kind: BootstrapService metadata: name: <bootstrap-service-name> namespace: anthos-management-center spec: # If set to True, this configuration can be applied to many user clusters, # e.g. a GPU driver configuration. If False, this configuration can only be # applied to a single user cluster, e.g. a CSI Driver + StorageClass # combination which is intended for exclusive use by a single user cluster. # Defaults to False. isReusable: False configMapRef: name: <configmap-name> namespace: anthos-management-center
如果需要更多 Bootstra Service,请重复上述步骤。