Créer un cluster alpha

Les clusters alpha sont des clusters Google Kubernetes Engine (GKE) éphémères qui activent les API et fonctionnalités alpha de Kubernetes, et qui peuvent exécuter des versions alpha des prochaines versions mineures. Ce document explique comment créer un cluster alpha, activer ou désactiver des feature gates spécifiques, et exécuter des versions de correctifs alpha dans le version disponible rapide. Les clusters alpha sont destinés aux premiers utilisateurs et aux administrateurs de plate-forme qui souhaitent tester les prochaines fonctionnalités et versions de Kubernetes.

Pour en savoir plus sur le fonctionnement des clusters GKE et sur la façon de choisir le type de cluster GKE à créer, consultez Architecture d'un cluster GKE et À propos des choix de configuration de cluster.

Avant de commencer

Avant de commencer, effectuez les tâches suivantes :

  • Activez l'API Google Kubernetes Engine.
  • Activer l'API Google Kubernetes Engine
  • Pour utiliser Google Cloud CLI pour cette tâche, installez puis initialisez la gcloud CLI. Si vous avez déjà installé la gcloud CLI, obtenez la dernière version en exécutant la gcloud components update commande. Il est possible que les versions antérieures de la gcloud CLI ne permettent pas d'exécuter les commandes de ce document.

Rôles requis

Pour obtenir les autorisations nécessaires pour créer des clusters alpha et interagir avec eux, demandez à votre administrateur de vous attribuer le rôle IAM d'administrateur de cluster Kubernetes Engine (roles/container.clusterAdmin) sur votre projet. Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.

Configurer des comptes de service IAM pour GKE

GKE utilise des comptes de service IAM associés à vos nœuds pour exécuter des tâches système telles que la journalisation et la surveillance. Au minimum, ces comptes de service de nœud doivent disposer du rôle Compte de service de nœud par défaut Kubernetes Engine (roles/container.defaultNodeServiceAccount) sur votre projet. Par défaut, GKE utilise le compte de service Compute Engine par défaut, qui est créé automatiquement dans votre projet, en tant que compte de service de nœud.

Pour attribuer le rôle roles/container.defaultNodeServiceAccount au compte de service Compute Engine par défaut, procédez comme suit :

Console

  1. Accédez à la page d'accueil :

    Accéder à la page d'accueil

  2. Dans le champ Numéro du projet, cliquez sur Copier dans le presse-papiers.
  3. Accédez à la page IAM :

    Accéder à la page "IAM"

  4. Cliquez sur  Accorder l'accès.
  5. Dans le champ Nouveaux comptes principaux, spécifiez la valeur suivante :
    PROJECT_NUMBER-compute@developer.gserviceaccount.com
    Remplacez PROJECT_NUMBER par le numéro de projet que vous avez copié.
  6. Dans le menu Sélectionner un rôle, choisissez le rôle Compte de service de nœud par défaut Kubernetes Engine.
  7. Cliquez sur Enregistrer.

gcloud

  1. Recherchez le numéro de votre Google Cloud projet:
    gcloud projects describe PROJECT_ID \
        --format="value(projectNumber)"

    Remplacez PROJECT_ID par l'ID du projet.

    Le résultat ressemble à ce qui suit :

    12345678901
    
  2. Attribuez le rôle roles/container.defaultNodeServiceAccount au compte de service Compute Engine par défaut :
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com" \
        --role="roles/container.defaultNodeServiceAccount"

    Remplacez PROJECT_NUMBER par le numéro de projet de l'étape précédente.

Créer un cluster alpha

Vous pouvez créer un cluster alpha à l'aide de la Google Cloud console ou de la gcloud CLI. Nous vous recommandons d'utiliser la gcloud CLI pour les raisons suivantes :

  • Vous pouvez enregistrer votre cluster dans le version disponible rapide, ce qui est recommandé pour les clusters alpha.
  • Vous pouvez spécifier les feature gates alpha ou bêta à activer ou à désactiver différemment des valeurs par défaut.

