Mettre à jour un cluster

Ce document explique comment effectuer une mise à jour de cluster qui n'inclut pas de changement de version.

Une mise à jour de cluster consiste à modifier sa configuration.

Une mise à niveau de cluster est un cas particulier de mise à jour de cluster qui inclut une modification de la version du plan de contrôle ou d'une version de pool de nœuds. Pour en savoir plus sur la mise à niveau, consultez la page Mettre à niveau Google Distributed Cloud.

Examiner les règles de pare-feu

Dans les versions 1.29 et ultérieures, les vérifications préliminaires côté serveur sont activées par défaut. Les vérifications préliminaires côté serveur nécessitent des règles de pare-feu supplémentaires. Dans la section Règles de pare-feu pour les clusters d'administrateur, recherchez "Vérifications préaliminaires" et assurez-vous que toutes les règles de pare-feu requises sont configurées.

Avec les vérifications préliminaires côté serveur, lorsque vous mettez à jour un cluster d'utilisateur à l'aide de gkectl, les vérifications préliminaires sont exécutées sur le cluster d'administrateur au lieu d'être exécutées localement sur le poste de travail de l'administrateur. Des vérifications préliminaires côté serveur sont exécutées sur le cluster d'administration lorsque vous utilisez la Google Cloud console, la Google Cloud CLI ou Terraform pour mettre à jour un cluster.

Lorsque vous mettez à jour un cluster d'administration, Google Distributed Cloud déploie un cluster Kubernetes in Docker (kind) pour héberger temporairement les contrôleurs Kubernetes nécessaires à la mise à jour du cluster d'administration. Ce cluster temporaire est appelé cluster d'amorçage. Des vérifications préliminaires côté serveur sont exécutées sur le cluster d'amorçage lorsque vous mettez à jour un cluster d'administration.

Informations pouvant être modifiées

Certaines fonctionnalités et certains paramètres de cluster peuvent être mis à jour, mais d'autres ne le peuvent pas une fois le cluster créé. Pour savoir quelles fonctionnalités peuvent être mises à jour, consultez les pages de référence du fichier de configuration du cluster d'administrateur et du fichier de configuration du cluster d'utilisateur. Les champs pouvant être mis à jour sont marqués comme modifiables, et les champs qui ne peuvent pas être mis à jour sont marqués comme immuables.

Vous pouvez également voir quelles fonctionnalités et paramètres peuvent être mis à jour en exécutant des commandes gkectl.

Pour connaître les éléments pouvant être mis à jour dans un cluster d'administrateur:

gkectl update admin --help

Exemple de résultat :

Update the admin cluster. Only the following updates are supported and they can
only be updated one at a time:
- Enabling/Disabling Vsphere Resource Metrics
- Adding static IPs
- Updating vCenter CA certificate
- Registering Admin Cluster
- Enabling/Disabling Cloud Audit Logging
- Enabling/Disabling Stackdriver
- Enabling/Disabling Auto Repair
- Enabling/Disabling Auto Resize for Addon Nodes
- Enabling/Disabling GKE OnPrem API
- Updating OS Image Type
- Enabling/Disabling AntiAffinityGroups
- Update Secrets Encryption Configuration
- [Preview] Enabling/Disabling Cluster Backup
- [Preview] Update Cluster Backup configs

Pour connaître les éléments pouvant être mis à jour dans un cluster d'utilisateur:

gkectl update cluster --help

Exemple de résultat :

Update a GKE On-Prem cluster. Only the following updates are supported and they
can only be updated one at a time:
- Adding static IPs
- Updating node pool
- Updating user master cpu and memory
- Enabling/Disabling Vsphere Resource Metrics
- Enabling/Disabling vSphere CSI deployment
- Enabling/Disabling Auto Repair
- Enabling/Disabling Cloud Audit Logging
- Enabling/Disabling Stackdriver
- Enabling/Disabling GKE OnPrem API
- Registering User Cluster
- Updating vCenter CA certificate
- Updating MetalLB Address Pools
- Enabling/Disabling Auto Resizing on user master
- Updating NodePoolUpdatePolicy
- Enabling/Disabling AntiAffinityGroups
- [Preview] Enabling/Disabling Node Network Policy
- Updating Secrets Encryption
- Enabling/Disabling DataplaneV2 forwardMode

Mettre à jour un élément à la fois

Ne mettez à jour qu'une seule fonctionnalité ou un seul paramètre à la fois. Par exemple, supposons que vous souhaitiez mettre à jour le processeur et la mémoire maître, et que vous souhaitiez également désactiver la réparation automatique.

