Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Centro de ayuda> Cloud Container Engine> Preguntas frecuentes> Carga de trabajo> Políticas de planificación> ¿Cómo distribuyo uniformemente varios pods a cada nodo?
Actualización más reciente 2023-08-08 GMT+08:00

¿Cómo distribuyo uniformemente varios pods a cada nodo?

El componente kube-scheduler en Kubernetes es la programación responsable de pods. Para cada pod recién creado u otros pods no programados, kube-scheduler selecciona un nodo óptimo de ellos para ejecutarse. kube-scheduler selecciona un nodo para un pod en una operación de 2 pasos: filtrado y puntuación. En la etapa de filtrado, todos los nodos en los que es factible programar el pod son filtrados. En la etapa de puntuación, kube-scheduler clasifica los nodos restantes para elegir la colocación de cápsulas más adecuada. Finalmente, kube-scheduler programa el pod al nodo con la puntuación más alta. Si hay más de un nodo con las puntuaciones iguales, kube-scheduler selecciona uno de ellos al azar.

BalancedResourceAllocation es solo una de las prioridades de puntuación. Otros elementos de puntuación también pueden causar una distribución desigual. Para obtener más información sobre la programación, consulte Kubernetes Scheduler y Políticas de programación.

Puede configurar las políticas de antiafinidad de pods para distribuir los pods de manera uniforme en diferentes nodos.

Por ejemplo:

kind: Deployment
apiVersion: apps/v1
metadata:
  name: nginx
  namespace: default
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
        - name: container-0
          image: nginx:alpine
          resources:
            limits:
              cpu: 250m
              memory: 512Mi
            requests:
              cpu: 250m
              memory: 512Mi
      affinity:
        podAntiAffinity:                   # Workload anti-affinity
          preferredDuringSchedulingIgnoredDuringExecution:    # Ensure that the following conditions are met:
            - podAffinityTerm:
                labelSelector:                       # Select the label of the pod, which is anti-affinity with the workload.
                  matchExpressions:
                    - key: app
                      operator: In
                      values:
                        - nginx
                namespaces:
                  - default
                topologyKey: kubernetes.io/hostname     # It takes effect on the node.
      imagePullSecrets:
        - name: default-secret

Políticas de planificación Preguntas frecuentes

more