Déployer une charge de travail Linux vers un cluster cible
Après avoir migré une charge de travail depuis votre plate-forme source, vous pouvez utiliser des artefacts de déploiement générés par ce processus pour déployer le conteneur de la charge de travail migrée vers un autre cluster.
Skaffold peut gérer le workflow de création, de transfert et de déploiement de votre application. Pour en savoir plus, consultez la page Créer et déployer plusieurs images à l'aide de Skaffold.
Avant de commencer
Pour déployer votre charge de travail, vous devez d'abord effectuer les opérations suivantes :
- Migrer la charge de travail à l'aide des outils Migrate to Containers
- Examiner les fichiers de déploiement générés
Déployer sur un cluster cible
Les sections suivantes décrivent les options disponibles pour déployer votre charge de travail sur un cluster.
Déployer sur un cluster cible en utilisant GCR comme registre Docker
Pour vous assurer qu'un cluster cible a accès à Container Registry, créez un secret Kubernetes contenant les identifiants requis pour accéder à GCR :
Créez un compte de service pour déployer une migration, comme décrit dans la section Créer un compte de service pour accéder à Container Registry et à Cloud Storage.
Ce processus vous permet de télécharger un fichier de clé JSON nommé
m4a-install.json
.Créez un secret Kubernetes contenant les identifiants requis pour accéder à 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
où :
docker-registry
spécifie le nom du secret Kubernetes, gcr-json-key dans cet exemple.docker-server=gcr.io
spécifie GCR comme serveur.docker-username=_json_key
indique que le nom d'utilisateur est contenu dans le fichier de clé JSON.docker-password
indique d'utiliser un mot de passe du fichier de clé JSON.docker-email
spécifie l'adresse e-mail du compte de service.
Définissez le secret Kubernetes de l'une des manières suivantes :
Modifiez la valeur
imagePullSecrets
par défaut :kubectl patch serviceaccount default -p '{"imagePullSecrets": [{"name": "gcr-json-key"}]}'
Modifiez le fichier
deployment_spec.yaml
pour ajouter la valeurimagePullSecrets
à la définitionspec.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
Déployer sur un cluster cible en utilisant un registre Docker avec une authentification de base
Si vous utilisez un registre Docker pour stocker des images de migration, celui-ci doit être compatible avec l'authentification de base à l'aide d'un nom d'utilisateur et d'un mot de passe. Dans la mesure où il existe de nombreuses manières de configurer une connexion en lecture seule à un registre Docker, vous devez utiliser la méthode appropriée pour votre plate-forme de cluster et votre registre Docker.
Appliquer le fichier YAML de déploiement généré
Utilisez kubectl
pour appliquer les spécifications de déploiement à votre cluster cible, tel qu'un cluster de production.
kubectl
Assurez-vous que le cluster cible dispose d'un accès en lecture au registre d'images Docker.
Déployez le conteneur :
kubectl apply -f deployment_spec.yaml
Étape suivante
- Découvrez comment effectuer les mises à jour des images post-migration.