Конфигурация kube-scheduler

Конфигурация kube-scheduler

Добавьте метки на узлы

kubectl label node <nodename> topology.kubernetes.io/zone=A

Создайте глобальные topology spread constraints для приложений

apiVersion: v1
kind: ConfigMap
metadata:
  name: cozystack-scheduling
  namespace: cozy-system
data:
  globalAppTopologySpreadConstraints: |
    topologySpreadConstraints:
    - maxSkew: 1
      topologyKey: topology.kubernetes.io/zone
      whenUnsatisfiable: DoNotSchedule

Настройте PodTopologySpread

См.: https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/#cluster-level-default-constraints

Для установки через Talm добавьте в templates/_helpers.tpl:

cluster:
...
  scheduler:
    config:
      apiVersion: kubescheduler.config.k8s.io/v1beta3
      kind: KubeSchedulerConfiguration
      profiles:
        - schedulerName: default-scheduler
          pluginConfig:
            - name: PodTopologySpread
              args:
                defaultConstraints:
                  - maxSkew: 1
                    topologyKey: topology.kubernetes.io/zone
                    whenUnsatisfiable: ScheduleAnyway
                defaultingType: List

Примените изменения:

talm template -f nodes/node1.yaml -I
talm apply -f nodes/node1.yaml
Last modified 2026-06-29: translate 1.5 (73d3d03)