Instala el controlador de jerarquías.
El controlador de jerarquía te permite organizar espacios de nombres de Kubernetes en jerarquías y aplicarles políticas (como RBAC y cuotas de recursos jerárquicos), y observar las cargas de trabajo desde espacios de nombres relacionados.
En esta página, se muestra cómo instalar, configurar y desinstalar el controlador de jerarquía.
Antes de comenzar
Antes de comenzar, asegúrate de haber realizado las siguientes tareas:
Instala e inicializa Google Cloud CLI, que proporciona los comandos
gcloud
ykubectl
que se usan en estas instrucciones. Si usas Cloud Shell, Google Cloud CLI viene preinstalada.Debes tener un clúster que ejecute una versión de Kubernetes 1.16.x o posterior
El controlador de jerarquía está diseñado para funcionar estrechamente con el sincronizador de configuración que te permite administrar tus espacios de nombres y políticas jerárquicas a través de un repositorio de Git. Si decides hacerlo, te recomendamos que selecciones un repositorio no estructurado cuando instales el sincronizador de configuración, lo que te permite organizar el repositorio de la manera que desees y conserve los beneficios de las políticas jerárquicas. Por el contrario, un repositorio jerárquico puede entrar en conflicto con el controlador de jerarquías, por lo que no es recomendable usar ambos.
Como alternativa, puedes instalar el controlador de jerarquía sin configurar un repositorio del sincronizador de configuración. Los espacios de nombres jerárquicos se pueden definir por completo en el clúster a través de la API de Kubernetes. Si no planeas usar Git, no necesitas otorgar acceso al operador a Git ni configurarlo de ninguna manera, excepto como se describe en la siguiente sección.
Habilita el controlador de jerarquía
Sigue estos pasos para configurar Anthos Config Management a fin de instalar el controlador de jerarquía.
gcloud
Sigue estos pasos para configurar Anthos Config Management a fin de instalar el controlador de jerarquía, incluidos todos los componentes opcionales. Si no deseas habilitar la observabilidad jerárquica o las cuotas de recursos jerárquicas, marca como comentario en las líneas indicadas.
Si usas clústeres privados, agrega reglas de firewall a los proyectos de cada clúster a fin de permitir que los planos de control de clúster de GKE para conectarte a los webhooks del controlador de jerarquía en el puerto
9443
(opcional):gcloud compute firewall-rules create allow-cluster-control-plane-tcp-9443 \ --allow tcp:9443 \ --network default \ --source-ranges CONTROL_PLANE_CIDR \ --target-tags NODE_TAG
Reemplaza lo siguiente:
CONTROL_PLANE_CIDR
: El rango de IP para el plano de control del clúster de GKE. Por ejemplo,172.16.0.16/28
NODE_TAG
: La etiqueta que se aplica a todos los nodos de tu clúster de GKE.
Establece los siguientes valores en el objeto
spec.hierarchyController
entrue
en el archivo de configuración de gcloud:# apply-spec.yaml applySpecVersion: 1 spec: hierarchyController: # Set to true to enable hierarchical namespaces enabled: true # Comment to disable hierarchical quota: enableHierarchicalResourceQuota: true # Comment to disable hierarchical observability: enablePodTreeLabels: true # ...other fields...
Aplica el archivo
apply-spec.yaml
:gcloud beta container fleet config-management apply \ --membership=CLUSTER_NAME \ --config=CONFIG_YAML \ --project=PROJECT_ID
Reemplaza lo siguiente:
- CLUSTER_NAME: Agrega el clúster registrado al que deseas aplicar esta configuración.
- CONFIG_YAML: Agrega la ruta de acceso a tu archivo
apply-spec.yaml
. - PROJECT_ID: Agrega ID de tu proyecto.
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.
kubectl
Sigue estos pasos para configurar Anthos Config Management a fin de instalar el controlador de jerarquía, incluidos todos los componentes opcionales. Si no deseas habilitar la observabilidad jerárquica o las cuotas de recursos jerárquicas, comenta en las líneas indicadas.
Si usas clústeres privados, agrega reglas de firewall a los proyectos de cada clúster a fin de permitir que los planos de control de clúster de GKE para conectarte a los webhooks del controlador de jerarquía en el puerto
9443
(opcional):gcloud compute firewall-rules create allow-cluster-control-plane-tcp-9443 \ --allow tcp:9443 \ --network default \ --source-ranges CONTROL_PLANE_CIDR \ --target-tags NODE_TAG
Reemplaza lo siguiente:
CONTROL_PLANE_CIDR
: El rango de IP para el plano de control del clúster de GKE. Por ejemplo,172.16.0.16/28
NODE_TAG
: La etiqueta que se aplica a todos los nodos de tu clúster de GKE.
En el archivo de configuración del operador, en el objeto
spec.hierarchyController
, establece el valor deenabled
entrue
:# 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 # Comment to disable hierarhical quota: enableHierarchicalResourceQuota: true # Comment to disable hierarchical observability: enablePodTreeLabels: true # ...other fields...
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 Instala el complemento kubectl
en la documentación de sincronizador de configuración.
Verifique la instalación
Después de instalar el controlador de jerarquía, puedes verificar que la instalación se haya completado de forma correcta.
gcloud
Ejecuta el siguiente comando:
gcloud beta container fleet config-management status \
--project=PROJECT_ID
Reemplaza PROJECT_ID
por el ID del proyecto.
Deberías ver un resultado similar al siguiente:
Name ...other columns... Hierarchy_Controller
CLUSTER_NAME ...other fields ... INSTALLED
Si la instalación se realiza correctamente, tendrá el estado INSTALLED
en la columna Hierarchy_Controller
. El estado puede tardar varios minutos en aparecer después de habilitar el controlador de jerarquía.
kubectl
Si el controlador de jerarquía está instalado de forma correcta, sus Pods se ejecutarán. Los Pods pueden reiniciarse varias veces antes de que estén disponibles.
Dado que los Pods del controlador de jerarquía se ejecutan en el espacio de nombres hnc-system
, puedes ver su estado si ejecutas el siguiente comando:
kubectl get pods -n hnc-system
Deberías ver un resultado similar al siguiente:
NAME READY STATUS RESTARTS AGE gke-hc-controller-manager-6f4dbb484d-t8tdm 2/2 Running 1 1m hnc-controller-manager-7b75655894-tzqvx 2/2 Running 1 1m
Actualiza el controlador de jerarquía
El controlador de jerarquía se actualiza cada vez que actualizas Anthos Config Management. Para obtener más información, consulta Actualiza Anthos Config Management.
Desinstala el controlador de jerarquía
Sigue estos pasos para desinstalar el controlador de jerarquía de tus clústeres.
gcloud
Para desinstalar el controlador de jerarquías, haz lo siguiente:
Edita la configuración del controlador de jerarquía en el archivo
apply-spec.yaml
y configurahierarchyController.enabled
comofalse
.Aplica los cambios en el archivo
apply-spec.yaml
como sigue:gcloud beta container fleet config-management apply \ --membership=CLUSTER_NAME \ --config=CONFIG_YAML \ --project=PROJECT_ID
Reemplaza lo siguiente:
- CLUSTER_NAME: Agrega el clúster registrado al que deseas aplicar esta configuración.
- CONFIG_YAML: Agrega la ruta de acceso a tu archivo
apply-spec.yaml
. - PROJECT_ID: Agrega ID de tu proyecto.
Una vez que el controlador de jerarquía quita el finalizador hierarchycontroller.configmanagement.gke.io
, se completa la desinstalación.
kubectl
Para desinstalar el controlador de jerarquía, edita la configuración de Anthos Config Management en el archivo config-management.yaml
y configura hierarchyController.enabled
como false
. Después de que Anthos Config Management quita el finalizador hierarchycontroller.configmanagement.gke.io
, se completa la desinstalación.
Si deseas desinstalar Anthos Config Management por completo, consulta Desinstala Anthos Config Management de un clúster.
¿Qué sigue?
- Más información sobre el controlador de jerarquía
- Aplica de cuotas de recursos jerárquicos
- Observa cargas de trabajo jerárquicas
- Explora las características básicas de los espacios de nombres jerárquicos
- Explora funciones avanzadas de espacios de nombres jerárquicos