Esegui il deployment di un carico di lavoro Linux in un cluster di destinazione

Dopo aver eseguito la migrazione di un carico di lavoro dalla piattaforma di origine, puoi utilizzare gli elementi di deployment generati da questo processo per eseguire il deployment del contenitore del carico di lavoro sottoposto a migrazione in un altro cluster.

Skaffold può gestire il flusso di lavoro per la creazione, il push e il deployment dell'applicazione. Per saperne di più, consulta Creare ed eseguire il deployment di più immagini con Skaffold.

Prima di iniziare

Prima di eseguire il deployment del carico di lavoro, devi prima:

Esegui il deployment in un cluster di destinazione

Le sezioni seguenti descrivono le opzioni disponibili per eseguire il deployment del tuo workload su un cluster.

Esegui il deployment in un cluster di destinazione utilizzando GCR come registry Docker

Per assicurarti che un cluster di destinazione abbia accesso a Container Registry (GCR), Crea un secret Kubernetes contenente le credenziali necessarie per accedere a GCR:

  1. Crea un account di servizio per il deployment di una migrazione come descritto in Creazione di un account di servizio per accedere a Container Registry e Cloud Storage.

    Questa procedura ti consente di scaricare un file della chiave JSON denominato m4a-install.json.

  2. Crea un secret Kubernetes contenente le credenziali necessarie per accedere a GCR:

    kubectl create secret docker-registry gcr-json-key \
     --docker-server=gcr.io --docker-username=_json_key --docker-password="$(cat ~/m4a-install.json)" \
     --docker-email=account@project.iam.gserviceaccount.com

    dove:

    • docker-registry specifica il nome del secret di Kubernetes, gcr-json-key in questo esempio.
    • docker-server=gcr.io specifica GCR come server.
    • docker-username=_json_key specifica che il nome utente è contenuto nel file della chiave JSON.
    • docker-password specifica di utilizzare una password del file di chiavi JSON.
    • docker-email specifica l'indirizzo email dell'account di servizio.
  3. Imposta il secret di Kubernetes in uno dei seguenti modi:

    • Modifica del valore predefinito imagePullSecrets:

      kubectl patch serviceaccount default -p '{"imagePullSecrets": [{"name": "gcr-json-key"}]}'
    • Modifica del file deployment_spec.yaml per aggiungere il valore imagePullSecrets a la definizione di spec.template.spec:

      spec:
        containers:
        - image: gcr.io/PROJECT_ID/mycontainer-instance:v1.0.0
          name: mycontainer-instance
          ...
        volumes:
        - hostPath:
            path: /sys/fs/cgroup
            type: Directory
          name: cgroups
        imagePullSecrets:
        - name: gcr-json-key

Esegui il deployment su un cluster di destinazione utilizzando un Docker Registry con autenticazione di base

Se utilizzi un registry Docker per archiviare le immagini per la migrazione, il registry deve supportare l'autenticazione di base utilizzando un nome utente e una password. Poiché esistono molti modi per configurare una connessione di sola lettura a un registro Docker, occorre utilizzare il metodo appropriato per la piattaforma del cluster e il Docker Registry.

Applica il file YAML del deployment generato

Utilizza kubectl per applicare la specifica di deployment al cluster di destinazione, ad esempio un cluster di produzione.

kubectl

  1. Assicurati che il cluster di destinazione abbia accesso in lettura al registry delle immagini Docker.

  2. Esegui il deployment del contenitore:

    kubectl apply -f deployment_spec.yaml

Passaggi successivi