Enregistrer des ressources

Enregistrer des machines inventoriées

Pour que l'administrateur de la plate-forme puisse créer un cluster utilisateur, Anthos a besoin d'un pool de machines inactives disponibles. Dans cette section, vous allez enregistrer des machines inventoriées dans le cluster d'administrateur Anthos pour l'administrateur de la plate-forme afin de les utiliser ultérieurement pour créer un cluster utilisateur. Ces machines doivent répondre aux mêmes exigences que les nœuds du cluster d'administrateur.

kubectl apply -f <path/to/example-machine.yaml> --kubeconfig=${ADMIN_KUBECONFIG}

Exemple :

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>

Les labels sont des paires clé/valeur de forme libre associées à la ressource. Vous pouvez les utiliser par la suite dans le centre de gestion pour filtrer les machines. Par exemple, vous pouvez utiliser ces libellés pour identifier l'emplacement des racks, les configurations matérielles spéciales, etc.

[Facultatif] Utiliser des clés SSH différentes pour les machines inventoriées

Par défaut, le mode privé d'Anthos utilise la ssh-key fournie par sshPrivateKeyPath (qui est utilisé pour accéder aux machines du cluster d'administrateur) pour accéder à ces machines inventoriées. Afin de bénéficier d'une meilleure isolation entre les machines du cluster administrateur et les machines inventoriées (utilisées pour les clusters d'utilisateur), vous pouvez utiliser une clé SSH différente pour les machines inventoriées. Vous devez les créer avant les clusters utilisateur pour lesquels vous en avez besoin.

  1. Distribution de la clé publique SSH sur toutes les machines inventoriées.

  2. Stockez la clé SSH privée en tant que secret dans le cluster d'administration, par exemple 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
    
  3. Lorsque vous créez des clusters d'utilisateur, spécifiez le secret créé à l'étape 1, c'est-à-dire user-cluster-ssh-key, sous l'espace de noms anthos-creds.

    Cette option n'est disponible que lors de la création de clusters via l'API. Ajoutez la clé SSH dans la définition du cluster à l'intérieur du fichier YAML du cluster d'utilisateur, sous la forme sshKeySecret et spécifiez imagePullSecret, par exemple:

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

Enregistrer un pool d'adresses IP virtuelles

Pour que l'administrateur de la plate-forme puisse créer un cluster d'utilisateur autre que InventoryMachines, Anthos a besoin d'un pool regroupant toutes les adresses IP virtuelles disponibles. L'interface utilisateur du centre de gestion utilise ce pool pour indiquer à l'administrateur de la plate-forme quelles sont les adresses IP virtuelles disponibles et pour vérifier la disponibilité des adresses IP virtuelles lors de la création du cluster d'utilisateur.

Dans cette section, vous allez enregistrer un pool d'adresses dans le cluster d'administrateur Anthos. Vous l'utiliserez par la suite pour créer des clusters d'utilisateur. Vous devez créer un unique pool d'adresses à l'aide du nom anthos-addresspool-default. Chaque cluster d'utilisateur devra forcément utiliser des adresses IP virtuelles de ce pool d'adresses et ne pourra pas réutiliser la même plage d'adresses IP virtuelles. Les adresses IP virtuelles doivent répondre aux mêmes exigences que les adresses IP virtuelles utilisées pour le cluster d'administrateur et ne doivent pas se chevaucher avec les adresses IP des nœuds. Le champ de description vous permet d'ajouter des instructions supplémentaires dans l'interface utilisateur.

kubectl apply -f <path/to/example-addresspool.yaml> --kubeconfig=${ADMIN_KUBECONFIG}

Exemple :

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>

Enregistrer le service d'amorçage

Le service d'amorçage est un mécanisme utilisé pour préinstaller des ressources supplémentaires, telles que les services de stockage et les pilotes de GPU, dans des clusters d'utilisateur après leur création pour les rendre immédiatement disponibles. Vous devez créer les services d'amorçage avant les clusters d'utilisateur dans lesquels vous allez les utiliser.

  1. Utilisation

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

    pour créer le ConfigMap, qui contient tous les fichiers manifestes nécessaires à l'amorçage du service.

  2. Créer l'objet de service Bootstrap qui fait référence au ConfigMap

    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
    
  3. Répétez la procédure ci-dessus si vous avez besoin de services d'amorçage supplémentaires.