Comment créer et utiliser des modèles d'instance sur Google Cloud Platform
Les modèles d'instance vous permettent de prédéfinir une configuration de machine et une image pour démarrer automatiquement les clones de vos serveurs. Ils sont couramment utilisés avec la mise à l'échelle automatique pour faciliter les services de haute disponibilité.
Sommaire
Que sont les modèles d'instances?
La mise à l'échelle automatique peut sembler magique, mais en fin de compte, vous créez et détruisez toujours des serveurs plusieurs fois par jour, un exploit qui tuerait tout administrateur système s'il était chargé de le faire manuellement.
L'automatisation de votre travail peut sembler une tâche insurmontable, mais en réalité, vous ne faites que définir une configuration de démarrage et faire une copie des fichiers de votre serveur. Si vous souhaitez l’automatiser correctement, vous devrez soit écrire un script de démarrage pour installer les dépendances dont votre serveur a besoin, soit passer à l’exécution dans un conteneur, qui finit par être en grande partie le même type de configuration.
Les modèles d'instance de GCP prennent en charge ces deux méthodes. Vous pouvez créer un modèle d'instance pour déployer une image de conteneur dans un groupe d'instances à autoscaling ou géré, ou simplement créer une copie de votre serveur pour en déployer un autre. Dans les deux cas, les modèles d'instance vous permettent également de définir les types de serveurs que vous souhaitez déployer, soit un type d'instance spécifique, soit une quantité spécifique de mémoire et de processeurs virtuels.
Création de modèles d'instances
Vous disposez de deux options pour créer des modèles d'instance: soit à partir d'une image de conteneur, soit à partir d'une instance existante.
Si vous souhaitez déployer une image de conteneur, vous pouvez créer ce modèle à partir de l'onglet Modèles d'instance de la console Compute Engine. Sélectionnez les paramètres de la machine, tels que le nombre de processeurs virtuels et la quantité de mémoire.
Ensuite, sous les paramètres du conteneur, cochez «Oui» pour déployer une image de conteneur et entrez l'URL de l'image. Pour cela, vous pouvez utiliser le registre des conteneurs de Google ou utiliser un registre public tel que le hub Docker.
En plus de cela, vous avez quelques options pour définir la commande d'entrée, tous les paramètres ou variables d'environnement, ainsi que pour exécuter le conteneur en tant que privilégié, ce qui permet un accès root aux périphériques de stockage et réseau comme s'il s'exécutait directement sur l'hôte. Vous pouvez également configurer des montages de volume et ajouter des disques supplémentaires au conteneur.
Si vous souhaitez créer une copie d'une instance existante, vous pouvez le faire à partir du gcloud
ligne de commande. Vous aurez besoin de quelques options: le nom du modèle, le nom de l'instance source et le nom du disque que vous souhaitez copier.
gcloud compute instance-templates create (TEMPLATE NAME) --source-instance (SOURCE_INSTANCE) --configure-disk= device-name=(DISK NAME), instantiate-from=source-image, auto-delete=true
Bien entendu, vous devrez répéter ce processus chaque fois que vous souhaiterez apporter des mises à jour à votre groupe d'instances.
Ce n'est certainement pas la meilleure façon de gérer les mises à jour, et vous avez deux solutions à ce problème: ajoutez un script d'installation pour gérer les déploiements de mises à jour au démarrage, comme récupérer la dernière version de git ou déplacer vers des conteneurs. Toute tâche pouvant être mise à l'échelle automatiquement peut être mise en conteneur, et l'exécution dans Docker ne présente aucun impact sur les performances. Vous pouvez lire notre guide sur le déplacement de votre application vers Docker pour en savoir plus.
Utilisation de vos modèles dans un MIG
Les groupes d'instances gérés (MIG) sont des groupes d'instances qui prennent en charge la mise à l'échelle automatique et la réparation automatique, bien sûr, alimentés par des modèles d'instances. Vous pouvez sélectionner le modèle que vous souhaitez utiliser dans les paramètres lors de la création d'un groupe d'instances géré.
Si vous souhaitez simplement exécuter un ensemble d'instances derrière un équilibreur de charge, vous pouvez utiliser des groupes d'instances non gérés, qui n'ont pas besoin d'être configurés avec des modèles d'instances, mais vous obligent à administrer manuellement les serveurs.