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 artefatti di deployment generati da questo processo per eseguire il deployment del container dei carichi di lavoro di cui è stata eseguita la migrazione in un altro cluster.
Skaffold Cab gestisce il flusso di lavoro per la creazione, il push e il deployment della tua applicazione. Per ulteriori informazioni, vedi Creare ed eseguire il deployment di più immagini con Skaffold.
Prima di iniziare
Prima di eseguire il deployment del carico di lavoro, devi avere:
- È stata eseguita la migrazione del carico di lavoro utilizzando gli strumenti Migrate to Containers.
- Esaminato la procedura di generazione dei file di deployment.
Se esegui il container di sistema legacy, devi installare il supporto del runtime legacy con
migctl
sul tuo cluster:migctl setup install --runtime
Esegui il deployment dei carichi di lavoro sul cluster di elaborazione
Puoi eseguire il deployment del carico di lavoro di cui è stata eseguita la migrazione sullo stesso cluster utilizzato per eseguire la migrazione, definito cluster di elaborazione Migrate to Containers. Nella maggior parte dei casi, non è necessario eseguire alcuna configurazione aggiuntiva sul cluster di elaborazione perché il cluster richiede già l'accesso in lettura/scrittura al registro Docker 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:
Crea un account di servizio per eseguire il deployment di una migrazione come descritto in Creazione di un account di servizio per l'accesso a Container Registry e Cloud Storage.
Con questa procedura hai scaricato un file di chiave JSON denominato
m4a-install.json
.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
consente di specificare di utilizzare una password contenuta nel file di chiavi JSON.docker-email
specifica l'indirizzo email dell'account di servizio.
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 valoreimagePullSecrets
alla definizione dispec.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 registro Docker con autenticazione di base
Se utilizzi un registro Docker per archiviare le immagini di migrazione, il registro 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, devi utilizzare il metodo appropriato per la piattaforma del cluster e il registro Docker.
Applica il file YAML di deployment generato
Usa kubectl
per applicare la specifica di deployment al cluster di destinazione, ad esempio un cluster di produzione.
kubectl
Assicurati che il cluster di destinazione abbia accesso in lettura al registro di immagini Docker come descritto sopra nella sezione Assicurati che il cluster di destinazione abbia accesso in lettura al registro di immagini Docker.
Esegui il deployment del container:
kubectl apply -f deployment_spec.yaml
Dopo aver completato i test di convalida sul carico di lavoro di cui è stata eseguita la migrazione, per assicurarti che funzioni correttamente, devi eliminare la migrazione per liberare risorse. Per ulteriori informazioni, vedi Eliminazione di una migrazione.
Eliminare una migrazione
Dopo aver convalidato e testato il carico di lavoro di cui è stata eseguita la migrazione per assicurarti che funzioni correttamente, devi eliminare la migrazione. L'eliminazione della migrazione libera tutte le risorse utilizzate dalla migrazione.
migctl
Elimina una migrazione completata utilizzando il seguente comando:
migctl migration delete MIGRATION_NAME
Dove MIGRATION_NAME è il nome della migrazione.
Console
Apri la pagina Migrate to Containers nella console Google Cloud.
Fai clic sulla scheda Migrazioni per visualizzare una tabella contenente le migrazioni disponibili.
Per l'eliminazione della migrazione, fai clic sull'icona del cestino,
, sul lato destro della tabella, quindi seleziona Elimina migrazione.