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é.
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 faire 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 avez 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 dans le 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. Vous pouvez utiliser Registre des conteneurs de Google pour cela, ou utilisez un registre public comme 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 = nom-du-périphérique = (NOM DU DISQUE), instancier-from = image-source, auto-delete = vrai
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 passer aux 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
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ées par des modèles d'instance. 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.