Provisionnez et gérez vos clusters ACK sous forme de code avec Terraform pour bénéficier d'une infrastructure reproductible et versionnée.
Concepts clés
Ressources et sources de données
Terraform s'appuie sur deux types d'objets pour gérer l'infrastructure cloud :
Ressources — objets que Terraform crée et gère. Chaque bloc de ressource définit un élément d'infrastructure, tel qu'un cluster ACK ou un pool de nœuds.
Sources de données — requêtes en lecture seule qui récupèrent les attributs de ressources créées en dehors de la configuration actuelle.
Exemple :
### Data sources
# List instance types with 2 vCPUs and 4 GB of memory.
# Reference: https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/data-sources/instance_types
data "alicloud_instance_types" "c2g4" {
cpu_core_count = 2
memory_size = 4
}
### Resources
# Create a Server Load Balancer (SLB) instance.
# Reference: https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/instance
resource "alicloud_slb" "default" {
name = var.name
specification = "slb.s2.small"
vswitch_id = alicloud_vswitch.default.id
}
Consultez la section Utilisation d'ACK avec Terraform pour obtenir la liste complète.
Plug-ins
Terraform propose deux catégories de plug-ins :
Terraform CLI — outil en ligne de commande permettant de planifier, d'appliquer et de détruire des configurations.
Fournisseurs Terraform — plug-ins qui traduisent la configuration Terraform en appels API pour un cloud spécifique, publiés sur le Registre Terraform.
Alibaba Cloud est le premier fournisseur de cloud en Chine à avoir intégré Terraform. Le fournisseur Alibaba Cloud (terraform-provider-alicloud) prend en charge 163 ressources et 113 sources de données réparties sur 35 services, notamment le calcul, le stockage, la mise en réseau, l'équilibrage de charge, le CDN, les intergiciels, le contrôle d'accès et les bases de données.
Pour configurer le fournisseur Alibaba Cloud, consultez les rubriques Installation et configuration de Terraform sur votre PC local ou Utilisation de Terraform dans Cloud Shell.
Pourquoi utiliser Terraform pour ACK
Terraform offre plusieurs avantages par rapport à la gestion directe des clusters ACK via la console, la CLI ou l'API.
Déploiements multiclouds — gérez l'infrastructure sur Alibaba Cloud, d'autres clouds et des centres de données sur site avec une seule chaîne d'outils et un seul langage de configuration.
Provisionnement automatisé et reproductible — définissez la configuration du cluster une seule fois et appliquez-la de manière cohérente dans les environnements de développement, de préproduction et de production, ce qui élimine la dérive de configuration.
Infrastructure as Code — stockez la configuration du cluster dans un système de contrôle de version aux côtés du code applicatif. Suivez les modifications, examinez-les lors des demandes de fusion (pull requests) et effectuez des restaurations si nécessaire.
Réduction des coûts — créez des environnements de développement et de test à la demande et supprimez-les lorsqu'ils sont inactifs. Évaluez l'impact financier avant d'appliquer les modifications.
Utilisation d'ACK avec Terraform
ACK prend en charge les ressources et sources de données Terraform suivantes.
Ressources
| Ressource | Description |
|---|---|
| alicloud_cs_managed_kubernetes | Gère les clusters ACK managés |
| alicloud_cs_kubernetes | Gère les clusters ACK dédiés |
| alicloud_cs_serverless_kubernetes | Gère les clusters ACK Serverless |
| alicloud_cs_edge_kubernetes | Gère les clusters ACK Edge |
| alicloud_cs_kubernetes_node_pool | Gère les pools de nœuds |
| alicloud_cs_kubernetes_permissions | Gère les autorisations RBAC (Role-Based Access Control) |
| alicloud_cs_kubernetes_addon | Gère les modules complémentaires du cluster |
Sources de données
| Source de données | Description |
|---|---|
| alicloud_ack_service | Active ACK |
| alicloud_cs_managed_kubernetes_clusters | Répertorie tous les clusters ACK managés |
| alicloud_cs_kubernetes_clusters | Répertorie tous les clusters ACK dédiés |
| alicloud_cs_serverless_kubernetes_clusters | Répertorie tous les clusters ACK Serverless |
| alicloud_cs_edge_kubernetes_clusters | Répertorie tous les clusters ACK Edge |
| alicloud_cs_kubernetes_permissions | Répertorie les autorisations pour les utilisateurs RAM (Resource Access Management) spécifiés |
| alicloud_cs_kubernetes_addon_metadata | Répertorie les métadonnées des modules complémentaires du cluster |
| alicloud_cs_kubernetes_addons | Répertorie les modules complémentaires disponibles pour le cluster |
| alicloud_cs_kubernetes_version | Répertorie les versions Kubernetes disponibles |
Conservez l'infrastructure du cluster (VPC, pools de nœuds, RBAC) dans un projet Terraform distinct des charges de travail Kubernetes (Deployments, Services). Ces éléments ont des cycles de modification différents et sont généralement gérés par des équipes distinctes.