Installer Hierarchy Controller

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

Avant de commencer

Vous avez besoin d'un cluster exécutant Google Kubernetes Engine (GKE) version 1.15.x ou ultérieure et sur lequel Config Sync est déjà installé.

Activer Hierarchy Controller

Procédez comme suit pour configurer Config Sync de sorte que Hierarchy Controller soit activé 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 :

      kubectl apply -f config-management.yaml
    

    Plusieurs charges de travail sont déployées, puis Hierarchy Controller devient utilisable sur votre cluster. Cette opération peut prendre jusqu'à une minute.

Installer le plug-in kubectl

Il est possible d'interagir avec Hierarchy Controller 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, Hierarchical Namespace Controller), qui est un composant de Hierarchy Controller.

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

Déterminer la version requise du plug-in

Chaque version de Config Sync 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 de Config Sync.

Version de Config Sync Version de kubectl-hns Remarques
1.6.0 0.6.0
1.5.2 0.6.0 kubectl-hns v0.6.0 n'est pas compatible avec Config Sync 1.5.1 ou versions antérieures.
1.5.1 0.5.3 kubectl-hns version 0.5.3 et antérieures n'est pas compatible avec Config Sync 1.5.2 ou versions ultérieures.
1.5.0 0.5.2
1.4.2 0.5.1
1.4.1 0.5.0
Antérieure à 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=v0.5.0   # Example for Config Sync 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 :

    Linux

    Depuis Config Sync 1.5.0 / HNC 0.5.2 :

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

    Dans Config Sync 1.4.2 / HNC 0.5.1 et versions antérieures :

    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
    

    macOS

    macOS n'est disponible que pour Config Sync 1.5.0 / HNC 0.5.2 et versions ultérieures.

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

Vérifier l'installation

  1. Si Hierarchy Controller 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 Hierarchy Controller 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. Vous devez supprimer l'ancre du sous-espace de noms dans l'espace de noms parent :

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

Désinstaller Hierarchy Controller

Pour désinstaller Hierarchy Controller, procédez comme suit :

  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, Hierarchy Controller est désinstallé.

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

Étape suivante