Cette page a été traduite par l'API Cloud Translation.
Switch to English

Installer avec le module complémentaire GKE

Cette page explique comment installer Config Connector sur un cluster Google Kubernetes Engine (GKE) à l'aide du module complémentaire Config Connector.

Si vous utilisez GKE sur Google Cloud, nous vous recommandons d'installer Config Connector à l'aide de ce module complémentaire. Pour plus d'informations sur les autres options d'installation, consultez la section Choisir un type d'installation.

Avant de commencer

Avant de commencer, effectuez les tâches suivantes :

Configurez les paramètres gcloud par défaut à l'aide de l'une des méthodes suivantes :

  • Utilisez gcloud init pour suivre les instructions permettant de définir les paramètres par défaut.
  • Utilisez gcloud config pour définir individuellement l'ID, la zone et la région de votre projet.

Utiliser gcloud init

Si le message d'erreur One of [--zone, --region] must be supplied: Please specify location s'affiche, effectuez les tâches ci-dessous.

  1. Exécutez gcloud init et suivez les instructions :

    gcloud init

    Si vous utilisez SSH sur un serveur distant, utilisez l'option --console-only pour empêcher la commande d'ouvrir un navigateur :

    gcloud init --console-only
  2. Suivez les instructions pour autoriser gcloud à utiliser votre compte Google Cloud.
  3. Créez ou sélectionnez une configuration.
  4. Choisissez un projet Google Cloud.
  5. Choisissez une zone Compute Engine par défaut.

Utiliser gcloud config

  • Définissez votre ID de projet par défaut :
    gcloud config set project project-id
  • Si vous utilisez des clusters zonaux, définissez votre zone de calcul par défaut :
    gcloud config set compute/zone compute-zone
  • Si vous utilisez des clusters régionaux, définissez votre région de calcul par défaut :
    gcloud config set compute/region compute-region
  • Mettez à jour gcloud vers la dernière version :
    gcloud components update

Installer le module complémentaire Config Connector

Pour utiliser le module complémentaire Config Connector, vous devez créer un nouveau cluster GKE ou l'activer sur un cluster existant. Après avoir installé le module complémentaire Config Connector, vous devez le configurer avec vos comptes de service Google et vos espaces de noms.

Conditions requises

Le module complémentaire Config Connector remplit les conditions suivantes :

  • Vous devez utiliser une des versions GKE suivantes :

    • 1.15.11-gke.5 et versions ultérieures
    • 1.16.8-gke.8 et versions ultérieures
    • 1.17.4-gke.5 et versions ultérieures
  • Vous devez activer un pool Workload Identity et Kubernetes Engine Monitoring sur les clusters sur lesquels vous activez Config Connector.

Configurer un cluster GKE

Vous pouvez utiliser le module complémentaire Config Connector sur un cluster nouveau ou existant.

Créer un cluster avec le module complémentaire Config Connector activé

Vous pouvez créer un cluster GKE à l'aide de l'outil gcloud ou de Google Cloud Console.

gcloud

Pour créer un cluster avec l'outil de ligne de commande gcloud, exécutez la commande suivante :

gcloud container clusters create CLUSTER_NAME \
    --release-channel CHANNEL \
    --addons ConfigConnector \
    --workload-pool=PROJECT_ID.svc.id.goog \
    --enable-stackdriver-kubernetes

Remplacez l'élément suivant :

  • CLUSTER_NAME par le nom de votre cluster GKE
  • CHANNEL par une version disponible GKE, rapid et regular sont compatibles.
  • PROJECT_ID par l'ID de votre projet Google Cloud

Cloud Console

Pour créer un cluster avec Google Cloud Console, procédez comme suit :

  1. Accédez au menu Google Kubernetes Engine de Cloud Console.

    Accéder au menu Google Kubernetes Engine

  2. Cliquez sur Create (Créer). La page Créer un cluster Kubernetes s'affiche.

  3. Spécifiez le nom du cluster.

  4. Choisissez une version maître compatible.

  5. Configurez le reste de votre cluster comme vous le souhaitez.

  6. Dans le volet de navigation, cliquez sur Sécurité sous Cluster.

  7. Cochez la case Activer Workload Identity.

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

  9. Cochez la case Activer Config Connector.

  10. Cliquez sur Create (Créer).

Une fois le cluster créé, passez à la section Créer une identité.

Activer le module complémentaire Config Connector sur un cluster existant

Vous pouvez activer le module complémentaire Config Connector sur un cluster GKE existant avec gcloud ou avec Google Cloud Console.

Prérequis

L'activation du module complémentaire Config Connector sur un cluster existant a les prérequis suivants :

  • Vous avez besoin d'un cluster qui répond aux exigences du module complémentaire Config Connector.
  • Configurez Workload Identity sur le cluster sur lequel vous souhaitez installer Config Connector.

Pour activer les métadonnées GKE sur votre pool de nœuds, utilisez l'outil de ligne de commande gcloud :