Console

  1. Dans la Google Cloud console, accédez à la page Créer un cluster Kubernetes.

    Accéder à la page "Créer un cluster Kubernetes"

  2. Dans la section Paramètres de base du cluster, procédez comme suit :

    1. Saisissez le nom de votre cluster.
    2. Pour le type d'emplacement, sélectionnez Zonal, puis choisissez la zone souhaitée pour votre cluster.
    3. Si vous créez un cluster multizones, cochez la case Spécifier les emplacements de nœud par défaut, puis choisissez des zones supplémentaires dans lesquelles vous souhaitez exécuter le cluster.
    4. Dans la liste déroulante Canal de publication, sélectionnez Aucun canal (obsolète).

    5. Facultatif : Spécifiez une version du plan de contrôle dans la liste déroulante Version.

  3. Facultatif : Configurez d'autres paramètres pour votre nouveau cluster.

  4. Facultatif : Si vous souhaitez enregistrer votre nouveau cluster dans un parc, accédez à la section Enregistrement du parc, puis suivez les Google Cloud instructions de la console pour créer et enregistrer un cluster afin de terminer l'enregistrement de votre cluster.

  5. Dans le volet de navigation, sous Pools de nœuds, cliquez sur default-pool.

  6. Dans la section Détails du pool de nœuds, procédez comme suit :

    1. Saisissez un nom pour le pool de nœuds par défaut.
    2. Facultatif : Sélectionnez la version du nœud.
    3. Saisissez le nombre de nœuds à créer dans le cluster. Vous devez disposer d'un quota de ressources disponible pour les nœuds et les ressources associées (telles que les routes de pare-feu).
    4. Facultatif : Vous pouvez choisir de désactiver les mises à niveau automatiques des nœuds. Nous vous recommandons toutefois de consulter les éléments à prendre en compte avant de désactiver les mises à niveau automatiques des nœuds avant de choisir cette option.
    5. Décochez les options Activer la mise à niveau automatique et Activer la réparation automatique.
  7. Dans le volet de navigation, cliquez sur Nœuds sous Pools de nœuds.

  8. Dans la liste déroulante Type d'image, sélectionnez l'image de nœud.

  9. Sélectionnez la configuration de la machine à utiliser par défaut pour les instances. Chaque type de machine est facturé différemment. Le type de machine par défaut est e2-medium. Pour plus d'informations sur les tarifs applicables aux différents types de machine, consultez la grille tarifaire par type de machine.

  10. Dans la liste déroulante Type de disque de démarrage, sélectionnez le type de disque.

  11. Saisissez la taille du disque de démarrage.

  12. Facultatif : dans le volet de navigation, sous Pools de nœuds, cliquez sur Sécurité.

  13. Vous pouvez également spécifier un compte de service IAM personnalisé pour vos nœuds :
    1. Dans la page Paramètres avancés, développez la section Sécurité.
    2. Dans le menu Compte de service, sélectionnez le compte de service de votre choix.

    Nous vous recommandons vivement de spécifier un compte de service IAM doté de privilèges minimaux que vos nœuds pourront utiliser à la place du compte de service Compute Engine par défaut. Pour savoir comment créer un compte de service doté du moindre privilège, consultez Utiliser un compte de service doté du moindre privilège.

  14. Dans le volet de navigation, sous Cluster, cliquez sur Fonctionnalités.

  15. Cliquez sur Activer les fonctionnalités alpha Kubernetes dans ce cluster.

  16. Lisez et acceptez l'avertissement en sélectionnant J'ai compris les conséquences.

  17. Cliquez sur Créer.

gcloud

Exécutez la commande ci-dessous.

gcloud container clusters create CLUSTER_NAME \
    --release-channel=CHANNEL \
    --enable-kubernetes-alpha \
    --no-enable-autorepair \
    --no-enable-autoupgrade \
    --location CONTROL_PLANE_LOCATION [\
    --alpha-cluster-feature-gates FEATURE_GATES_LIST]

Remplacez les éléments suivants :

  • CLUSTER_NAME : nom choisi pour le cluster.
  • CHANNEL : type de version disponible. Cette valeur doit être l'une des suivantes :

    • rapid: enregistrement dans le version disponible rapide, qui est le canal recommandé pour les clusters alpha.
    • regular : enregistrement dans le version disponible standard.
    • stable : enregistrement dans le version disponible stable.
    • none : aucun enregistrement dans un version disponible. Cette option est obsolète et sera supprimée.
  • CONTROL_PLANE_LOCATION : emplacement Compute Engine du plan de contrôle de votre cluster. Indiquez une région pour les clusters régionaux ou une zone pour les clusters zonaux.

  • --cluster-version VERSION : (facultatif) spécifie la version de GKE à exécuter dans le cluster. Si cet élément n'est pas spécifié, le cluster exécute la version de correctif par défaut pour la création de cluster pour le canal de publication sélectionné, comme indiqué dans le tableau Versions actuelles.

  • FEATURE_GATES_LIST: liste des feature gates à activer ou à désactiver différemment des valeurs par défaut. Chaque chaîne représente l'activation ou la désactivation d'un feature gate. Exemple : featureX=true, featureY=false. Lorsque vous omettez cet indicateur, GKE crée le cluster à l'aide des valeurs par défaut pour GKE, ce qui signifie que tous les feature gates alpha disponibles avec la version de Kubernetes sont activés. Les feature gates bêta activés par défaut par Kubernetes sont également activés. Pour en savoir plus sur les feature gates disponibles avec des versions spécifiques et sur les fonctionnalités bêta activées par défaut, consultez Feature gates pour les fonctionnalités alpha ou bêta features dans la documentation de Kubernetes. Lorsque vous incluez cet indicateur, vous modifiez les feature gates activés par rapport à la façon dont les feature gates sont définis par défaut par GKE. Pour en savoir plus, consultez Feature gates and alpha clusters.

