Associer votre cluster conforme CNCF

Avec les clusters associés à GKE, vous pouvez importer vos clusters Kubernetes existants, qu'ils soient hébergés sur AWS, Azure ou ailleurs, dans le tableau de bord Google Kubernetes Engine (GKE) Édition Enterprise pour une gestion centralisée. Cela inclut la possibilité d'associer n'importe quel cluster Kubernetes conforme à la norme CNCF.

Clusters Kubernetes compatibles

Vous pouvez ajouter n'importe quel cluster Kubernetes conforme avec des nœuds x86 à votre parc, puis l'afficher dans la console Google Cloud avec vos clusters GKE.

Bien que Google ne vérifie pas la compatibilité totale des fonctionnalités dans toutes les distributions Kubernetes, les éventuelles incompatibilités détectées sont documentées ici. Pour en savoir plus et obtenir de l'aide au dépannage, consultez l'article Version et assistance pour la mise à niveau de l'édition Google Kubernetes Engine (GKE).

Prérequis

Assurez-vous que votre cluster répond aux exigences du cluster.

Lorsque vous associez votre cluster, vous devez spécifier les éléments suivants:

La région administrative est une région Google Cloud à partir de laquelle administrer le cluster associé. Vous pouvez choisir n'importe quelle région compatible, mais il est recommandé de choisir la région géographiquement la plus proche de votre cluster. Aucune donnée utilisateur n'est stockée dans la région administrative.

La version de la plate-forme est la version des clusters associés à GKE à installer sur votre cluster. Vous pouvez lister toutes les versions compatibles en exécutant la commande suivante:

gcloud container attached get-server-config  \
  --location=GOOGLE_CLOUD_REGION

Remplacez GOOGLE_CLOUD_REGION par le nom de l'emplacement Google Cloud à partir duquel vous souhaitez administrer votre cluster.

Numérotation de version de la plate-forme

Ces documents font référence à la version des clusters associés à GKE en tant que version de la plate-forme, ce qui permet de la distinguer de la version de Kubernetes. Les clusters associés à GKE utilisent la même convention de numérotation de version que GKE (par exemple, 1.21.5-gke.1). Lorsque vous associez ou mettez à jour votre cluster, vous devez choisir une version de plate-forme dont la version mineure est identique ou inférieure à la version Kubernetes de votre cluster. Par exemple, vous pouvez associer un cluster exécutant Kubernetes v1.22.* avec la version 1.21.* ou 1.22.* de la plate-forme de clusters associée à GKE.

Cela vous permet de mettre à niveau votre cluster vers la prochaine version mineure avant de mettre à niveau les clusters associés à GKE.

Associer votre cluster

Pour associer votre cluster conforme à la norme CNCF à la gestion de parc Google Cloud, exécutez les commandes suivantes:

  1. Assurez-vous que votre fichier kubeconfig contient une entrée pour le cluster que vous souhaitez associer. Les instructions spécifiques varient en fonction de la distribution.

  2. Exécutez la commande suivante pour extraire le contexte kubeconfig de votre cluster et le stocker dans la variable d'environnement KUBECONFIG_CONTEXT:

    KUBECONFIG_CONTEXT=$(kubectl config current-context)
    
  3. La commande permettant d'enregistrer votre cluster varie légèrement selon que votre cluster dispose d'un émetteur OIDC public ou privé. Choisissez l'onglet qui s'applique à votre cluster:

    Émetteur OIDC privé

    Exécutez la commande gcloud container attached clusters register pour enregistrer le cluster:

    gcloud container attached clusters register CLUSTER_NAME \
      --location=GOOGLE_CLOUD_REGION \
      --fleet-project=PROJECT_NUMBER \
      --platform-version=PLATFORM_VERSION \
      --distribution=generic \
      --context=KUBECONFIG_CONTEXT \
      --has-private-issuer \
      --kubeconfig=KUBECONFIG_PATH
    

    Remplacez les éléments suivants :

    • CLUSTER_NAME : nom du cluster
    • GOOGLE_CLOUD_REGION: région Google Cloud à partir de laquelle administrer votre cluster
    • PROJECT_NUMBER: projet hôte du parc avec lequel enregistrer le cluster
    • PLATFORM_VERSION: version de la plate-forme à utiliser pour le cluster
    • KUBECONFIG_CONTEXT: contexte dans le fichier kubeconfig pour accéder au cluster
    • KUBECONFIG_PATH: chemin d'accès à votre fichier kubeconfig

    Émetteur OIDC public

    1. Récupérez l'URL de l'émetteur OIDC de votre cluster et enregistrez-la pour une utilisation ultérieure. Les instructions spécifiques varient en fonction de la distribution.

    2. Exécutez la commande suivante pour extraire le contexte kubeconfig de votre cluster et le stocker dans la variable d'environnement KUBECONFIG_CONTEXT:

      KUBECONFIG_CONTEXT=$(kubectl config current-context)
      
    3. Exécutez la commande gcloud container attached clusters register pour enregistrer le cluster:

      gcloud container attached clusters register CLUSTER_NAME \
        --location=GOOGLE_CLOUD_REGION \
        --fleet-project=PROJECT_NUMBER \
        --platform-version=PLATFORM_VERSION \
        --distribution=generic \
        --issuer-url=ISSUER_URL \
        --context=KUBECONFIG_CONTEXT \
        --kubeconfig=KUBECONFIG_PATH
      

      Remplacez les éléments suivants :

      • CLUSTER_NAME : nom du cluster
      • GOOGLE_CLOUD_REGION: région Google Cloud pour administrer votre cluster
      • PROJECT_NUMBER: projet hôte du parc dans lequel le cluster sera enregistré
      • PLATFORM_VERSION: version des clusters associés à GKE à utiliser pour le cluster
      • ISSUER_URL: URL de l'émetteur récupérée précédemment
      • KUBECONFIG_CONTEXT: contexte dans le fichier kubeconfig permettant d'accéder à votre cluster, tel que extrait précédemment.
      • KUBECONFIG_PATH: chemin d'accès à votre fichier kubeconfig

Autoriser Cloud Logging/Cloud Monitoring

Pour que les clusters associés à GKE puissent créer et importer des journaux système et des métriques dans Google Cloud, ils doivent être autorisés.

Pour autoriser l'identité de charge de travail Kubernetes gke-system/gke-telemetry-agent à écrire des journaux dans Google Cloud Logging et des métriques dans Google Cloud Monitoring, exécutez la commande suivante :

gcloud projects add-iam-policy-binding GOOGLE_PROJECT_ID \
  --member="serviceAccount:GOOGLE_PROJECT_ID.svc.id.goog[gke-system/gke-telemetry-agent]" \
  --role=roles/gkemulticloud.telemetryWriter

Remplacez GOOGLE_PROJECT_ID par l'ID de projet Google Cloud du cluster.

Cette liaison IAM permet à tous les clusters du projet du projet Google Cloud d'importer des journaux et des métriques. Vous ne devez l'exécuter qu'après avoir créé votre premier cluster pour le projet.

L'ajout de cette liaison IAM échouera, sauf si au moins un cluster a été créé dans votre projet Google Cloud. En effet, le pool d'identités de charge de travail auquel il fait référence (GOOGLE_PROJECT_ID.svc.id.goog) n'est pas provisionné avant la création du cluster.