Көрсөтүү аймактарында поддорду кандайча бирдей бөлүш керек?
sobes.tech AI
AIден жооп
Под же жайгаштыруу манифестинде topologySpreadConstraints колдонуу.
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
spec:
replicas: 9
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app-container
image: my-app:latest
topologySpreadConstraints:
- maxSkew: 1
topologyKey: topology.kubernetes.io/zone # Таркатууну аныктаган ачкыч (аймак)
whenUnsatisfiable: DoNotSchedule # Эгер таркатуу мүмкүн болбосо, под пландаштырылбайт
labelSelector:
matchLabels:
app: my-app # Бул белгилөө менен поддорго колдонулат
maxSkew ар бир топологиялык доменде (аймакта) орточо көрсөткүчтөн ашкан поддордун максималдуу санын аныктайт. Бул учурда, maxSkew: 1 дегенде, ар бир эки аймактын арасындагы поддордун санынын айырмасы 1ден ашпайт.
topologyKey: topology.kubernetes.io/zone nodдордун аймак белгилерине негизделген таркатууну көрсөтөт.
whenUnsatisfiable: DoNotSchedule планировщик topologySpreadConstraints чектөөсүн аткара албаса, под пландаштырылбайт. Башка вариант — ScheduleAnyway, ал подду пландаштырып, бирок чектөөнү бузушу мүмкүн.
labelSelector бул чектөө колдонулган поддордун топтомун аныктайт.
Үч аймакка (мисалы, us-east-1a, us-east-1b, us-east-1c) 9 реплика менен бирдей таратуу үчүн, ар бир аймакка 3 под келет.
Мындай таратуу колдонмонун ишенимдүүлүгүн жогорулатат, анткени бир аймактын иштебей калышы кызматтын толук жеткиликтүүлүгүн камсыз кылбайт.