gcloud container node-pools update NODE_POOL --workload-metadata=GKE_METADATA \
--cluster CLUSTER_NAME

Remplacez l'élément suivant :

  • NODE_POOL par le nom de votre pool de nœuds
  • Remplacez CLUSTER_NAME par le nom de votre cluster.
Activer le module complémentaire Config Connector

Vous pouvez activer le module complémentaire Config Connector dans un cluster GKE existant à l'aide de l'outil de ligne de commande gcloud ou de Google Cloud Console.

gcloud

Pour activer le module complémentaire Config Connector dans un cluster GKE existant, utilisez l'outil de ligne de commande gcloud :

gcloud container clusters update CLUSTER_NAME \
--update-addons ConfigConnector=ENABLED

Remplacez CLUSTER_NAME par le nom de votre cluster GKE.

Cloud Console

  1. Accédez au menu Google Kubernetes Engine de Cloud Console.

    Accéder au menu Google Kubernetes Engine

  2. Sélectionnez le cluster sur lequel vous souhaitez installer Config Connector. La page Détails du cluster s'affiche.

  3. Sous la section Fonctionnalités, localisez la ligne Config Connector, puis cliquez sur Modifier.

  4. Cochez la case Activer Config Connector, puis cliquez sur Enregistrer les modifications pour mettre à jour votre cluster.

Créer une identité

Config Connector crée et gère les ressources Google Cloud en s'authentifiant avec un compte de service de gestion de l'authentification et des accès (IAM) et en utilisant Workload Identity de GKE pour lier des comptes de service IAM aux comptes de service Kubernetes.

Pour créer l'identité, procédez comme suit :

  1. Créer un compte de service IAM Si vous avez un compte de service existant, vous pouvez l'utiliser et ignorer cette étape.

    Pour créer le compte de service, exécutez la commande suivante :
      gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
    Remplacez SERVICE_ACCOUNT_NAME par le nom que vous souhaitez donner à votre compte de service.
  2. Pour en savoir plus sur la création de comptes de service, consultez la page Créer et gérer des comptes de service.

  3. Accordez au compte de service IAM des autorisations avec privilèges élevés sur votre projet :
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" \
        --role="roles/owner"
    Remplacez l'élément suivant :
    • PROJECT_ID par votre ID de projet.
    • SERVICE_ACCOUNT_NAME par le nom de votre compte de service.
  4. Créez une liaison de stratégie IAM entre le compte de service IAM et le compte de service Kubernetes prédéfini exécuté par Config Connector :
    gcloud iam service-accounts add-iam-policy-binding \
    SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \
        --member="serviceAccount:PROJECT_ID .svc.id.goog[cnrm-system/cnrm-controller-manager]" \
        --role="roles/iam.workloadIdentityUser"
    Remplacez l'élément suivant :
    • SERVICE_ACCOUNT_NAME par le nom de votre compte de service.
    • PROJECT_ID par votre ID de projet.

Configurer Config Connector

Pour terminer l'installation, créez un fichier de configuration pour la ressource CustomResource ConfigConnector, puis appliquez-le à l'aide de la commande kubectl apply. L'opérateur Config Connector installe les définitions de ressources personnalisées (CRD) de Google Cloud et les composants Config Connector dans votre cluster.

Pour configurer l'opérateur, procédez comme suit :

  1. Copiez le fichier YAML suivant dans un fichier nommé configconnector.yaml :
    # configconnector.yaml
    apiVersion: core.cnrm.cloud.google.com/v1beta1
    kind: ConfigConnector
    metadata:
      # the name is restricted to ensure that there is only one
      # ConfigConnector instance installed in your cluster
      name: configconnector.core.cnrm.cloud.google.com
    spec:
     mode: cluster
     googleServiceAccount: "SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com"
    
    Remplacez l'élément suivant :
    • SERVICE_ACCOUNT_NAME par le nom de votre compte de service.
    • PROJECT_ID par votre ID de projet.
  2. Appliquez la configuration à votre cluster à l'aide de la commande kubectl apply :
      kubectl apply -f configconnector.yaml

Spécifier l'emplacement où créer les ressources

Config Connector peut organiser les ressources par projet, dossier ou organisation, de la même manière que vous organiseriez les ressources à l'aide de Google Cloud.

Avant de créer des ressources à l'aide de Config Connector, vous devez configurer où créer vos ressources. Pour déterminer où créer la ressource, Config Connector utilise une annotation sur la configuration de la ressource ou un espace de noms existant. Pour en savoir plus, consultez la section Organiser les ressources.

Si vous ne disposez pas d'un espace de noms à cette fin, créez-en un avec kubectl.
kubectl create namespace NAMESPACE

Remplacez NAMESPACE par le nom de votre espace de noms. Par exemple, config-connector.

Sélectionnez un onglet pour choisir où vous souhaitez que Config Connector crée des ressources.

Projet

Pour créer des ressources dans un projet donné, exécutez la commande suivante :

    kubectl annotate namespace \
    NAMESPACE cnrm.cloud.google.com/project-id=PROJECT_ID

