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

994
Vistas
¿Cómo administrar la programación de pods en aws EKS?

Tengo un clúster en EKS con el escalador automático de clústeres habilitado. Supongamos que hay 3 nodos, nodo-1, nodo-2, nodo3. Los nodos pueden tener un máximo de 10 pods cada uno. Ahora, cuando aparezca el pod 31, la CA lanzará un nuevo nodo y programará el pod en ese momento. Ahora, tal vez digamos que los 4 pods del nodo 2 no son necesarios y se caen. Ahora, de acuerdo con el requisito, si se lanza un nuevo pod, el planificador coloca el nuevo pod en el cuarto nodo (lanzado por la CA) y no en el segundo nodo. También quiero que baje aún más si los pods se eliminan de los nodos, entonces los nuevos pods deberían entrar en el nodo ya existente y no en un nuevo nodo creado por CA. Intenté actualizar el archivo de configuración del programador predeterminado de EKS usando un complemento del programador, pero no puedo hacerlo.

Creo que podemos crear un segundo programador, pero no estoy al tanto del proceso correctamente. Cualquier solución o sugerencia ayudará mucho.

Este es el comando: "kube-scheduler --config custom.config" y este es el error "intentando adquirir el arrendamiento líder kube-system/kube-scheduler..."

Este es mi archivo custom.config

 apiVersion: kubescheduler.config.k8s.io/v1beta1 clientConnection: kubeconfig: /etc/kubernetes/scheduler.conf kind: KubeSchedulerConfiguration percentageOfNodesToScore: 100 profiles: - schedulerName: kube-scheduler-new plugins: score: disabled: - name: '*' enabled: - name: NodeResourcesMostAllocated
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

¿Cómo administrar la programación de pods?

El programador personalizado es, por supuesto, una forma de hacerlo si tiene un caso de uso específico, pero si solo desea tener un nodo en particular en el que desea programar el pod en Kubernetes, ofrece opciones para hacerlo.

La selección del algoritmo de programación se puede dividir en dos partes:

  • Filtrar la lista de todos los nodos para obtener una lista de nodos aceptables para los que se puede programar el pod.
  • Priorizar los nodos aceptables y elegir el mejor. Si varios nodos tienen la puntuación más alta, se utiliza la rotación por turnos para garantizar que los pods se implementen en todos ellos de manera uniforme.

Kubernetes funciona muy bien si permite que el programador decida a qué nodos debe ir el pod y viene con herramientas que le darán sugerencias al programador:

  • Las corrupciones y tolerancias se pueden usar para repeler algunos pods del nodo. Esto es muy útil si desea particionar su clúster y permitir que ciertas personas programen en algunos nodos específicos. También se puede usar cuando tiene algunos nodos de hardware y algún pod lo requiere (como en su pregunta donde desea que se programe un pod en el nodo 2). Vienen con 3 efectos:
  1. NoSchedule lo que significa que no habrá programación
  2. PreferNoSchedule , lo que significa que el programador intentará evitar la programación
  3. NoExecute también afecta la programación y afecta a los pods que ya se están ejecutando en el nodo. SI agrega esta contaminación al nodo, los pods que se ejecutan en el nodo y no lo toleran serán desalojados.
  • La afinidad de nodos en el otro lado se puede usar para atraer ciertos pods a nodos específicos. Similar a la afinidad del nodo tains, me da algunas opciones para ajustar sus preferencias de programación:

    1. requiredDuringSchedulingIgnoredDuringExecution , que se puede usar como requisito estricto e indicar al programador que se deben cumplir las reglas para que el pod se programe en el nodo.
    2. preferredDuringSchedulingIgnoredDuringExecution , que se puede usar como requisito flexible y decirle al programador que intente aplicarlo, pero no tiene que estar garantizado.
  • PodAffinity se puede usar si, por ejemplo, desea que sus pods front-end se ejecuten en el mismo nodo que su pod de base de datos. Esto puede describirse de manera similar como requisito duro o blando, respectivamente.

  • podAntiAffinity se puede usar si no desea que algún pod determinado se ejecute entre sí.

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