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 artefatti di deployment generati da quel processo per il deployment del carico di lavoro di cui è stata eseguita la migrazione container in un altro cluster.

La cabina Skaffold gestisce il flusso di lavoro per la creazione, il push e il deployment della tua 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 avere:

Esegui il deployment dei carichi di lavoro sul cluster di elaborazione

Puoi eseguire il deployment del carico di lavoro migrato nello stesso cluster che hai utilizzato per eseguire la migrazione. chiamato cluster di elaborazione Migrate to Containers. Nella maggior parte delle situazioni Non devi eseguire alcuna configurazione aggiuntiva sul cluster di elaborazione perché il cluster richiede già l'accesso in lettura/scrittura al Docker Registry per eseguire una migrazione.

Esegui il deployment su un cluster di destinazione utilizzando GCR come registro Docker

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

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

    In questo processo devi scaricare un file chiave JSON denominato m4a-install.json.

  2. Crea un secret Kubernetes che contiene 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 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 di 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, come mostrato di seguito:

      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 Docker Registry per l'archiviazione delle immagini di migrazione, deve supportare l'autenticazione di base mediante nome utente e 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

Usa kubectl per applicare le specifiche 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 registro delle immagini Docker come descritto sopra in Assicurarsi che il cluster di destinazione abbia accesso in lettura al registro di immagini Docker.

  2. Esegui il deployment del container:

    kubectl apply -f deployment_spec.yaml
  3. Dopo aver completato il test di convalida sul carico di lavoro di cui è stata eseguita la migrazione per assicurarti che il carico di lavoro migrato funzioni correttamente, devi eliminare la migrazione per liberare risorse. Per ulteriori informazioni, consulta l'articolo sull'eliminazione di una migrazione.

Eliminare una migrazione

Dopo aver convalidato e testato il carico di lavoro di cui è stata eseguita la migrazione per verificare che funzioni devi eliminare la migrazione. L'eliminazione della migrazione libera utilizzate dalla migrazione.

migctl

  1. Elimina una migrazione completata utilizzando il seguente comando:

    migctl migration delete MIGRATION_NAME

    Dove MIGRATION_NAME è il nome della migrazione.

Passaggi successivi