Cette page s'adresse aux administrateurs de plates-formes.
Cette page explique comment gérer les clusters d'utilisateur à l'aide de Terraform.
Prerequisites
Vous devez disposer d'un compte ayant accès au cluster d'administrateur. Ce compte doit disposer des autorisations appropriées pour gérer les clusters d'utilisateur.
Ce compte nécessite un sous-ensemble de l'accès administrateur de la plate-forme, ainsi que de l'accès "liste" sur customresourcedefinitions
dans le groupe d'API apiextensions.k8s.io
. Vous utiliserez ce compte pour configurer le fournisseur Terraform de Kubernetes afin qu'il puisse gérer les ressources liées au cluster d'utilisateur. Le compte doit disposer des autorisations spécifiques suivantes :
- Accès complet aux espaces de noms pour les clusters d'utilisateur du cluster d'administrateur, par exemple,
cluster-user-cluster2
- Accès complet à
clusters
etnodepools
dansbaremetal.cluster.gke.io
- Accès complet à
bootstrapservicebindings
,configmanagementfeaturespecs
,configmanagementbindings
,servicemeshfeaturespecs
,servicemeshbindings
dansmanagementcenter.anthos.cloud.google.com
- Accès à
list
surcustomresourcedefinitions
dansapiextensions.k8s.io
- Si vous devez installer Anthos Config Management et Anthos Service Mesh, vous devez également avoir accès au secret dans les espaces de noms du cluster d'utilisateur, dans le cluster d'administrateur, afin de pouvoir obtenir les identifiants pour vous connecter au cluster d'utilisateur.
Télécharger des scripts Terraform
Téléchargez le fichier tarball des scripts Terraform à partir de l'onglet Assistance de Anthos Management Center Console. Extrayez les scripts du fichier.
tar xvf terraform-scripts.tar.gz
Lancer Terraform et configurer l'authentification
Il existe de nombreuses façons de configurer le fournisseur Terraform pour Kubernetes afin qu'il s'authentifie avec l'API du cluster d'administrateur. Choisissez celui qui correspond le mieux à votre cas d'utilisation documenté dans la section Configuration des fournisseurs. Si vous ne disposez pas des autorisations nécessaires dans le cluster d'administrateur, contactez votre opérateur d'infrastructure.
cd cluster
terraform init
Remplacez (# Authentification TODO) par l'une des méthodes d'authentification dans la Configuration du fournisseur.
Créer un cluster d'utilisateur
Spécifiez toutes les variables dans
cluster/terraform.tfvars
. Veillez à spécifierlogin_user_name
s'il ne possède pas de droits racine. Exemple :admin_cluster_endpoint = "https://10.200.0.100:443" cluster_name = "user-cluster2" control_plane_nodes = [ { "address" = "10.200.0.26" }, { "address" = "10.200.0.21" }, { "address" = "10.200.0.22" }, ] control_plane_vip = "10.200.0.110" nodepool_nodes = [ { "address" = "10.200.0.23" }, { "address" = "10.200.0.25" }, { "address" = "10.200.0.24" }, ] address_pools = [ { "addresses" = ["10.200.0.111-10.200.0.119"] "name" = "pool1" }, ] bootstrap_service = ["test-bootstrapservice", "test-bootstrapservice-2"] anthos_baremetal_version = "1.9.0"
Appliquer les modifications Une fois la commande exécutée, le cluster d'utilisateur est créé.
terraform apply
Détruire un cluster d'utilisateur
Utilisez la commande suivante pour détruire un cluster d'utilisateur :
terraform destroy
Un temps d'attente est défini pour contrôler la destruction des ressources. Vous pouvez l'ajuster en mettant à jour la variable wait_duration
. Le temps d'attente est dû à des fonctionnalités manquantes chez le fournisseur Kubernetes (consultez cette demande de fonctionnalité).
Lorsque la création d'un cluster d'utilisateur est en attente en raison de certains problèmes, n'utilisez pas terraform destroy
. Nettoyez plutôt l'installation manuellement :
Arrêtez la commande Terraform.
Supprimez le cluster d'utilisateur de la console du centre de gestion.
Supprimez le fichier
terraform.tfstate
:
Activer Anthos Config Management et Anthos Service Mesh
Pour activer Anthos Config Management et Anthos Service Mesh, procédez comme suit :
Démarrez Terraform pour le projet Terraform
features
.cd features terraform init
Configurez l'authentification sur le cluster d'administrateur.
Placez la clé privée du dépôt git dans
/etc/ssh-key/key
.Définissez
activate_acm
etactivate_asm
sur "true", et définissez toutes les variables associées. Exemple :cluster_name = "user-cluster2" admin_cluster_endpoint = "https://10.200.0.100:443" user_cluster_ca_certificate = "" activate_acm = true version_acm = "1.7.1" enable_acm_policy_controller = true acm_git_repo = { git_repo_url = "git@github.com:example/example.git" git_repo_branch = "main" git_policy_dir = "." git_secret_type = "ssh" } activate_asm = true version_asm = "1.9.6-asm.1"
Appliquer les modifications
terraform apply
(Facultatif) Ajustez le temps d'attente pour Anthos Service Mesh si nécessaire. Pour ce faire, mettez à jour la variable
wait_duration
.
Désactiver Anthos Config Management et Anthos Service Mesh
Avant de supprimer Anthos Config Management, nous vous recommandons de supprimer toutes les ressources synchronisées par Anthos Config Management du cluster.
Supprimez le secret git-creds
et config-management-system
de tfstate
. L'opérateur Anthos Config Management est chargé de supprimer les ressources du cluster d'utilisateur après la suppression de ConfigManagementBinding
et ConfigManagementFeatureSpec
.
Anthos Config Management n'apparaît pas immédiatement comme désinstallé dans le centre de gestion. La suppression de l'opérateur peut prendre entre 5 et 10 minutes.
terraform state rm kubernetes_namespace.config-management-system
terraform state rm kubernetes_secret.git-creds
terraform destroy
Problèmes connus
Actuellement, il n'est pas possible de mettre à jour un cluster. Lors du lancement d'une mise à jour, le fournisseur tente de supprimer les finaliseurs des ressources existantes en raison du problème 1378.
La commande de destruction sur le cluster d'utilisateur et Anthos Service Mesh repose sur un temps d'attente en raison du problème 1357. Vous devrez peut-être ajuster le temps d'attente en fonction de la taille de votre cluster.
Le cluster est présenté comme prêt à être utilisé dans Terraform plus rapidement que ce qui est affiché dans le centre de gestion (bloqué par la prise en charge des données de
kubernetes_manifest
par le fournisseur).La suppression d'Anthos Config Management à l'aide de
terraform destroy
nécessite d'abord de supprimer les ressources de tfstate. Consultez la section Désactiver Anthos Config Management et Anthos Service Mesh pour en savoir plus. Anthos Config Management n'apparaît pas immédiatement comme non installé dans le centre de gestion. La suppression de l'opérateur peut prendre entre 5 et 10 minutes.La commande
terraform destroy
supprime l'espace de noms du cluster d'utilisateur. Les administrateurs de plate-forme ne sont pas autorisés à supprimer des espaces de noms dans le cluster d'administrateur. Par conséquent, la commande peut échouer.
Limites
Le code actuel vous permet de créer un seul cluster d'utilisateur.
Le code actuel n'inclut pas la configuration d'OIDC. Cette partie nécessite des fonctionnalités de correctif sur le fournisseur Kubernetes sur la ressource kubernetes_manifest.