Installer sur d'autres distributions Kubernetes
Cette page explique comment installer Config Connector sur un cluster Kubernetes autre que Google Kubernetes Engine (GKE) sur Google Cloud, par exemple GKE sur AWS
Avant de commencer
Avant de commencer, effectuez les tâches suivantes :
- Sélectionnez ou créez un projet Google Cloud pour installer Config Connector.
- Assurez-vous de disposer des autorisations nécessaires pour créer et télécharger un compte de service pour le projet.
- Créez ou identifiez un cluster Kubernetes sur lequel vous n'avez pas encore installé Config Connector.
Installer Config Connector
Pour installer Config Connector dans un autre environnement Kubernetes, créé ou identifié un cluster Kubernetes, créez Identity and Access Management (IAM) compte de service, puis installez les composants Config Connector sur votre cluster.
Créer un objet ClusterRoleBinding
Config Connector a besoin d'une autorisation pour créer des rôles Kubernetes avant de pouvoir créer des ressources.
Vérifiez que vous pouvez créer des rôles en exécutant la commande suivante.
kubectl auth can-i create roles
Si le résultat est yes
, passez à la section Créer une identité.
Si le résultat est no
, créez un objet ClusterRoleBinding
dans votre cluster. Cela vous permet de créer des rôles :
kubectl create clusterrolebinding cluster-admin-binding \
--clusterrole cluster-admin \
--user ACCOUNT_EMAIL
Remplacez ACCOUNT_EMAIL par l'adresse e-mail que vous utilisez pour vous connecter à votre compte de facturation Cloud.
Le résultat doit contenir l'expression cluster-admin-binding created
. Si cette expression ne s'affiche pas, contactez votre administrateur de compte de facturation Cloud ou de cluster GKE pour obtenir des informations sur les autorisations.
Créer une identité
Config Connector a besoin d'une identité Cloud Identity pour communiquer avec d'autres ressources. Pour configurer l'identité, vous devez créer un compte de service IAM et une clé de compte de service. Ensuite, vous devez importer les identifiants de la clé en tant que secret dans chaque cluster qui exécute Config Connector.
Dans l'ensemble d'instructions suivant, vous allez importer une clé d'identifiants de compte de service Google Cloud dans le cluster Kubernetes. L'importation d'identifiants de compte de service directement dans un cluster est généralement considérée comme non sécurisée, en particulier si vous exécutez des charges de travail tierces ou personnalisées dans le même cluster. Cette approche peut potentiellement exploiter les failles d'escalade de nœud à cluster et usurper l'identité du compte de service Google Cloud via ce secret. Si vous utilisez un cluster GKE, nous vous recommandons à l'aide de la fédération d'identité de charge de travail pour GKE.
Créer un compte de service
Pour créer un compte de service, procédez comme suit :
Créer un compte de service IAM Si vous disposez déjà d'un compte de service, vous pouvez l'utiliser au lieu d'en créer un autre.
Pour créer le compte de service, exécutez la commande gcloud CLI suivante :
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
Remplacez
SERVICE_ACCOUNT_NAME
par le nom de votre compte de service.Pour en savoir plus sur la création de comptes de service, consultez la page Créer et gérer des comptes de service.
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 l'ID de votre projet Google CloudSERVICE_ACCOUNT_NAME
par le nom de votre compte de service.
Créez une clé de compte de service et exportez ses identifiants vers un fichier nommé
key.json
.gcloud iam service-accounts keys create --iam-account \ SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com key.json
Remplacez l'élément suivant :
SERVICE_ACCOUNT_NAME
par le nom de votre compte de service.PROJECT_ID
par l'ID de votre projet Google Cloud
Appliquer les identifiants à votre cluster
Pour appliquer les identifiants au cluster sur lequel vous souhaitez exécuter Config Connector, procédez comme suit :
Créez l'espace de noms
cnrm-system
:kubectl create namespace cnrm-system
Importez les identifiants de la clé en tant que secret.
kubectl create secret generic SECRET_NAME \ --from-file key.json \ --namespace cnrm-system
Remplacez SECRET_NAME par le nom que vous souhaitez attribuer à votre secret.
Supprimez les identifiants de votre système.
rm key.json
Installer l'opérateur Config Connector
Procédez comme suit pour installer l'opérateur Config Connector :
Téléchargez le dernier fichier tar de l'opérateur Config Connector :
gcloud storage cp gs://configconnector-operator/latest/release-bundle.tar.gz release-bundle.tar.gz
Extrayez le fichier tar :
tar zxvf release-bundle.tar.gz
Installez l'opérateur Config Connector sur votre cluster :
kubectl apply -f operator-system/configconnector-operator.yaml
Configurer Config Connector
Pour installer Config Connector à l'aide de l'opérateur, vous devez créer un fichier de configuration pour la ressource CustomResource ConfigConnector
, puis l'appliquer à l'aide de la commande kubectl apply
.
Pour configurer Config Connector à l'aide de l'opérateur :
Copiez le fichier YAML suivant dans un fichier nommé
configconnector.yaml
:apiVersion: core.cnrm.cloud.google.com/v1beta1 kind: ConfigConnector metadata: # the name is restricted to ensure that there is only ConfigConnector # instance installed in your cluster name: configconnector.core.cnrm.cloud.google.com spec: mode: cluster credentialSecretName: SECRET_NAME stateIntoSpec: Absent
Remplacez SECRET_NAME par le nom du secret que vous avez créé précédemment.
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 aveckubectl
.
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 nomsPROJECT_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 nomsFOLDER_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 nomsORGANIZATION_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
Pour mettre à niveau Config Connector, téléchargez et installez la dernière version de l'opérateur Config Connector :
gcloud storage cp gs://configconnector-operator/latest/release-bundle.tar.gz release-bundle.tar.gz
tar zxvf release-bundle.tar.gz
kubectl apply -f operator-system/configconnector-operator.yaml
Désinstaller Config Connector
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
Pour désinstaller l'opérateur Config Connector, exécutez la commande suivante :
kubectl delete -f operator-system/configconnector-operator.yaml --wait=true
Étape suivante
- Découvrez comment choisir un type d'installation.
- Découvrez comment résoudre les problèmes liés à Config Connector.