Nous vous recommandons vivement de spécifier un compte de service IAM doté de privilèges minimaux que vos nœuds pourront utiliser à la place du compte de service Compute Engine par défaut. Pour savoir comment créer un compte de service doté du moindre privilège, consultez Utiliser un compte de service doté du moindre privilège.

Pour spécifier un compte de service personnalisé dans la gcloud CLI, ajoutez l'indicateur suivant à votre commande :

--service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com

Remplacez SERVICE_ACCOUNT_NAME par le nom de votre compte de service doté de privilèges minimaux.

Vous êtes invité à confirmer un avertissement indiquant que le cluster alpha ne sera pas mis à niveau et sera supprimé au bout de 30 jours :

This will create a cluster with Kubernetes alpha features enabled.
- This cluster will not be covered by the GKE SLA and should
  not be used for production workloads.
- You will not be able to upgrade the master or nodes.
- The cluster will be deleted after 30 days.

Interagir avec un cluster à l'aide de kubectl

Après avoir créé un cluster, vous devez configurer kubectl pour pouvoir interagir avec le cluster depuis la ligne de commande.

Vérifier l'état du feature gate pour un cluster alpha

Avec les clusters alpha, vous pouvez activer ou désactiver sélectivement les feature gates. Pour en savoir plus, consultez Feature gates et alpha clusters.

Pour vérifier l'état du feature gate de votre cluster, consultez Vérifier l'état du feature gate state.

Exécuter des versions de correctifs alpha dans des clusters alpha

Les clusters alpha que vous enregistrez dans le version disponible rapide peuvent exécuter des versions de correctifs alpha des prochaines versions mineures de Kubernetes. Ces versions alpha offrent un accès anticipé pour tester les fonctionnalités et les modifications de la prochaine version mineure avant que GKE ne mette cette version mineure à la disposition de tous les clusters du canal rapide.

Pour identifier et exécuter des versions de correctifs alpha dans des clusters alpha, procédez comme suit :

  1. Identifiez les versions alpha disponibles dans le canal rapide :

    gcloud container get-server-config \
        --flatten="channels" --filter="channels.channel=RAPID" \
        --location=LOCATION \
        --format="yaml(channels.channel,channels.previewVersions)"
    

    Remplacez LOCATION par la région dans laquelle vous prévoyez de créer le cluster alpha, par exemple us-central1.

    Le résultat ressemble à ce qui suit :

    channels:
      channel: RAPID
      previewVersions:
      - 1.37.0-gke.1173000+preview
    

    Si le résultat est vide, cela signifie que les versions alpha ne sont pas disponibles dans cette région. Essayez une autre région ou consultez les notes de version du canal rapide pour obtenir des informations sur les versions.

  2. Créez le cluster alpha :

    gcloud container clusters create CLUSTER_NAME \
        --release-channel=rapid \
        --enable-kubernetes-alpha \
        --no-enable-autorepair \
        --no-enable-autoupgrade \
        --location=CONTROL_PLANE_LOCATION \
        --cluster-version=ALPHA_VERSION
    

    Remplacez les éléments suivants :

    • CLUSTER_NAME: nom du cluster alpha.
    • CONTROL_PLANE_LOCATION: région ou zone du plan de contrôle du cluster. Utilisez la même région que celle que vous avez vérifiée pour la disponibilité de la version alpha à l'étape précédente ou une zone de cette région.
    • ALPHA_VERSION: version de correctif alpha spécifique à exécuter dans le cluster, à partir du résultat de l'étape précédente.

Vérifier la date d'expiration d'un cluster alpha

Pour vérifier la date d'expiration des clusters alpha, exécutez la commande suivante :

gcloud container clusters list

Résoudre les problèmes de création d'un cluster alpha avec des feature gates

Si vous tentez de créer un cluster avec un feature gate non valide ou un feature gate non compatible avec la version Kubernetes de votre cluster, le cluster peut être créé dans un état d'erreur.

Vous trouverez un message semblable au suivant dans Cloud Logging :

failed to set feature gates from initial flags-based config:
unrecognized feature gate: UNRECOGNIZED_FEATURE_GATE_NAME

Si vous rencontrez cette erreur, supprimez le cluster en échec. Vérifiez l'orthographe et la compatibilité des feature gates avec la version Kubernetes donnée. Réessayez ensuite de créer le cluster.

Étape suivante