Registrazione delle risorse

Registrazione macchine inventario

Affinché l'amministratore di piattaforma crei un cluster utente, Anthos richiede un pool di macchine inattive. In questa sezione registrerai le macchine dell'inventario nel cluster di amministrazione Anthos in modo che l'amministratore della piattaforma le utilizzi in un secondo momento per creare un cluster utente. Queste macchine devono soddisfare gli stessi requisiti dei nodi del cluster di amministrazione.

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

Esempio:

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>

Le labels sono coppie chiave-valore in formato libero collegate alla risorsa. e potranno essere utilizzate successivamente nel Centro di gestione per filtrare le macchine. Ad esempio, puoi utilizzare le etichette per identificare la posizione del rack, le configurazioni hardware speciali e così via.

[Facoltativo] Utilizzo di chiavi SSH diverse per le macchine dell'inventario

Per impostazione predefinita, la modalità privata di Anthos utilizza il ssh-key fornito da sshPrivateKeyPath (utilizzato per accedere alle macchine per il cluster di amministrazione) per accedere a queste macchine dell'inventario. Per consentire un migliore isolamento tra le macchine a cluster di amministrazione e le macchine dell'inventario (utilizzate per i cluster utente), puoi utilizzare una chiave SSH diversa per le macchine dell'inventario. Dovresti crearli prima dei cluster utente per cui ti servono.

  1. Distribuisci la chiave pubblica SSH a tutte le macchine dell'inventario.

  2. Archivia la chiave privata SSH come secret nel cluster di amministrazione, ad esempio 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. Quando crei i cluster utente, specifica il secret creato nel passaggio 1 (ovvero user-cluster-ssh-key) nello spazio dei nomi anthos-creds.

    Questa operazione è supportata solo durante la creazione dei cluster tramite API. Aggiungi la chiave SSH nella definizione del cluster all'interno del file yaml del cluster utente come sshKeySecret e specifica imagePullSecret, ad esempio:

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

Registra pool di indirizzi VIP

Affinché l'amministratore della piattaforma crei un cluster utente diverso da InventoryMachines, Anthos richiede un pool di tutti gli IP virtuali disponibili. Viene utilizzato dall'interfaccia utente del Centro di gestione per indicare all'amministratore della piattaforma quali IP virtuali sono disponibili e per convalidare la disponibilità di VIP durante la creazione del cluster utente.

In questa sezione registrerai un pool di indirizzi al cluster di amministrazione Anthos da utilizzare in seguito per creare i cluster utente. Devi creare un solo pool di indirizzi utilizzando il nome anthos-addresspool-default. A ogni cluster utente verrà imposto l'utilizzo dei VIP da questo pool di indirizzi e non sarà possibile riutilizzare lo stesso intervallo di VIP. Gli IP virtuali devono soddisfare gli stessi requisiti dei VIP utilizzati per il cluster di amministrazione e non devono sovrapporsi agli IP dei nodi. Il campo della descrizione consente di aggiungere ulteriori istruzioni nell'interfaccia utente.

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

Esempio:

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>

Registrazione del servizio di bootstrap

Il servizio di bootstrap è un meccanismo utilizzato per preinstallare risorse aggiuntive come servizi di archiviazione e driver GPU nei cluster utente dopo che sono stati creati per renderli immediatamente disponibili per l'uso. Devi creare servizi di bootstrap prima dei cluster utente in cui intendi utilizzarli.

  1. Utilizzo

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

    per creare la configmap che contiene tutti i manifest necessari per eseguire il bootstrap del servizio

  2. Crea l'oggetto Bootstrap Service che fa riferimento alla configurazione

    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. Ripeti i passaggi precedenti se sono necessari altri servizi di bootstrap.