Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

444
Vistas
Kubernetes: ¿Cómo garantizar que se programe un pod en cada nodo trabajador?

Objetivo: tener un pod (a saber, 'log-scraper') programado en cada nodo al menos una vez pero no más de una vez

Suponga que un clúster tiene los siguientes nodos

Nodos

  1. maestro/plano de control
  2. trabajador-1
  3. trabajador-2
  4. trabajador-2

Pod con el que estoy trabajando

 apiVersion: v1 kind: Pod metadata: name: log-scraper spec: volumes: - name: container-log-dir hostPath: path: /var/log/containers containers: - image: "logScraper:latest" name: log-munger volumeMounts: - name: container-log-dir mountPath: /var/log/logging-app

Agregar afinidad para seleccionar solo nodos 'trabajadores' (o nodos no maternos)

 affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: "worker" operator: In values: - "true"

Pregunta 1: ¿Cómo me aseguro de que cada node ejecute UNO Y SOLO UN pod de tipo log-scraper

Pregunta 2: ¿Qué otros manifiestos se deben aplicar/agregar para lograr esto?

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Probablemente debería usar Daemonsets que están hechos exactamente para este propósito de programar un pod por nodo y se agregan automáticamente a nuevos nodos en caso de escalado automático del clúster.

over 4 years ago · Santiago Trujillo Denunciar

0

Concepto

Hay dos cosas importantes cuando se trata de asignar pods a nodos: "Afinidad" y "AntiAfinidad" .

  • La afinidad básicamente seleccionará según los criterios dados, mientras que la anti-afinidad evitará según los criterios dados.
  • Con Affinity y Anti-affinity, puede usar operadores como In , NotIn , Exist , DoesNotExist , Gt y Lt . Cuando usa NotIn y DoesNotExist , se vuelve antiafinidad.

Ahora, en Affinity/Antiaffinity, tiene 2 opciones: Node affinity/antiaffinity y Inter-pod affinity/antiaffinity

Nodo de afinidad/antiafinidad

La afinidad de nodos es conceptualmente similar a nodeSelector: le permite restringir en qué nodos es elegible para programar su pod, según las etiquetas en el nodo.

Afinidad/antiafinidad entre pods

La afinidad y la antiafinidad entre pods le permiten restringir qué nodos es apto para programar su pod según las etiquetas de los pods que ya se están ejecutando en el nodo en lugar de según las etiquetas de los nodos.

Tu solución

Básicamente lo que necesitas es "Antiafinidad" y en ese "Pod antiafinidad" en lugar de Node. Por lo tanto, su solución debería parecerse a la siguiente (tenga en cuenta que, dado que no tengo un clúster de 3 nodos, no pude probar esto, por lo que hay pocas posibilidades de que tenga que hacer un ajuste de código menor):
 affinity: podAntiAffinity: requiredDuringSchedulingIgnoredDuringExecution: labelSelector: - matchExpressions: - key: worker operator: In values: - log-scraper

Lea más aquí , y especialmente vea el ejemplo aquí .

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda