|
Este documento ha sido traducido utilizando tecnología de traducción automática. Si bien nos esforzamos por proporcionar traducciones precisas, no ofrecemos garantías sobre la integridad, precisión o confiabilidad del contenido traducido. En caso de discrepancia, la versión original en inglés prevalecerá y constituirá el texto autorizado. |
Trabajando con Taints y Tolerations
"Tainting" un nodo de Kubernetes hace que los pods eviten ejecutarse en ese nodo.
A menos que los pods tengan un toleration para el taint de ese nodo, se ejecutarán en otros nodos del clúster.
Taints and tolerations pueden funcionar en conjunto con el nodeSelector campo dentro del PodSpec, lo que permite el efecto opuesto de un taint.
Usar nodeSelector otorga a los pods una afinidad hacia ciertos nodos.
Ambos proporcionan elección sobre en qué nodo(s) se ejecutará el pod.
Implementación por defecto en el Stack de Logging de Rancher
Por defecto, Rancher aplica un taint a todos los nodos Linux con cattle.io/os=linux, y no aplica ninguno a los nodos Windows.
Los pods del stack de logging tienen tolerations para este taint, lo que les permite ejecutarse en nodos Linux.
Además, la mayoría de los pods del stack de logging se ejecutan solo en Linux y tienen un nodeSelector añadido para asegurar que se ejecuten en nodos Linux.
Este archivo YAML de ejemplo de Pod muestra un nodeSelector siendo utilizado con una toleration:
apiVersion: v1
kind: Pod
# metadata...
spec:
# containers...
tolerations:
- key: cattle.io/os
operator: "Equal"
value: "linux"
effect: NoSchedule
nodeSelector:
kubernetes.io/os: linux
En el ejemplo anterior, aseguramos que nuestro pod solo se ejecute en nodos Linux, y añadimos un toleration para el taint que tenemos en todos nuestros nodos Linux.
Puedes hacer lo mismo con los taints existentes de Rancher, o con los tuyos propios personalizados.
Añadiendo configuraciones de NodeSelector y toleraciones para taints personalizados
Si deseas añadir tus propios ajustes de nodeSelector, o si deseas añadir tolerations para taints adicionales, puedes pasar lo siguiente a los valores del chart.
tolerations:
# insert tolerations...
nodeSelector:
# insert nodeSelector...
Estos valores añadirán ambos ajustes a los contenedores fluentd, fluentbit y logging-operator.
Esencialmente, estos son ajustes globales para todos los pods en el stack de logging.
Sin embargo, si deseas añadir tolerations para solo el contenedor fluentbit, puedes añadir lo siguiente a los valores del chart.
fluentbit_tolerations:
# insert tolerations list for fluentbit containers only...