注册资源

本页面适用于基础架构运维者

安装 Anthos Management Center 后,您必须注册机器、地址池和引导服务。如果您在安装管理中心之前已通过修改管理中心配置文件注册资源,则可以跳过此页面,除非您还要注册其他资源。

注册库存机器

如需让平台管理员创建用户集群,Anthos 专用模式需要一个空闲机器池。在本部分中,您将库存机器注册到 Anthos 管理员集群,以便平台管理员可以在稍后使用它们创建用户集群。这些机器必须满足与管理员集群节点相同的要求。

kubectl apply -f path/to/example-machine.yaml --kubeconfig=ADMIN_KUBECONFIG

example-machine.yaml 文件示例:

apiVersion: baremetal.cluster.gke.io/v1alpha1
kind: InventoryMachine
metadata:
  name: IP_ADDRESS
  labels:
    "KEY": "VALUE"
spec:
  address: IP_ADDRESS

请替换以下内容:

  • IP_ADDRESS:机器的 IP 地址,例如 10.200.0.10
  • KEY:VALUE:键值对,例如 "rack": "r1020",用于指示机架位置。

labels 是附加到资源的自由格式键值对。这些标签稍后可用于管理中心以过滤机器。例如,您可以使用标签来标识机架位置或特殊硬件配置。

可选:将不同的 SSH 密钥用于库存机器

默认情况下,Anthos 不公开模式使用 sshPrivateKeyPath 提供的 SSH 密钥(用于访问管理员集群的机器)来访问这些库存机器。为了更好地让管理员集群机器和库存机器(用于用户集群)隔离,可将不同的 SSH 密钥用于库存机器。在创建需要 SSH 密钥的用户集群之前,请先创建这些密钥。

  1. 将 SSH 公钥分发给所有库存机器。

  2. 将 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
    

    /path/to/KEYPAIR_PRIVATE_KEY_FILENAME 替换为输出密钥对的目标路径。

  3. 创建用户集群时,请在命名空间 anthos-creds 下指定第 1 步中创建的 Secret(例如 user-cluster-ssh-key)。

    仅在通过 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_USERNAME
          ....
    

    请替换以下内容:

    • CLUSTER_NAME:集群的名称。
    • LOGIN_USERNAME:用于登录用户集群的用户名。

注册 VIP 地址池

如需让平台管理员创建 InventoryMachines 以外的用户集群,Anthos 需要一个包含所有可用虚拟 IP 地址 (VIP) 的池。Management Center Console 使用此池来显示平台管理员可用的 VIP,并在用户集群创建期间验证 VIP 可用性。

在本部分中,您会将 AddressPool 注册到 Anthos 管理员集群,以便稍后创建用户集群。您只需使用 anthos-addresspool-default 名称创建一个地址池。每个用户集群都必须使用此地址池中的 VIP,并且不能重复使用同一 VIP 范围。这些 VIP 必须满足与管理员集群相同的 VIP 要求,且不能与节点的 IP 地址重叠。

kubectl apply -f path/to/ADDRESS_POOL_FILENAME --kubeconfig=ADMIN_KUBECONFIG

path/to/ADDRESS_POOL_FILENAME 替换为地址池文件的路径,例如 example-addresspool.yaml

example-addresspool.yaml 文件示例:

apiVersion: managementcenter.anthos.cloud.google.com/v1
kind: AddressPool
metadata:
  name: anthos-addresspool-default
spec:
  description: DESCRIPTION
  addresses:
  - VIP_ADDRESS_POOL

请替换以下内容:

  • DESCRIPTION:输入要在 Management Center Console 中显示的任何其他说明。
  • VIP_ADDRESS_POOL:VIP 地址池范围,例如 10.200.0.100-10.200.0.200

注册 Bootstrap Service

Bootstrap Service 是一个机制,用于在用户集群上预装存储服务和 GPU 驱动程序等其他资源(在创建它们之后),以便这些资源立即可用。在创建需要这些服务的用户集群之前,请先创建引导服务。

  1. 创建 configmap,其中包含安装服务所需的所有清单。

    kubectl create configmap <configmap-name> --kubeconfig=ADMIN_KUBECONFIG \
      --from-file=path/to/MANIFESTS --namespace=anthos-management-center
    

    path/to/MANIFESTS 替换为清单文件的路径。

  2. 创建引用 configmap 的 Bootstra Service 对象:

    apiVersion: managementcenter.anthos.cloud.google.com/v1
    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
    

    请替换以下内容:

    • BOOTSTRAP_SERVICE_NAME:Bootstrap Service 的名称。
    • CONFIGMAP_NAME:您在上一步中创建的 configmap 的名称。
  3. 如果需要更多 Bootstrap Service,请重复上述步骤。

后续步骤