Instalar el controlador de jerarquía

En este documento, se muestra cómo instalar y desinstalar el controlador de jerarquía, que extiende los espacios de nombres regulares de Kubernetes para permitir la creación y las políticas jerárquicas sin modificar el repositorio del Sincronizador de configuración.

Antes de comenzar

Necesitas un clúster que ejecute la versión 1.15.x de Google Kubernetes Engine (GKE) o una versión posterior con el Sincronizador de configuración ya instalado.

Habilita el controlador de jerarquía

Sigue estos pasos para configurar el Sincronizador de configuración a fin de habilitar el controlador de jerarquía en el clúster:

  1. En el archivo de configuración del operador, en el objeto spec.hierarchyController, establece el valor de enabled en 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. Aplica la configuración:

      kubectl apply -f config-management.yaml
    

    Se implementan varias cargas de trabajo y, luego, se puede usar el controlador de jerarquía en tu clúster. Esto puede tardar hasta un minuto en completarse.

Instala el complemento de kubectl

Es posible interactuar con el controlador de jerarquía solo a través de herramientas cliente de Kubernetes como kubectl. Sin embargo, el complemento de kubectl de código abierto kubectl-hns simplifica en gran medida varias tareas. Este complemento forma parte del controlador de espacio de nombres jerárquico (HNC), que es un componente del controlador de jerarquía.

La comunidad de OSS distribuye este complemento, que está disponible para Linux y macOS en este momento. Para instalarlo en tu estación de trabajo, consulta las siguientes secciones.

Determina la versión requerida del complemento

Cada versión del Sincronizador de configuración corresponde a una versión del proyecto OSS, como se muestra en la siguiente tabla. Para obtener mejores resultados, asegúrate de que la versión del complemento que descargues coincida con la versión del Sincronizador de configuración.

Versión del Sincronizador de configuración kubectl-hns versión
1.5.0 0.5.2
1.4.2 0.5.1
1.4.1 0.5.0
Pre-1.4.0 N/A

Instala el complemento en tu estación de trabajo

  1. Configura una variable de entorno en la versión de kubectl-hns que se muestra en la tabla anterior. Por ejemplo:

     HNC_VERSION=v0.5.0   # Example for Config Sync 1.4.1
    
  2. Selecciona la ubicación para instalar el complemento. Puede estar en cualquier lugar de tu RUTA DE ACCESO.

     PLUGIN_DIR=~/kubectl-plugins   # Example path
    
  3. Descarga el complemento y haz que sea ejecutable.

    Linux

    Desde Config Sync 1.5.0 / HH v0.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
    

    En Config Sync 1.4.2 / HNC v0.5.1 y versiones anteriores:

    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 solo está disponible para Config Sync 1.5.0 / HNC v0.5.2 y versiones posteriores.

    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
    

Revisa la instalación

  1. Si el controlador de jerarquía está instalado de forma correcta, deberías poder crear subespacios de nombres debajo de un espacio de nombres existente, como se muestra a continuación:

     kubectl hns create sub -n default
    
  2. Si el controlador de jerarquía funciona de forma correcta, deberías poder inspeccionar la jerarquía resultante:

     kubectl hns tree default
    

    Resultado:

     default
      └── sub
    
  3. Limpia el espacio de nombres secundario. Los espacios de nombres secundarios no se pueden borrar directamente. En su lugar, debes borrar el anclaje del subespacio de nombres del espacio de nombres superior:

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

Desinstala el controlador de jerarquía

Para desinstalar el controlador de jerarquía, haz lo siguiente:

  1. En el archivo de configuración del operador, en el objeto spec.hierarchyController, establece el valor de enabled en false.
  2. Después de que el operador quita el finalizador hierarchycontroller.configmanagement.gke.io, se desinstala el controlador de jerarquía.

Si deseas desinstalar completamente el Sincronizador de configuración, consulta Desinstala el operador de un clúster.

¿Qué sigue?