Sobes.tech
Middle

Чӣ гуна бояд подҳоро дар минтақаҳои дастрасӣ баробар тақсим кард?

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 нишон медиҳад, ки тақсимот бояд бар асоси тамғаҳои зонаҳои дастрасии нодҳо сурат гирад.

whenUnsatisfiable: DoNotSchedule маъно дорад, ки агар нақшакаш натавонад маҳдудияти topologySpreadConstraints-ро иҷро кунад, под нақша гирифта намешавад. Варианти дигар ScheduleAnyway аст, ки кӯшиш мекунад, подро нақша гирад, аммо метавонад маҳдудиятро вайрон кунад.

labelSelector маҷмӯи подҳоро муайян мекунад, ки ба онҳо ин маҳдудият татбиқ мешавад.

Барои тақсимоти баробаронаи подҳо дар се зона (масалан, us-east-1a, us-east-1b, us-east-1c) бо 9 нусха, ҳар зона 3 под мегирад.

Ин тақсимот устувории барномаҳоро баланд мебардорад, зеро нобудии як зона ба пурра нодида гирифтани хизматрасонӣ оварда намерасонад.