Installer le contrôleur de hiérarchie

Ce document explique comment installer et désinstaller le contrôleur de hiérarchie, qui étend les espaces de noms Kubernetes standards pour permettre la création de stratégies hiérarchiques sans modifier le dépôt Anthos Config Management.

Avant de commencer

Vous avez besoin d'un cluster exécutant Google Kubernetes Engine (GKE) version 1.15.x ou ultérieure avec Anthos Config Management déjà installé.

Activer le contrôleur de hiérarchie

Procédez comme suit pour configurer Anthos Config Management afin d'activer le contrôleur de hiérarchie sur le cluster :

  1. Dans le fichier de configuration de l'opérateur, dans l'objet spec.hierarchyController, définissez la valeur de enabled sur true :

      # config-management.yaml
    
      apiVersion: configmanagement.gke.io/v1
      kind: ConfigManagement
      metadata:
        name: config-management
      spec:
        # Set to true to enable hierarchical namespaces
        hierarchyController:
          enabled: true
    
        # ...other fields...
    
  2. Appliquez la configuration à l'aide de la commande suivante :

      kubectl apply -f config-management.yaml
    

    Plusieurs charges de travail sont déployées, puis le contrôleur de hiérarchie devient opérationnel sur votre cluster. Cette opération peut prendre jusqu'à une minute.

Installer le plug-in kubectl

Il est possible d'interagir avec le contrôleur de hiérarchie en n'utilisant que les outils clients Kubernetes, tels que kubectl. Il est toutefois beaucoup plus simple, pour certaines tâches, de faire appel au plug-in kubectl Open Source kubectl-hns. Ce plug-in fait partie du contrôleur d'espace de noms hiérarchique (HNC), qui est un composant du contrôleur de hiérarchie.

Ce plug-in est distribué par la communauté OSS et n'est actuellement disponible que pour Linux. Pour l'installer sur votre poste de travail, consultez les sections suivantes.

Déterminer la version requise du plug-in

Chaque version d'Anthos Config Management correspond à une version du projet OSS, comme indiqué dans le tableau suivant. Pour des résultats optimaux, assurez-vous que la version du plug-in que vous téléchargez correspond à la version d'Anthos Config Management.

Version d'Anthos Config Management Version de l'application kubectl-hns
1.4.1 0.5.0
Pré-1.4.0 n/a

Installer le plug-in sur votre poste de travail

  1. Définissez une variable d'environnement donnant la version de kubectl-hns telle qu'indiquée dans le tableau précédent. Exemple :

     HNC_VERSION=0.5.0   # Example for Anthos Config Management 1.4.1
    
  2. Choisissez l'emplacement d'installation du plug-in. Ce chemin d'accès doit se trouver dans la variable PATH.

     PLUGIN_DIR=~/kubectl-plugins   # Example path
    
  3. Téléchargez le plug-in et rendez-le exécutable.

    curl -L -o ${PLUGIN_DIR}/kubectl-hns \
       https://github.com/kubernetes-sigs/multi-tenancy/releases/download/hnc-${HNC_VERSION}/kubectl-hns
    chmod +x ${PLUGIN_DIR}/kubectl-hns
    

Vérifier l'installation

  1. Si le contrôleur de hiérarchie est correctement installé, vous devriez pouvoir créer des sous-espaces de noms sous un espace de noms existant, comme suit :

     kubectl hns create sub -n default
    
  2. Si le contrôleur de hiérarchie fonctionne correctement, vous devriez pouvoir inspecter la hiérarchie obtenue :

     kubectl hns tree default
    

    Sortie :

     default
      └── sub
    
  3. Nettoyez le sous-espace de noms. Les sous-espaces de noms ne peuvent pas être supprimés directement. À la place, vous devez supprimer l'ancre du sous-espace de noms dans l'espace de noms parent à l'aide de la commande suivante :

    kubectl delete subns sub -n default
    # subnamespaceanchor.hnc.x-k8s.io "sub" deleted
    

Désinstaller le contrôleur de hiérarchie

Pour désinstaller le contrôleur de hiérarchie :

  1. Dans le fichier de configuration de l'opérateur, dans l'objet spec.hierarchyController, définissez la valeur de enabled sur false.
  2. Une fois que l'opérateur a supprimé le finaliseur hierarchycontroller.configmanagement.gke.io, le contrôleur de hiérarchie est désinstallé.

Si vous souhaitez désinstaller complètement Config Management, consultez la section Désinstaller l'opérateur d'un cluster.

Étape suivante