Vous devez ensuite effectuer deux mises à jour distinctes: une pour le processeur et la mémoire maître, et une autre pour la réparation automatique. Vérifiez que la première mise à jour a bien été effectuée avant d'effectuer la seconde.

Procédure de mise à jour

Vous pouvez utiliser gkectl, la console Google Cloud ou Google Cloud CLI pour mettre à jour un cluster d'utilisateur. Si vous avez créé le cluster d'utilisateur à l'aide de Terraform, vous pouvez l'utiliser pour le mettre à jour. Dans presque tous les cas, vous devez utiliser gkectl pour mettre à jour les clusters d'administrateur.

Si vous utilisez gkectl pour mettre à jour un cluster, assurez-vous que votre poste de travail administrateur dispose de la version nécessaire de gkectl. En règle générale, vous utilisez la même version de gkectl que la version du cluster que vous mettez à jour. Les règles de version suivantes sont appliquées lors de la mise à jour:

  • La version mineure gkectl ne peut pas être inférieure à celle du cluster. Par exemple, la mise à jour d'un cluster 1.30 à l'aide de gkectl version 1.29 n'est pas autorisée. Les versions de correctif n'ont pas d'importance. Par exemple, vous pouvez utiliser la version gkectl 1.29.0-gke.1456 pour mettre à jour un cluster avec une version de correctif supérieure, telle que 1.29.1000-gke.94.

  • La version mineure gkectl ne peut pas être supérieure de plus de deux versions mineures à la version du cluster. Par exemple, si vous mettez à jour un cluster de la version 1.28, la version de gkectl peut être 1.29 ou 1.30. Toutefois, vous ne pouvez pas utiliser la version 1.31 de gkectl, car elle est trois versions mineures plus récente que la version du cluster.

Si nécessaire, consultez Télécharger gkectl pour obtenir une version compatible de gkectl.

Les exemples suivants montrent comment mettre à jour des clusters.

gkectl

La commande gkectl update se présente sous l'une des formes suivantes:

Exemple de cluster d'administrateur (gkectl update admin)

Supposons que vous souhaitiez remplacer la valeur de gkeOnPremAPI.enabled par false dans un cluster d'administrateur.true Commencez par modifier le fichier de configuration du cluster d'administrateur et définissez la valeur sur true:

gkeOnPremAPI:
  enabled: true

Mettez ensuite à jour le cluster d'administrateur:

gkectl update admin --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config ADMIN_CLUSTER_CONFIG

Remplacez les éléments suivants :

  • ADMIN_CLUSTER_KUBECONFIG : chemin d'accès au fichier kubeconfig du cluster d'administrateur

  • ADMIN_CLUSTER_CONFIG : chemin d'accès au fichier de configuration du cluster d'administrateur

Exemple de cluster d'utilisateur (gkectl update cluster)

Supposons que vous souhaitiez remplacer la valeur de stackdriver.vSphereDisableResourceMetrics par false dans un cluster d'utilisateur.true Commencez par modifier le fichier de configuration du cluster d'utilisateur et définissez la valeur sur true:

stackdriver:
  disableVsphereResourceMetrics: true

Mettez ensuite à jour le cluster d'utilisateur:

gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG

Remplacez les éléments suivants :

  • ADMIN_CLUSTER_KUBECONFIG : chemin d'accès au fichier kubeconfig du cluster d'administrateur

  • USER_CLUSTER_CONFIG : chemin d'accès au fichier de configuration du cluster d'utilisateur

Exemple de cluster d'utilisateur (gkectl update credentials)

Supposons que vous souhaitiez modifier les identifiants utilisés par un cluster d'utilisateur pour appeler vCenter Server.

Le fichier de configuration du cluster d'utilisateur comporte un champ vCenter.credentials.fileRef.path qui pointe vers un fichier de configuration des identifiants. Dans le fichier de configuration des identifiants, mettez à jour les valeurs de username et password. Exemple :

items:
- name: "vcenter-creds"
  username: "new-vcenter-account"
  password: "U$icUKEW#INE"

Mettez ensuite à jour les identifiants:

gkectl update credentials vsphere \
    --config USER_CLUSTER_CONFIG \
    --kubeconfig ADMIN_CLUSTER_KUBECONFIG

Remplacez les éléments suivants :

  • USER_CLUSTER_CONFIG : chemin d'accès au fichier de configuration du cluster d'utilisateur

  • ADMIN_CLUSTER_KUBECONFIG : chemin d'accès au fichier kubeconfig du cluster d'administrateur

