Mettre à jour les clusters d'utilisateur

Cet article explique comment mettre à jour la configuration d'un cluster d'utilisateur existant.

Présentation

Pour les clusters d'utilisateur exécutant Kubernetes 1.20 ou version ultérieure, vous pouvez modifier les attributs suivants :

Avec Kubernetes 1.22 et versions ultérieures, vous pouvez mettre à jour les types d'instances EC2.

Pour mettre à jour ces ressources, vous modifiez les ressources AWSCluster et AWSNodePool.

Une fois la configuration mise à jour, les clusters Anthos sur AWS placent le cluster ou le pool de nœuds sur l'état Updating. Une fois la mise à jour terminée, le cluster ou le pool de nœuds est renvoyé à l'état Provisioned.

Avant de commencer

Pour modifier vos clusters d'utilisateur, le cluster et le pool de nœuds doivent exécuter Kubernetes version 1.20 ou ultérieure. Si votre cluster n'exécute pas Kubernetes 1.20, commencez par mettre à niveau votre cluster d'utilisateur.

Pour modifier les groupes de sécurité de votre cluster, le rôle IAM AWS (défini sur spec.authentication.awsIAM.adminIdentityARNs dans anthos-gke.yaml) qui gère vos clusters Anthos sur les clusters d'utilisateurs AWS doit disposer de l'autorisation ec2:ModifyNetworkInterfaceAttribute.

Mettre à jour les groupes de sécurité

Dans cette section, vous allez mettre à jour les groupes de sécurité d'un cluster et d'un pool de nœuds. Pour mettre à jour les groupes de sécurité, procédez comme suit :

  1. À partir de votre répertoire anthos-aws, utilisez anthos-gke pour basculer vers le contexte de votre service de gestion.

    cd anthos-aws
    anthos-gke aws management get-credentials

  2. Dans un éditeur de texte, ouvrez le fichier YAML dans lequel vous avez créé votre AWSCluster. Si vous ne disposez pas de votre fichier YAML initial, vous pouvez utiliser kubectl edit.

    Modifier le fichier YAML

    Si vous avez suivi les instructions de la section Créer un cluster d'utilisateur, votre fichier YAML s'appelle cluster-0.yaml. Ouvrez ce fichier dans un éditeur de texte.

    Utiliser kubectl edit

    Pour modifier votre AWSCluster à l'aide de kubectl edit, exécutez la commande suivante :

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl edit awscluster cluster-name
    

    Remplacez cluster-name par votre AWSCluster. Par exemple, pour modifier le cluster par défaut, cluster-0, exécutez la commande suivante :

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl edit awscluster cluster-0
    
  3. Modifiez le champ spec.controlPlane.securityGroupIDs de votre cluster AWSCluster.

    apiVersion: multicloud.cluster.gke.io/v1
    kind: AWSCluster
    ...
    spec:
      controlPlane:
        securityGroupIDs:
          - SECURITY_GROUP_ID
        ...
    

    Remplacez SECURITY_GROUP_ID par l'ID du nouveau groupe de sécurité. Pour ajouter plusieurs groupes de sécurité, ajoutez des valeurs au tableau sous spec.controlPlane.securityGroupIDs.

    L'exemple suivant inclut les groupes de sécurité sg-12345678ab et sg-abcdef1234 :

    apiVersion: multicloud.cluster.gke.io/v1
    kind: AWSCluster
    spec:
      controlPlane:
        securityGroupIDs:
          - sg-12345678ab
          - sg-abcdef1234
        ...
    
  4. Modifiez le champ spec.securityGroupIDs de vos ressources AWSNodePool.

    apiVersion: multicloud.cluster.gke.io/v1
    kind: AWSNodePool
    spec:
      securityGroupIDs:
        - SECURITY_GROUP_ID
      ...
    
  5. Enregistrez le fichier. Si vous utilisez kubectl edit, kubectl applique automatiquement les modifications. Si vous modifiez le fichier YAML, appliquez-le à votre service de gestion à l'aide de la commande suivante :

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl apply -f cluster-0.yaml
    
  6. Vérifiez l'état de la mise à jour avec kubectl. Une fois la mise à jour terminée, l'état de l'objet passe de Updating à Provisioned.

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl get AWSClusters,AWSNodePools
    

    Par exemple, lorsque le cluster est en cours de mise à jour, le résultat ressemble à ce qui suit :

    NAME        STATE       AGE      VERSION           ENDPOINT
    cluster-0   Updating    10m41s   1.25.5-gke.2100   gke-xyz.elb.us-east-1.amazonaws.com
    
    NAME               CLUSTER     STATE       AGE       VERSION
    cluster-0-pool-0   cluster-0   Updating    10m40s    1.25.5-gke.2100
    

Mettre à jour les types d'instances

Dans cette section, vous allez mettre à jour les types d'instances d'un cluster et d'un pool de nœuds. Pour mettre à jour les types d'instances, procédez comme suit :

  1. À partir de votre répertoire anthos-aws, utilisez anthos-gke pour basculer vers le contexte de votre service de gestion.

    cd anthos-aws
    anthos-gke aws management get-credentials

  2. Dans un éditeur de texte, ouvrez le fichier YAML dans lequel vous avez créé votre AWSCluster. Si vous ne disposez pas de votre fichier YAML initial, vous pouvez utiliser kubectl edit.

    Modifier le fichier YAML

    Si vous avez suivi les instructions de la section Créer un cluster d'utilisateur, votre fichier YAML s'appelle cluster-0.yaml. Ouvrez ce fichier dans un éditeur de texte.

    Utiliser kubectl edit

    Pour modifier votre AWSCluster à l'aide de kubectl edit, exécutez la commande suivante :

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl edit awscluster cluster-name
    

    Remplacez cluster-name par votre AWSCluster. Par exemple, pour modifier le cluster par défaut, cluster-0, exécutez la commande suivante :

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl edit awscluster cluster-0
    
  3. Modifiez le champ spec.controlPlane.instanceType de votre cluster AWSCluster.

    apiVersion: multicloud.cluster.gke.io/v1
    kind: AWSCluster
    ...
    spec:
      controlPlane:
        instanceType: AWS_INSTANCE_TYPE
        ...
    

    Remplacez AWS_INSTANCE_TYPE par le nouveau type d'instance. Pour en savoir plus, consultez la page Types d'instances compatibles.

  4. Modifiez le champ spec.instanceType de vos ressources AWSNodePool.

    apiVersion: multicloud.cluster.gke.io/v1
    kind: AWSNodePool
    spec:
      instanceType: AWS_INSTANCE_TYPE
      ...
    
  5. Enregistrez le fichier. Si vous utilisez kubectl edit, kubectl applique automatiquement les modifications. Si vous modifiez le fichier YAML, appliquez-le à votre service de gestion à l'aide de la commande suivante :

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl apply -f cluster-0.yaml
    
  6. Vérifiez l'état de la mise à jour avec kubectl. Une fois la mise à jour terminée, l'état de l'objet passe de Updating à Provisioned.

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl get AWSClusters,AWSNodePools
    

    Par exemple, lorsque le cluster est en cours de mise à jour, le résultat ressemble à ce qui suit :

    NAME        STATE       AGE      VERSION           ENDPOINT
    cluster-0   Updating    10m41s   1.25.5-gke.2100   gke-xyz.elb.us-east-1.amazonaws.com
    
    NAME               CLUSTER     STATE       AGE       VERSION
    cluster-0-pool-0   cluster-0   Updating    10m40s    1.25.5-gke.2100
    

Étapes suivantes