En esta página, se describe cómo personalizar los componentes del sistema propiedad de Google en tus clústeres adjuntos de GKE aplicando tolerancias y etiquetas personalizadas. Cuando personalizas estos componentes, tienes una administración más precisa de dónde y cómo operan estos componentes en tu entorno.
Descripción general
Cuando conectas un clúster a Google Cloud, de forma predeterminada, los componentes del sistema propiedad de Google no incluyen campos personalizables, como las tolerancias. Como resultado, es posible que experimentes problemas, como la imposibilidad de programar Pods en nodos disponibles, lo que afecta la funcionalidad y la vinculación general del clúster. Además, es posible que necesites controlar la colocación y la administración de componentes en nodos específicos, lo que incluye la capacidad de aplicar etiquetas personalizadas para fines organizativos y operativos.
La personalización de los componentes del sistema resuelve estos problemas y te permite tener más control y flexibilidad sobre cómo operan estos componentes en tu clúster. Puedes aplicar tolerancias y etiquetas personalizadas a los componentes del sistema propiedad de Google:
Las tolerancias permiten que los componentes de Google se programen en nodos que tienen taints específicos de Kubernetes, lo que te permite aplicar la separación de cargas de trabajo o usar grupos de nodos especializados. Las tolerancias personalizadas resuelven directamente los problemas en los que las exclusiones no modificables impiden la colocación adecuada de los componentes.
Las etiquetas te ofrecen una forma flexible de categorizar e identificar los componentes del sistema de Google según tus propios estándares operativos. Las etiquetas personalizadas permiten una mejor integración con tus herramientas existentes de supervisión, registro y aplicación de políticas.
Restricciones y limitaciones
Se aplican las siguientes restricciones y limitaciones:
- Solo puedes agregar tolerancias y etiquetas personalizadas cuando registras tu clúster.
- Puedes agregar hasta 10 tolerancias personalizadas y 10 etiquetas personalizadas a tu clúster.
No puedes usar las siguientes etiquetas:
name
component
app
- Cualquier etiqueta que incluya
k8s.io
okubernetes.io
, ya que pertenecen a etiquetas reservadas en Kubernetes - Cualquier etiqueta que incluya
google
- Cualquier etiqueta que incluya
gke.io
Cómo agregar tolerancias personalizadas
Los Pods de componentes del sistema propiedad de Google siempre incluyen la siguiente tolerancia:
- key: components.gke.io/gke-managed-components
operator: Exists
Para especificar tolerancias personalizadas, agrega la marca --system-component-tolerations
al comando gcloud container attached clusters register
:
gcloud container attached clusters register CLUSTER_NAME \
--location=GOOGLE_CLOUD_REGION \
...
--system-component-tolerations=COMPONENT_TOLERATION \
Reemplaza lo siguiente:
- CLUSTER_NAME: El nombre de tu clúster.
- GOOGLE_CLOUD_REGION: Es la Google Cloud región desde la que se administrará el clúster.
COMPONENT_TOLERATION: Es la lista separada por comas de las tolerancias que deseas agregar. Puedes proporcionar una clave, un valor, un operador y un efecto en los siguientes formatos:
- Para el operador
Equal
: Usa el formatokey=value:operator:effect
, por ejemplo,workload=hpc:Equal:NoSchedule
. Este parámetro de configuración significa que el Pod tolera un taint solo si este tiene la clave y el valor exactos deworkload=hpc
. - Para el operador
Exists
: Usa el formatokey:operator:effect
, por ejemplo,workload:Exists:NoSchedule
. Este parámetro de configuración significa que el Pod tolera cualquier taint con la claveworkload
en el nodo, independientemente del valor. - Para programar en cualquier nodo: Usa el formato
:operator:effect
, por ejemplo,:Exists:NoSchedule
. Este parámetro de configuración significa que el Pod tolera cualquier taint en el nodo que tenga el efectoNoSchedule
y que ignora la clave o el valor del taint.
Para obtener una lista de los operadores y efectos que puedes usar, consulta Taints y tolerancias en la documentación de Kubernetes.
- Para el operador
Cómo agregar etiquetas personalizadas
Para especificar etiquetas personalizadas, agrega la marca --system-component-labels
al comando gcloud container attached clusters register
:
gcloud container attached clusters register CLUSTER_NAME \
--location=GOOGLE_CLOUD_REGION \
...
--system-component-labels=COMPONENT_LABEL \
Reemplaza lo siguiente:
- CLUSTER_NAME: El nombre de tu clúster.
- GOOGLE_CLOUD_REGION: Es la Google Cloud región desde la que se administrará el clúster.
- COMPONENT_LABEL: Es la lista separada por comas de una o más etiquetas que deseas agregar. Proporcionas una etiqueta y un valor en el formato
key=value
. Por ejemplo,env=production,region=us-east-1
. Si bien cada etiqueta debe tener una clave, el valor asociado a esa clave puede estar vacío. Por ejemplo,backend=""
¿Qué sigue?
- Obtén más información sobre los taints y las tolerancias en la documentación de Kubernetes.
- Obtén más información para conectar tu clúster de EKS.