Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

446
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!