Configurare un Container Registry privato

Questa pagina spiega come configurare un server di registry dei container esistente per Google Distributed Cloud (solo software) per VMware.

Questa pagina è rivolta ad amministratori, architetti e operatori che configurano, monitorano e gestiscono l'infrastruttura tecnica. Per scoprire di più sui ruoli comuni e sulle attività di esempio a cui facciamo riferimento nei contenuti, consulta Ruoli e attività comuni degli utenti di GKE Enterprise. Google Cloud

Panoramica

Per impostazione predefinita, durante la creazione o l'upgrade del cluster, Google Distributed Cloud estrae le immagini di sistema da gcr.io/gke-on-prem-release utilizzando l'account di servizio di accesso ai componenti. Se vuoi, puoi fornire il tuo server del registry dei container in modo che le immagini di sistema vengano estratte dal tuo server del registry privato.

Google Distributed Cloud non supporta i registry dei container non sicuri. Quando avvii il server del registry dei container, devi fornire un certificato e una chiave. Il certificato può essere firmato da un'autorità di certificazione (CA) pubblica o autofirmato.

Crea un server del registry dei container

Per scoprire come creare un server di registry dei container, consulta Eseguire un registry accessibile dall'esterno nella documentazione di Docker.

Configurare il registry

Per utilizzare un registry dei contenitori privato, compila la sezione privateRegistry nel file di configurazione del cluster di amministrazione prima di creare il cluster. Quando questa sezione è compilata:

  • Quando esegui il comando gkectl prepare prima della creazione o dell'upgrade del cluster, il comando estrae le immagini dal file tar specificato nel campo bundlePath nel file di configurazione del cluster di amministrazione e le invia al tuo server di registry privato.

  • Durante la creazione o l'upgrade del cluster, le immagini di sistema vengono estratte dal server del registry privato.

Limitazioni dei cluster avanzati e del pacchetto completo

Sono disponibili due pacchetti Google Distributed Cloud: completo e standard. Per determinare quale bundle è presente sulla workstation di amministrazione, controlla il campo bundlePath nel file di configurazione del cluster di amministrazione. Se il nome del file termina con -full, il bundle completo si trova sulla tua workstation di amministrazione. Se il nome del file non termina con -full, il bundle normale si trova sulla tua workstation di amministrazione.

Se hai creato la workstation di amministrazione utilizzando il comando gkeadm, il comando crea la VM della workstation di amministrazione con il bundle completo e configura il campo bundlePath nel file di configurazione del cluster di amministrazione.

Se il cluster avanzato è abilitato, ci sono limitazioni nell'utilizzo del pacchetto completo con un registry privato, come segue:

  • Versione 1.31: il bundle completo non è supportato con un registry privato. Per utilizzare un registry privato su un cluster avanzato:

    1. Scarica il bundle di dimensioni standard sulla tua workstation di amministrazione.
    2. Aggiorna il nome del file nel campo bundlePath del file di configurazione del cluster di amministrazione.
  • Versione 1.32: l'utilizzo del bundle completo è supportato, ma il comando gkectl prepare recupera le immagini da gcr.io/gke-on-prem-release anziché dal file tar. Tuttavia, il comando esegue il push delle immagini nel tuo registro privato in modo che le immagini di sistema vengano estratte dal tuo registro privato durante la creazione o l'upgrade del cluster.

Verificare che le immagini vengano estratte dal server del registry

La modalità di verifica dell'estrazione delle immagini dal server del registry dipende dall'attivazione o meno del cluster avanzato.

  • Se il cluster avanzato non è abilitato, esegui il seguente comando:

    kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG get pods \
        --all-namespaces -o jsonpath="{.items[*].spec['initContainers', 'containers'][*].image}"
    

    Sostituisci ADMIN_CLUSTER_KUBECONFIG con il percorso del file kubeconfig per il tuo cluster di amministrazione.

    L'output di questo comando mostra tutte le immagini del cluster. Puoi verificare che tutte le immagini di Google Distributed Cloud provengano dal tuo server di registry.

  • Se il cluster avanzato è abilitato, svolgi i seguenti passaggi:

    Puoi determinare se containerd estrae le immagini dal tuo registry locale esaminando i contenuti di un file denominato config.toml, come mostrato nei passaggi che seguono:

    1. Accedi a un nodo ed esamina i contenuti del file/etc/containerd/config.toml.
    2. Controlla il campo plugins."io.containerd.grpc.v1.cri".registry.mirrors del config.toml file per verificare se il tuo server di registry è elencato nel endpoint campo.

      Di seguito è riportato un estratto di un file config.toml di esempio.

      version = 2
      root = "/var/lib/containerd"
      state = "/run/containerd"
      ...
      [plugins."io.containerd.grpc.v1.cri".registry]
      [plugins."io.containerd.grpc.v1.cri".registry.configs]
      [plugins."io.containerd.grpc.v1.cri".registry.configs."gcr.io"]
      [plugins."io.containerd.grpc.v1.cri".registry.configs."privateregistry2.io".tls]
      ca_file = '/etc/containerd/certs.d/privateregistry2.io/ca.crt'
      [plugins."io.containerd.grpc.v1.cri".registry.mirrors]
      [plugins."io.containerd.grpc.v1.cri".registry.mirrors."gcr.io"]
      endpoint = ["http://privateregistry.io", "http://privateregistry2.io"]
      ...
      
    3. Se il mirror del registry viene visualizzato nel campo endpoint, il nodo sta recuperando le immagini dal mirror del registry anziché da Artifact Registry.