Console

  1. Dans la console, accédez à la page Vue d'ensemble des clusters Google Kubernetes Engine.

    Accéder aux clusters GKE

  2. Sélectionnez le Google Cloud projet, puis le cluster que vous souhaitez mettre à jour.

  3. Dans le panneau Détails, cliquez sur Plus de détails.

  4. Les champs pouvant être modifiés dans la console Google Cloud sont associés à une icône en forme de crayon. Cliquez sur l'une des icônes en forme de crayon. Dans la boîte de dialogue qui s'affiche, modifiez les valeurs des champs comme vous le souhaitez, puis cliquez sur OK.

  5. En haut de la page, dans la barre de progression, cliquez sur Afficher les détails. Attendez que la mise à jour soit terminée.

CLI gcloud

Exécutez la commande de mise à jour applicable. Spécifiez uniquement les indicateurs de la configuration que vous souhaitez modifier:

Mettre à jour les utilisateurs administrateur d'un cluster d'utilisateur

Le serveur d'API Kubernetes de chaque cluster doit pouvoir autoriser les requêtes qu'il reçoit. Pour configurer l'autorisation, vous devez configurer des stratégies de contrôle des accès basé sur les rôles (RBAC) Kubernetes sur chaque cluster. Un utilisateur administrateur est un utilisateur auquel le rôle cluster-admin a été attribué dans le cluster d'utilisateur. Ce rôle accorde à l'utilisateur un accès administrateur complet au cluster.

Supposons qu'Alice et Bob soient les seuls utilisateurs administrateurs du cluster d'utilisateur appelé cluster-1 dans la région us-west1. Supposons qu'Alice souhaite ajouter Trent en tant qu'utilisateur administrateur supplémentaire. Alice peut exécuter la commande suivante:

gcloud container vmware clusters update cluster-1 \
    --project example-project-id-12345 \
    --location us-west1 \
    --admin-users alice@example.com \
    --admin-users bob@example.com \
    --admin-users trent@example.com

La commande précédente conserve Alice et Bob dans la liste des utilisateurs administrateurs et ajoute Trent à la liste des utilisateurs administrateurs. Notez qu'Alice et Bob doivent être listés dans la commande, car elle écrase la liste actuelle des utilisateurs administrateurs par la liste spécifiée dans la commande. Notez également que chaque indicateur --admin-users ne spécifie qu'un seul utilisateur. Vous ne pouvez pas spécifier plusieurs utilisateurs dans un même indicateur.

Terraform

  1. Modifiez les valeurs des champs applicables dans le fichier de configuration Terraform que vous avez utilisé pour créer le cluster ou le pool de nœuds. Pour obtenir une description détaillée des champs, consultez la documentation de référence Terraform:

  2. Mettez à jour la configuration en exécutant terraform apply.

Mettre à jour les utilisateurs administrateur d'un cluster d'utilisateur

Le serveur d'API Kubernetes de chaque cluster doit pouvoir autoriser les requêtes qu'il reçoit. Pour configurer l'autorisation, vous devez configurer des stratégies de contrôle des accès basé sur les rôles (RBAC) Kubernetes sur chaque cluster. Un utilisateur administrateur est un utilisateur auquel le rôle cluster-admin a été attribué dans le cluster d'utilisateur. Ce rôle accorde à l'utilisateur un accès administrateur complet au cluster.

Supposons qu'Alice et Bob soient les seuls utilisateurs administrateurs d'un cluster d'utilisateur particulier. Supposons qu'Alice souhaite ajouter Trent en tant qu'utilisateur administrateur supplémentaire. Alice peut ajuster la configuration Terraform comme suit, puis exécuter terraform apply:

authorization {
  admin_users {
    username = "alice@example.com"
    username = "bob@example.com"
    username = "trent@example.com"
  }
}

L'ajustement précédent conserve Alice et Bob dans la liste des utilisateurs administrateurs et ajoute Trent à la liste des utilisateurs administrateurs. Notez qu'Alice et Bob doivent être listés dans la nouvelle configuration, car la commande terraform apply écrase la liste actuelle des utilisateurs administrateurs par la liste spécifiée dans la configuration.

En savoir plus

Les documents listés dans cette section fournissent des informations supplémentaires sur la mise à jour des clusters.

Mettre à jour le cluster/l'administrateur

Les documents suivants expliquent comment utiliser gkectl update admin et gkectl update cluster pour mettre à jour les fonctionnalités et les paramètres:

Mettre à jour des identifiants

Les documents suivants fournissent des informations sur l'utilisation de gkectl update credentials pour mettre à jour les clés et les certificats:

Étape suivante

Mettre à niveau un cluster