Kube scheduler configuration
Kube scheduler configuration
Label nodes
kubectl label node <nodename> topology.kubernetes.io/zone=A
Create global app 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
Configure PodTopologySpread
For Talm installation:
Add to 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
Apply changes:
talm template -f nodes/node1.yaml -I
talm apply -f nodes/node1.yaml
Last modified 2025-03-05: add globalAppTopologySpreadConstraints (79b44a3)