Remplacez l'élément suivant :

  • NAMESPACE par le nom de votre espace de noms
  • PROJECT_ID par l'ID de votre projet Google Cloud

Dossier

Pour créer des ressources dans un dossier donné, exécutez la commande suivante :

    kubectl annotate namespace \
    NAMESPACE cnrm.cloud.google.com/folder-id=FOLDER_ID

Remplacez l'élément suivant :

  • NAMESPACE par le nom de votre espace de noms
  • FOLDER_ID par l'ID de votre dossier Google Cloud

Organisation

Pour créer des ressources dans une organisation donnée, exécutez la commande suivante :

    kubectl annotate namespace \
    NAMESPACE cnrm.cloud.google.com/organization-id=ORGANIZATION_ID

Remplacez l'élément suivant :

  • NAMESPACE par le nom de votre espace de noms
  • ORGANIZATION_ID par l'ID de votre organisation Google Cloud

Lorsque vous annotez votre espace de noms, Config Connector crée des ressources dans le projet, le dossier ou l'organisation correspondant. Pour en savoir plus sur la façon dont Config Connector utilise les espaces de noms Kubernetes, consultez la section Espaces de noms Kubernetes et projets Google Cloud.

Vérifier votre installation

Config Connector exécute tous ses composants dans un espace de noms nommé cnrm-system. Vous pouvez vérifier si les pods sont prêts en exécutant la commande suivante :

kubectl wait -n cnrm-system \
      --for=condition=Ready pod --all

Si Config Connector est installé correctement, le résultat ressemble à ce qui suit :

pod/cnrm-controller-manager-0 condition met

Mettre à niveau Config Connector

Votre module complémentaire Config Connector est mis à niveau vers une nouvelle version mineure avec votre cluster GKE. Les ressources de votre cluster sont conservées chaque fois qu'une mise à niveau se produit.

Désinstaller Config Connector

Pour désinstaller Config Connector, procédez comme suit :

  1. Utilisez kubectl delete pour supprimer les CRD Config Connector et les composants du contrôleur :

    kubectl delete ConfigConnector configconnector.core.cnrm.cloud.google.com --wait=true
    
  2. Désactivez le module complémentaire Config Connector dans votre cluster à l'aide de l'outil gcloud ou de Google Cloud Console :

    gcloud

    Pour désactiver le module complémentaire Config Connector, exécutez la commande gcloud suivante :

    gcloud container clusters update CLUSTER_NAME --update-addons ConfigConnector=DISABLED
    

    Remplacez CLUSTER_NAME par le nom du cluster dans lequel le module complémentaire Config Connector est installé.

    Cloud Console

    Pour désactiver le module complémentaire Config Connector à l'aide de Google Cloud Console, procédez comme suit :

    1. Dans Google Cloud Console, accédez à la page Clusters de Google Kubernetes Engine, et sélectionnez le cluster que vous souhaitez modifier.

      Accéder au menu Google Kubernetes Engine

    2. Cliquez sur Modifier. L'écran permettant de modifier le cluster s'affiche.

    3. Cliquez sur Modules complémentaires.

    4. Sélectionnez Config Connector, puis Désactivé.

    5. Cliquez sur Enregistrer pour mettre à jour le cluster.

Dépannage

Les sections suivantes vous fournissent des conseils pour résoudre les problèmes liés à l'installation de Config Connector.

Résoudre les problèmes liés à l'installation de modules complémentaires Config Connector

Si vous ne parvenez pas à activer le module complémentaire Config Connector, le message d'erreur suivant s'affiche : Node version 1.15.x-gke.x s unsupported. Pour résoudre cette erreur, vérifiez que la version du cluster GKE répond aux exigences. Pour obtenir toutes les versions valides de vos clusters, exécutez la commande suivante :

gcloud container get-server-config --format "yaml(validMasterVersions)" \
    --zone ZONE"

Remplacez ZONE par la zone Compute Engine.

Choisissez une version répondant aux exigences dans la liste. Le message d'erreur s'affiche également si Workload Identity ou Kubernetes Engine Monitoring sont désactivés. Assurez-vous que ces fonctionnalités sont activées pour corriger l'erreur.

Résoudre les problèmes d'autorisation de rapprochement des ressources

Si Google Cloud ne parvient pas à rapprocher les ressources, les journaux contiennent le message d'erreur suivant : The caller does not have permission, forbidden.

Pour examiner cette erreur, procédez comme suit :

  1. Ouvrez une interface système avec l'image SDK Cloud :
    kubectl run -it \
        --image google/cloud-sdk:slim \
        --serviceaccount cnrm-controller-manager \
        --namespace cnrm-system \
        workload-identity-test
  2. Affichez votre identité :
    gcloud auth list
  3. Vérifiez que l'identité répertoriée correspond au compte de service Google associé à vos ressources.
  4. Vérifiez que le compte de service Google dispose des rôles nécessaires pour gérer les ressources Google Cloud.

Étape suivante