เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ: เชธเชฟเชธเซเชŸเชฎ เชฐเชฟเชธเซ‹เชฐเซเชธ เชฎเซ‡เชจเซ‡เชœเชฎเซ‡เชจเซเชŸเชจเซ‡ เช—เซ‹เช เชตเชตเซเช‚ เชถเชพ เชฎเชพเชŸเซ‡ เชเชŸเชฒเซเช‚ เชฎเชนเชคเซเชตเชชเซ‚เชฐเซเชฃ เช›เซ‡?

เชเช• เชจเชฟเชฏเชฎ เชคเชฐเซ€เช•เซ‡, เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชจเซ‡ เชคเซ‡เชจเซ€ เชธเชพเชšเซ€ เช…เชจเซ‡ เชธเซเชฅเชฟเชฐ เช•เชพเชฎเช—เซ€เชฐเซ€ เชฎเชพเชŸเซ‡ เชนเช‚เชฎเซ‡เชถเชพ เชธเช‚เชธเชพเชงเชจเซ‹เชจเซ‹ เชธเชฎเชฐเซเชชเชฟเชค เชชเซ‚เชฒ เชชเซเชฐเชฆเชพเชจ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เชชเชฐเช‚เชคเซ เชœเซ‹ เชเช• เชœ เชชเชพเชตเชฐ เชชเชฐ เช˜เชฃเซ€ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเซ‹ เชšเชพเชฒเซ€ เชฐเชนเซ€ เชนเซ‹เชฏ เชคเซ‹ เชถเซเช‚? เชคเซ‡เชฎเชพเช‚เชจเชพ เชฆเชฐเซ‡เช•เชจเซ‡ เชจเซเชฏเซ‚เชจเชคเชฎ เชœเชฐเซ‚เชฐเซ€ เชธเช‚เชธเชพเชงเชจเซ‹ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชชเซเชฐเชฆเชพเชจ เช•เชฐเชตเชพ? เชคเชฎเซ‡ เชธเช‚เชธเชพเชงเชจ เชตเชชเชฐเชพเชถเชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชฎเชฐเซเชฏเชพเชฆเชฟเชค เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹? เชจเซ‹เชกเซเชธ เชตเชšเซเชšเซ‡เชจเชพ เชญเชพเชฐเชจเซ‡ เชฏเซ‹เช—เซเชฏ เชฐเซ€เชคเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชตเชฟเชคเชฐเชฟเชค เช•เชฐเชตเซเช‚? เชœเซ‹ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชฒเซ‹เชก เชตเชงเซ‡ เชคเซ‹ เชนเซ‹เชฐเซ€เชเซ‹เชจเซเชŸเชฒ เชธเซเช•เซ‡เชฒเชฟเช‚เช— เชฎเชฟเช•เซ‡เชจเชฟเชเชฎ เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡ เชคเซ‡เชจเซ€ เช–เชพเชคเชฐเซ€ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช•เชฐเชตเซ€?

เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ: เชธเชฟเชธเซเชŸเชฎ เชฐเชฟเชธเซ‹เชฐเซเชธ เชฎเซ‡เชจเซ‡เชœเชฎเซ‡เชจเซเชŸเชจเซ‡ เช—เซ‹เช เชตเชตเซเช‚ เชถเชพ เชฎเชพเชŸเซ‡ เชเชŸเชฒเซเช‚ เชฎเชนเชคเซเชตเชชเซ‚เชฐเซเชฃ เช›เซ‡?

เชคเชฎเชพเชฐเซ‡ เชธเชฟเชธเซเชŸเชฎเชฎเชพเช‚ เช•เชฏเชพ เชฎเซเช–เซเชฏ เชชเซเชฐเช•เชพเชฐเชจเชพเช‚ เชธเช‚เชธเชพเชงเชจเซ‹ เช…เชธเซเชคเชฟเชคเซเชตเชฎเชพเช‚ เช›เซ‡ เชคเซ‡เชจเซ€ เชธเชพเชฅเซ‡ เชชเซเชฐเชพเชฐเช‚เชญ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ - เช†, เช…เชฒเชฌเชคเซเชค, เชชเซเชฐเซ‹เชธเซ‡เชธเชฐ เชธเชฎเชฏ เช…เชจเซ‡ เชฐเซ‡เชฎ เช›เซ‡. k8s เชฎเชพเช‚ เช† เชธเช‚เชธเชพเชงเชจ เชชเซเชฐเช•เชพเชฐเซ‹ เชจเซ€เชšเซ‡เชจเชพ เชเช•เชฎเซ‹เชฎเชพเช‚ เชฎเชพเชชเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡:

  • เชธเซ€เชชเซ€เชฏเซ - เช•เซ‹เชฐเซ‹เชฎเชพเช‚
  • เชฐเซ‡เชฎ - เชฌเชพเช‡เชŸเซเชธเชฎเชพเช‚

เชคเชฆเซเชชเชฐเชพเช‚เชค, เชฆเชฐเซ‡เช• เชธเช‚เชธเชพเชงเชจ เชฎเชพเชŸเซ‡ เชฌเซ‡ เชชเซเชฐเช•เชพเชฐเชจเซ€ เช†เชตเชถเซเชฏเช•เชคเชพเช“ เชธเซ‡เชŸ เช•เชฐเชตเซ€ เชถเช•เซเชฏ เช›เซ‡ - เชตเชฟเชจเช‚เชคเซ€เช“ ะธ เชฎเชฐเซเชฏเชพเชฆเชพ. เชตเชฟเชจเช‚เชคเซ€เช“ - เช•เชจเซเชŸเซ‡เชจเชฐ (เช…เชจเซ‡ เชเช•เช‚เชฆเชฐเซ‡ เชชเซ‹เชก) เชšเชฒเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เชจเซ‹เชกเชจเชพ เชฎเชซเชค เชธเช‚เชธเชพเชงเชจเซ‹ เชฎเชพเชŸเซ‡เชจเซ€ เชจเซเชฏเซ‚เชจเชคเชฎ เช†เชตเชถเซเชฏเช•เชคเชพเช“เชจเซเช‚ เชตเชฐเซเชฃเชจ เช•เชฐเซ‡ เช›เซ‡, เชœเซเชฏเชพเชฐเซ‡ เชฎเชฐเซเชฏเชพเชฆเชพ เช•เชจเซเชŸเซ‡เชจเชฐ เชฎเชพเชŸเซ‡ เช‰เชชเชฒเชฌเซเชง เชธเช‚เชธเชพเชงเชจเซ‹ เชชเชฐ เชธเช–เชค เชฎเชฐเซเชฏเชพเชฆเชพ เชธเซ‡เชŸ เช•เชฐเซ‡ เช›เซ‡.

เชคเซ‡ เชธเชฎเชœเชตเซเช‚ เช…เช—เชคเซเชฏเชจเซเช‚ เช›เซ‡ เช•เซ‡ เชฎเซ‡เชจเชฟเชซเซ‡เชธเซเชŸเชฎเชพเช‚ เชฌเช‚เชจเซ‡ เชชเซเชฐเช•เชพเชฐเซ‹เชจเซ‡ เชธเซเชชเชทเซเชŸเชชเชฃเซ‡ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชจเชฅเซ€, เชชเชฐเช‚เชคเซ เชตเชฐเซเชคเชจ เชจเซ€เชšเซ‡ เชฎเซเชœเชฌ เชนเชถเซ‡:

  • เชœเซ‹ เชธเช‚เชธเชพเชงเชจเชจเซ€ เชฎเชพเชคเซเชฐ เชฎเชฐเซเชฏเชพเชฆเชพเช“ เชธเซเชชเชทเซเชŸเชชเชฃเซ‡ เชจเชฟเชฐเซเชฆเชฟเชทเซเชŸ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชนเซ‹เชฏ, เชคเซ‹ เชชเช›เซ€ เช† เชธเช‚เชธเชพเชงเชจ เชฎเชพเชŸเซ‡เชจเซ€ เชตเชฟเชจเช‚เชคเซ€เช“ เช†เชชเชฎเซ‡เชณเซ‡ เชฎเชฐเซเชฏเชพเชฆเชพเชจเซ€ เชฌเชฐเชพเชฌเชฐ เชฎเซ‚เชฒเซเชฏ เชฒเซ‡ เช›เซ‡ (เชคเชฎเซ‡ เชตเชฐเซเชฃเชจ เช•เชฐเชคเซ€ เชธเช‚เชธเซเชฅเชพเช“เชจเซ‡ เช•เซ‰เชฒ เช•เชฐเซ€เชจเซ‡ เช†เชจเซ‡ เชšเช•เชพเชธเซ€ เชถเช•เซ‹ เช›เซ‹). เชคเซ‡. เชนเช•เซ€เช•เชคเชฎเชพเช‚, เช•เชจเซเชŸเซ‡เชจเชฐ เชคเซ‡เชจเซ‡ เชšเชฒเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เชœเชฐเซ‚เชฐเซ€ เชธเช‚เชธเชพเชงเชจเซ‹เชจเซ€ เชธเชฎเชพเชจ เชฐเช•เชฎ เชธเซเชงเซ€ เชฎเชฐเซเชฏเชพเชฆเชฟเชค เชนเชถเซ‡.
  • เชœเซ‹ เชธเช‚เชธเชพเชงเชจ เชฎเชพเชŸเซ‡ เชฎเชพเชคเซเชฐ เชตเชฟเชจเช‚เชคเซ€เช“ เชธเซเชชเชทเซเชŸเชชเชฃเซ‡ เช‰เชฒเซเชฒเซ‡เช–เชฟเชค เชนเซ‹เชฏ, เชคเซ‹ เชชเช›เซ€ เช† เชธเช‚เชธเชพเชงเชจ เชชเชฐ เช•เซ‹เชˆ เช‰เชชเชฒเชพ เชชเซเชฐเชคเชฟเชฌเช‚เชงเซ‹ เชธเซ‡เชŸ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชคเชพ เชจเชฅเซ€ - เชเชŸเชฒเซ‡ เช•เซ‡. เช•เชจเซเชŸเซ‡เชจเชฐ เชซเช•เซเชค เชจเซ‹เชกเชจเชพ เชธเช‚เชธเชพเชงเชจเซ‹ เชฆเซเชตเชพเชฐเชพ เชฎเชฐเซเชฏเชพเชฆเชฟเชค เช›เซ‡.

เชธเช‚เชธเชพเชงเชจ เชธเช‚เชšเชพเชฒเชจเชจเซ‡ เชฎเชพเชคเซเชฐ เชšเซ‹เช•เซเช•เชธ เช•เชจเซเชŸเซ‡เชจเชฐเชจเชพ เชธเซเชคเชฐเซ‡ เชœ เชจเชนเซ€เช‚, เชชเชฃ เชจเซ€เชšเซ‡เชจเซ€ เชธเช‚เชธเซเชฅเชพเช“เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชจเซ‡เชฎเชธเซเชชเซ‡เชธ เชธเซเชคเชฐเซ‡ เชชเชฃ เช—เซ‹เช เชตเชตเชพเชจเซเช‚ เชถเช•เซเชฏ เช›เซ‡:

  • เชฒเชฟเชฎเชฟเชŸเชฐเซ‡เชจเซเชœ โ€” ns เชฎเชพเช‚ เช•เชจเซเชŸเซ‡เชจเชฐ/เชชเซ‹เชก เชธเซเชคเชฐ เชชเชฐ เชชเซเชฐเชคเชฟเชฌเช‚เชง เชจเซ€เชคเชฟเชจเซเช‚ เชตเชฐเซเชฃเชจ เช•เชฐเซ‡ เช›เซ‡ เช…เชจเซ‡ เช•เชจเซเชŸเซ‡เชจเชฐ/เชชเซ‹เชก เชชเชฐเชจเซ€ เชกเชฟเชซเซ‰เชฒเซเชŸ เชฎเชฐเซเชฏเชพเชฆเชพเช“เชจเซเช‚ เชตเชฐเซเชฃเชจ เช•เชฐเชตเชพ เชคเซ‡เชฎเชœ เชฆเซ‡เช–เซ€เชคเซ€ เชฐเซ€เชคเซ‡ เชšเชฐเชฌเซ€เชฏเซเช•เซเชค เช•เชจเซเชŸเซ‡เชจเชฐ/เชชเซ‹เชกเซเชธ (เช…เชฅเชตเชพ เชคเซ‡เชจเชพเชฅเซ€ เชตเชฟเชชเชฐเซ€เชค) เชจเซ€ เชฐเชšเชจเชพ เช…เชŸเช•เชพเชตเชตเชพ เชฎเชพเชŸเซ‡, เชคเซ‡เชฎเชจเซ€ เชธเช‚เช–เซเชฏเชพ เชฎเชฐเซเชฏเชพเชฆเชฟเชค เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชœเชฐเซ‚เชฐเซ€ เช›เซ‡. เช…เชจเซ‡ เชฎเชฐเซเชฏเชพเชฆเชพเช“ เช…เชจเซ‡ เชตเชฟเชจเช‚เชคเซ€เช“เชฎเชพเช‚ เชฎเซ‚เชฒเซเชฏเซ‹เชฎเชพเช‚ เชธเช‚เชญเชตเชฟเชค เชคเชซเชพเชตเชค เชจเช•เซเช•เซ€ เช•เชฐเซ‹
  • เชฐเชฟเชธเซ‹เชฐเซเชธเช•เซเชตเซ‹เชŸเชพ - เชเชจเชเชธเชฎเชพเช‚เชจเชพ เชคเชฎเชพเชฎ เช•เชจเซเชŸเซ‡เชจเชฐ เชฎเชพเชŸเซ‡ เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡ เชชเซเชฐเชคเชฟเชฌเช‚เชง เชจเซ€เชคเชฟเชจเซเช‚ เชตเชฐเซเชฃเชจ เช•เชฐเซ‹ เช…เชจเซ‡ เชคเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช—, เชเช• เชจเชฟเชฏเชฎ เชคเชฐเซ€เช•เซ‡, เชชเชฐเซเชฏเชพเชตเชฐเชฃเซ‹ เชตเชšเซเชšเซ‡ เชธเช‚เชธเชพเชงเชจเซ‹เชจเซ‡ เชธเซ€เชฎเชฟเชค เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชฅเชพเชฏ เช›เซ‡ (เชœเซเชฏเชพเชฐเซ‡ เชชเชฐเซเชฏเชพเชตเชฐเชฃเซ‹เชจเซ‡ เชจเซ‹เชก เชธเซเชคเชฐเซ‡ เชธเช–เชค เชฐเซ€เชคเซ‡ เชธเซ€เชฎเชพเช‚เช•เชจ เชจ เชนเซ‹เชฏ เชคเซเชฏเชพเชฐเซ‡ เช‰เชชเชฏเซ‹เช—เซ€)

เชจเซ€เชšเซ‡เชจเชพ เชฎเซ‡เชจเชฟเชซเซ‡เชธเซเชŸเชจเชพ เช‰เชฆเชพเชนเชฐเชฃเซ‹ เช›เซ‡ เชœเซ‡ เชธเช‚เชธเชพเชงเชจ เชฎเชฐเซเชฏเชพเชฆเชพ เชธเซ‡เชŸ เช•เชฐเซ‡ เช›เซ‡:

  • เชšเซ‹เช•เซเช•เชธ เช•เชจเซเชŸเซ‡เชจเชฐ เชธเซเชคเชฐ เชชเชฐ:

    containers:
    - name: app-nginx
      image: nginx
      resources:
        requests:
          memory: 1Gi
        limits:
          cpu: 200m

    เชคเซ‡. เช† เช•เชฟเชธเซเชธเชพเชฎเชพเช‚, nginx เชธเชพเชฅเซ‡ เช•เชจเซเชŸเซ‡เชจเชฐ เชšเชฒเชพเชตเชตเชพ เชฎเชพเชŸเซ‡, เชคเชฎเชพเชฐเซ‡ เชจเซ‹เชก เชชเชฐ เช“เช›เชพเชฎเชพเช‚ เช“เช›เซ€ 1G เชซเซเชฐเซ€ RAM เช…เชจเซ‡ 0.2 CPUเชจเซ€ เชœเชฐเซ‚เชฐ เชชเชกเชถเซ‡, เชœเซเชฏเชพเชฐเซ‡ เชตเชงเซเชฎเชพเช‚ เชตเชงเซ เช•เชจเซเชŸเซ‡เชจเชฐ 0.2 CPU เช…เชจเซ‡ เชจเซ‹เชก เชชเชฐ เช‰เชชเชฒเชฌเซเชง เชคเชฎเชพเชฎ RAM เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡.

  • เชชเซ‚เชฐเซเชฃเชพเช‚เช• เชธเซเชคเชฐเซ‡ ns:

    apiVersion: v1
    kind: ResourceQuota
    metadata:
      name: nxs-test
    spec:
      hard:
        requests.cpu: 300m
        requests.memory: 1Gi
        limits.cpu: 700m
        limits.memory: 2Gi

    เชคเซ‡. เชกเชฟเชซเซ‰เชฒเซเชŸ เชเชจเชเชธเชฎเชพเช‚ เชคเชฎเชพเชฎ เชตเชฟเชจเช‚เชคเซ€ เช•เชจเซเชŸเซ‡เชจเชฐเชจเซ‹ เชธเชฐเชตเชพเชณเซ‹ CPU เชฎเชพเชŸเซ‡ 300m เช…เชจเซ‡ OP เชฎเชพเชŸเซ‡ 1G เช•เชฐเชคเชพเช‚ เชตเชงเซ เชจ เชนเซ‹เชˆ เชถเช•เซ‡ เช…เชจเซ‡ เชคเชฎเชพเชฎ เชฎเชฐเซเชฏเชพเชฆเชพเชจเซ‹ เชธเชฐเชตเชพเชณเซ‹ CPU เชฎเชพเชŸเซ‡ 700m เช…เชจเซ‡ OP เชฎเชพเชŸเซ‡ 2G เช›เซ‡.

  • เชเชจเชเชธเชฎเชพเช‚ เช•เชจเซเชŸเซ‡เชจเชฐ เชฎเชพเชŸเซ‡ เชกเชฟเชซเซ‰เชฒเซเชŸ เชฎเชฐเซเชฏเชพเชฆเชพ:

    apiVersion: v1
    kind: LimitRange
    metadata:
      name: nxs-limit-per-container
    spec:
     limits:
       - type: Container
         defaultRequest:
           cpu: 100m
           memory: 1Gi
         default:
           cpu: 1
           memory: 2Gi
         min:
           cpu: 50m
           memory: 500Mi
         max:
           cpu: 2
           memory: 4Gi

    เชคเซ‡. เชฌเชงเชพ เช•เชจเซเชŸเซ‡เชจเชฐ เชฎเชพเชŸเซ‡ เชกเชฟเชซเซ‹เชฒเซเชŸ เชจเซ‡เชฎเชธเซเชชเซ‡เชธเชฎเชพเช‚, เชตเชฟเชจเช‚เชคเซ€ CPU เชฎเชพเชŸเซ‡ 100m เช…เชจเซ‡ OP เชฎเชพเชŸเซ‡ 1G, เชฎเชฐเซเชฏเชพเชฆเชพ - 1 CPU เช…เชจเซ‡ 2G เชชเชฐ เชธเซ‡เชŸ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡. เชคเซ‡ เชœ เชธเชฎเชฏเซ‡, CPU (50m < x < 2) เช…เชจเซ‡ RAM (500M < x < 4G) เชฎเชพเชŸเซ‡ เชตเชฟเชจเช‚เชคเซ€/เชฎเชฐเซเชฏเชพเชฆเชพเชฎเชพเช‚ เชธเช‚เชญเชตเชฟเชค เชฎเซ‚เชฒเซเชฏเซ‹ เชชเชฐ เชชเชฃ เชฎเชฐเซเชฏเชพเชฆเชพ เชธเซ‡เชŸ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡.

  • เชชเซ‹เชก-เชฒเซ‡เชตเชฒ เชชเซเชฐเชคเชฟเชฌเช‚เชงเซ‹ ns:

    apiVersion: v1
    kind: LimitRange
    metadata:
     name: nxs-limit-pod
    spec:
     limits:
     - type: Pod
       max:
         cpu: 4
         memory: 1Gi

    เชคเซ‡. เชกเชฟเชซเซ‹เชฒเซเชŸ เชเชจเชเชธเชฎเชพเช‚ เชฆเชฐเซ‡เช• เชชเซ‹เชก เชฎเชพเชŸเซ‡ 4 vCPU เช…เชจเซ‡ 1G เชจเซ€ เชฎเชฐเซเชฏเชพเชฆเชพ เชนเชถเซ‡.

เชนเชตเซ‡ เชนเซเช‚ เชคเชฎเชจเซ‡ เชœเชฃเชพเชตเชตเชพ เชฎเชพเช‚เช—เซ เช›เซเช‚ เช•เซ‡ เช† เชชเซเชฐเชคเชฟเชฌเช‚เชงเซ‹ เชธเซ‡เชŸ เช•เชฐเชตเชพเชฅเซ€ เช†เชชเชฃเชจเซ‡ เช•เชฏเชพ เชซเชพเชฏเชฆเชพ เชฎเชณเซ€ เชถเช•เซ‡ เช›เซ‡.

เชจเซ‹เชกเซเชธ เชตเชšเซเชšเซ‡ เชฒเซ‹เชก เชฌเซ‡เชฒเซ‡เชจเซเชธเชฟเช‚เช— เชฎเชฟเช•เซ‡เชจเชฟเชเชฎ

เชœเซ‡เชฎ เชคเชฎเซ‡ เชœเชพเชฃเซ‹ เช›เซ‹, k8s เช˜เชŸเช• เชจเซ‹เชกเซเชธ เชตเชšเซเชšเซ‡ เชถเซ€เช‚เช—เซ‹เชจเชพ เชตเชฟเชคเชฐเชฃ เชฎเชพเชŸเซ‡ เชœเชตเชพเชฌเชฆเชพเชฐ เช›เซ‡, เชœเซ‡เชฎ เช•เซ‡ เชธเซเชจเชฟเชถเซเชšเชฟเชค, เชœเซ‡ เชšเซ‹เช•เซเช•เชธ เช…เชฒเซเช—เซ‹เชฐเชฟเชงเชฎ เชฎเซเชœเชฌ เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡. เชฒเซ‹เชจเซเชš เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชถเซเชฐเซ‡เชทเซเช  เชจเซ‹เชก เชชเชธเช‚เชฆ เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ เช† เช…เชฒเซเช—เซ‹เชฐเชฟเชงเชฎ เชฌเซ‡ เชคเชฌเช•เซเช•เชพเชฎเชพเช‚เชฅเซ€ เชชเชธเชพเชฐ เชฅเชพเชฏ เช›เซ‡:

  1. เชซเชฟเชฒเซเชŸเชฐเชฟเช‚เช—
  2. เชฐเซ‡เชจเซเชœเชฟเช‚เช—

เชคเซ‡. เชตเชฐเซเชฃเชตเซ‡เชฒ เชจเซ€เชคเชฟ เช…เชจเซเชธเชพเชฐ, เช—เชพเช‚เช เซ‹ เชถเชฐเซ‚เช†เชคเชฎเชพเช‚ เชชเชธเช‚เชฆ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เชœเซ‡เชจเชพ เชชเชฐ เชธเซ‡เชŸเชจเชพ เช†เชงเชพเชฐเซ‡ เชชเซ‹เชก เชฒเซ‹เชจเซเชš เช•เชฐเชตเชพเชจเซเช‚ เชถเช•เซเชฏ เช›เซ‡ เช†เช—เชพเชนเซ€ เช•เชฐเซ‡ เช›เซ‡ (เชจเซ‹เชกเชฎเชพเช‚ เชชเซ‹เชก เชšเชฒเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เชชเซ‚เชฐเชคเชพ เชธเช‚เชธเชพเชงเชจเซ‹ เช›เซ‡ เช•เซ‡ เช•เซ‡เชฎ เชคเซ‡ เชคเชชเชพเชธเชตเชพ เชธเชนเชฟเชค - PodFitsResources), เช…เชจเซ‡ เชชเช›เซ€ เช† เชฆเชฐเซ‡เช• เชจเซ‹เชก เชฎเชพเชŸเซ‡ เชชเซเชฐเชพเชฅเชฎเชฟเช•เชคเชพเช“ เชชเซ‹เชˆเชจเซเชŸ เช†เชชเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ (เชœเซ‡เชฎเชพเช‚ เชจเซ‹เชกเชฎเชพเช‚ เชœเซ‡เชŸเชฒเชพ เชตเชงเซ เชฎเชซเชค เชธเช‚เชธเชพเชงเชจเซ‹ เชนเซ‹เชฏ เช›เซ‡, เชคเซ‡เชŸเชฒเชพ เชตเชงเซ เชชเซ‹เชˆเชจเซเชŸ เชคเซ‡เชจเซ‡ เช…เชธเชพเช‡เชจ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ - LeastResourceAllocation/LeastRequestedPriority/BalancedResourceAllocation) เช…เชจเซ‡ เชชเซ‹เชก เชธเซŒเชฅเซ€ เชตเชงเซ เชชเซ‹เชˆเชจเซเชŸ เชธเชพเชฅเซ‡ เชจเซ‹เชก เชชเชฐ เชฒเซ‹เชจเซเชš เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ (เชœเซ‹ เชเช• เชธเชพเชฅเซ‡ เช…เชจเซ‡เช• เชจเซ‹เชกเซเชธ เช† เชธเซเชฅเชฟเชคเชฟเชจเซ‡ เชธเช‚เชคเซ‹เชทเซ‡ เช›เซ‡, เชคเซ‹ เชชเช›เซ€ เชเช• เชฐเซ‡เชจเซเชกเชฎ เชชเชธเช‚เชฆ เชฅเชฏเซ‡เชฒ เช›เซ‡).

เชคเซ‡ เชœ เชธเชฎเชฏเซ‡, เชคเชฎเชพเชฐเซ‡ เช เชธเชฎเชœเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ เช•เซ‡ เชถเซ‡เชกเซเชฏเซ‚เชฒเชฐ, เชจเซ‹เชกเชจเชพ เช‰เชชเชฒเชฌเซเชง เชธเช‚เชธเชพเชงเชจเซ‹เชจเซเช‚ เชฎเซ‚เชฒเซเชฏเชพเช‚เช•เชจ เช•เชฐเชคเซ€ เชตเช–เชคเซ‡, เชตเช—เซ‡เชฐเซ‡เชฎเชพเช‚ เชธเช‚เช—เซเชฐเชนเชฟเชค เชกเซ‡เชŸเชพ เชฆเซเชตเชพเชฐเชพ เชฎเชพเชฐเซเช—เชฆเชฐเซเชถเชจ เช†เชชเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ - เชเชŸเชฒเซ‡ เช•เซ‡. เช† เชจเซ‹เชก เชชเชฐ เชšเชพเชฒเชคเชพ เชฆเชฐเซ‡เช• เชชเซ‹เชกเชจเชพ เชตเชฟเชจเช‚เชคเซ€ เช•เชฐเซ‡เชฒ/เชฎเชฐเซเชฏเชพเชฆเชพ เชธเซเชคเซเชฐเซ‹เชคเชจเซ€ เชฐเช•เชฎ เชฎเชพเชŸเซ‡, เชชเชฐเช‚เชคเซ เชตเชพเชธเซเชคเชตเชฟเช• เชธเช‚เชธเชพเชงเชจ เชตเชชเชฐเชพเชถ เชฎเชพเชŸเซ‡ เชจเชนเซ€เช‚. เช† เชฎเชพเชนเชฟเชคเซ€ เช•เชฎเชพเชจเซเชก เช†เช‰เชŸเชชเซเชŸเชฎเชพเช‚เชฅเซ€ เชฎเซ‡เชณเชตเซ€ เชถเช•เชพเชฏ เช›เซ‡ kubectl describe node $NODE, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡:

# kubectl describe nodes nxs-k8s-s1
..
Non-terminated Pods:         (9 in total)
  Namespace                  Name                                         CPU Requests  CPU Limits  Memory Requests  Memory Limits  AGE
  ---------                  ----                                         ------------  ----------  ---------------  -------------  ---
  ingress-nginx              nginx-ingress-controller-754b85bf44-qkt2t    0 (0%)        0 (0%)      0 (0%)           0 (0%)         233d
  kube-system                kube-flannel-26bl4                           150m (0%)     300m (1%)   64M (0%)         500M (1%)      233d
  kube-system                kube-proxy-exporter-cb629                    0 (0%)        0 (0%)      0 (0%)           0 (0%)         233d
  kube-system                kube-proxy-x9fsc                             0 (0%)        0 (0%)      0 (0%)           0 (0%)         233d
  kube-system                nginx-proxy-k8s-worker-s1                    25m (0%)      300m (1%)   32M (0%)         512M (1%)      233d
  nxs-monitoring             alertmanager-main-1                          100m (0%)     100m (0%)   425Mi (1%)       25Mi (0%)      233d
  nxs-logging                filebeat-lmsmp                               100m (0%)     0 (0%)      100Mi (0%)       200Mi (0%)     233d
  nxs-monitoring             node-exporter-v4gdq                          112m (0%)     122m (0%)   200Mi (0%)       220Mi (0%)     233d
Allocated resources:
  (Total limits may be over 100 percent, i.e., overcommitted.)
  Resource           Requests           Limits
  --------           --------           ------
  cpu                487m (3%)          822m (5%)
  memory             15856217600 (2%)  749976320 (3%)
  ephemeral-storage  0 (0%)             0 (0%)

เช…เชนเซ€เช‚ เช†เชชเชฃเซ‡ เชšเซ‹เช•เซเช•เชธ เชจเซ‹เชก เชชเชฐ เชšเชพเชฒเชคเชพ เชคเชฎเชพเชฎ เชชเซ‹เชกเซเชธ, เชคเซ‡เชฎเชœ เชฆเชฐเซ‡เช• เชชเซ‹เชก เชตเชฟเชจเช‚เชคเซ€ เช•เชฐเซ‡ เช›เซ‡ เชคเซ‡ เชธเช‚เชธเชพเชงเชจเซ‹ เชœเซ‹เชˆเช เช›เซ€เช. เช…เชจเซ‡ เชœเซเชฏเชพเชฐเซ‡ cronjob-cron-events-1573793820-xt6q9 เชชเซ‹เชก เชฒเซ‰เชจเซเชš เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เชคเซเชฏเชพเชฐเซ‡ เชถเซ‡เชกเซเชฏเซ‚เชฒเชฐ เชฒเซ‰เช—เซเชธ เช•เซ‡เชตเชพ เชฆเซ‡เช–เชพเชฏ เช›เซ‡ เชคเซ‡ เช…เชนเซ€เช‚ เช›เซ‡ (เช† เชฎเชพเชนเชฟเชคเซ€ เชถเซ‡เชกเซเชฏเซ‚เชฒเชฐ เชฒเซ‰เช—เชฎเชพเช‚ เชฆเซ‡เช–เชพเชถเซ‡ เชœเซเชฏเชพเชฐเซ‡ เชฒเซ‰เชจเซเชš เช•เชฎเชพเชจเซเชกเชจเซ€ เชฆเชฒเซ€เชฒเซ‹เชฎเชพเช‚ 10เชฎเซเช‚ เชฒเซ‰เช—เชฟเช‚เช— เชฒเซ‡เชตเชฒ เชธเซ‡เชŸ เชฅเชถเซ‡ -v=10 ):

เชฒเซ‹เช—

I1115 07:57:21.637791       1 scheduling_queue.go:908] About to try and schedule pod nxs-stage/cronjob-cron-events-1573793820-xt6q9                                                                                                                                           
I1115 07:57:21.637804       1 scheduler.go:453] Attempting to schedule pod: nxs-stage/cronjob-cron-events-1573793820-xt6q9                                                                                                                                                    
I1115 07:57:21.638285       1 predicates.go:829] Schedule Pod nxs-stage/cronjob-cron-events-1573793820-xt6q9 on Node nxs-k8s-s5 is allowed, Node is running only 16 out of 110 Pods.                                                                               
I1115 07:57:21.638300       1 predicates.go:829] Schedule Pod nxs-stage/cronjob-cron-events-1573793820-xt6q9 on Node nxs-k8s-s6 is allowed, Node is running only 20 out of 110 Pods.                                                                               
I1115 07:57:21.638322       1 predicates.go:829] Schedule Pod nxs-stage/cronjob-cron-events-1573793820-xt6q9 on Node nxs-k8s-s3 is allowed, Node is running only 20 out of 110 Pods.                                                                               
I1115 07:57:21.638322       1 predicates.go:829] Schedule Pod nxs-stage/cronjob-cron-events-1573793820-xt6q9 on Node nxs-k8s-s4 is allowed, Node is running only 17 out of 110 Pods.                                                                               
I1115 07:57:21.638334       1 predicates.go:829] Schedule Pod nxs-stage/cronjob-cron-events-1573793820-xt6q9 on Node nxs-k8s-s10 is allowed, Node is running only 16 out of 110 Pods.                                                                              
I1115 07:57:21.638365       1 predicates.go:829] Schedule Pod nxs-stage/cronjob-cron-events-1573793820-xt6q9 on Node nxs-k8s-s12 is allowed, Node is running only 9 out of 110 Pods.                                                                               
I1115 07:57:21.638334       1 predicates.go:829] Schedule Pod nxs-stage/cronjob-cron-events-1573793820-xt6q9 on Node nxs-k8s-s11 is allowed, Node is running only 11 out of 110 Pods.                                                                              
I1115 07:57:21.638385       1 predicates.go:829] Schedule Pod nxs-stage/cronjob-cron-events-1573793820-xt6q9 on Node nxs-k8s-s1 is allowed, Node is running only 19 out of 110 Pods.                                                                               
I1115 07:57:21.638402       1 predicates.go:829] Schedule Pod nxs-stage/cronjob-cron-events-1573793820-xt6q9 on Node nxs-k8s-s2 is allowed, Node is running only 21 out of 110 Pods.                                                                               
I1115 07:57:21.638383       1 predicates.go:829] Schedule Pod nxs-stage/cronjob-cron-events-1573793820-xt6q9 on Node nxs-k8s-s9 is allowed, Node is running only 16 out of 110 Pods.                                                                               
I1115 07:57:21.638335       1 predicates.go:829] Schedule Pod nxs-stage/cronjob-cron-events-1573793820-xt6q9 on Node nxs-k8s-s8 is allowed, Node is running only 18 out of 110 Pods.                                                                               
I1115 07:57:21.638408       1 predicates.go:829] Schedule Pod nxs-stage/cronjob-cron-events-1573793820-xt6q9 on Node nxs-k8s-s13 is allowed, Node is running only 8 out of 110 Pods.                                                                               
I1115 07:57:21.638478       1 predicates.go:1369] Schedule Pod nxs-stage/cronjob-cron-events-1573793820-xt6q9 on Node nxs-k8s-s10 is allowed, existing pods anti-affinity terms satisfied.                                                                         
I1115 07:57:21.638505       1 predicates.go:1369] Schedule Pod nxs-stage/cronjob-cron-events-1573793820-xt6q9 on Node nxs-k8s-s8 is allowed, existing pods anti-affinity terms satisfied.                                                                          
I1115 07:57:21.638577       1 predicates.go:1369] Schedule Pod nxs-stage/cronjob-cron-events-1573793820-xt6q9 on Node nxs-k8s-s9 is allowed, existing pods anti-affinity terms satisfied.                                                                          
I1115 07:57:21.638583       1 predicates.go:829] Schedule Pod nxs-stage/cronjob-cron-events-1573793820-xt6q9 on Node nxs-k8s-s7 is allowed, Node is running only 25 out of 110 Pods.                                                                               
I1115 07:57:21.638932       1 resource_allocation.go:78] cronjob-cron-events-1573793820-xt6q9 -> nxs-k8s-s10: BalancedResourceAllocation, capacity 39900 millicores 66620178432 memory bytes, total request 2343 millicores 9640186880 memory bytes, score 9        
I1115 07:57:21.638946       1 resource_allocation.go:78] cronjob-cron-events-1573793820-xt6q9 -> nxs-k8s-s10: LeastResourceAllocation, capacity 39900 millicores 66620178432 memory bytes, total request 2343 millicores 9640186880 memory bytes, score 8           
I1115 07:57:21.638961       1 resource_allocation.go:78] cronjob-cron-events-1573793820-xt6q9 -> nxs-k8s-s9: BalancedResourceAllocation, capacity 39900 millicores 66620170240 memory bytes, total request 4107 millicores 11307422720 memory bytes, score 9        
I1115 07:57:21.638971       1 resource_allocation.go:78] cronjob-cron-events-1573793820-xt6q9 -> nxs-k8s-s8: BalancedResourceAllocation, capacity 39900 millicores 66620178432 memory bytes, total request 5847 millicores 24333637120 memory bytes, score 7        
I1115 07:57:21.638975       1 resource_allocation.go:78] cronjob-cron-events-1573793820-xt6q9 -> nxs-k8s-s9: LeastResourceAllocation, capacity 39900 millicores 66620170240 memory bytes, total request 4107 millicores 11307422720 memory bytes, score 8           
I1115 07:57:21.638990       1 resource_allocation.go:78] cronjob-cron-events-1573793820-xt6q9 -> nxs-k8s-s8: LeastResourceAllocation, capacity 39900 millicores 66620178432 memory bytes, total request 5847 millicores 24333637120 memory bytes, score 7           
I1115 07:57:21.639022       1 generic_scheduler.go:726] cronjob-cron-events-1573793820-xt6q9_nxs-stage -> nxs-k8s-s10: TaintTolerationPriority, Score: (10)                                                                                                        
I1115 07:57:21.639030       1 generic_scheduler.go:726] cronjob-cron-events-1573793820-xt6q9_nxs-stage -> nxs-k8s-s8: TaintTolerationPriority, Score: (10)                                                                                                         
I1115 07:57:21.639034       1 generic_scheduler.go:726] cronjob-cron-events-1573793820-xt6q9_nxs-stage -> nxs-k8s-s9: TaintTolerationPriority, Score: (10)                                                                                                         
I1115 07:57:21.639041       1 generic_scheduler.go:726] cronjob-cron-events-1573793820-xt6q9_nxs-stage -> nxs-k8s-s10: NodeAffinityPriority, Score: (0)                                                                                                            
I1115 07:57:21.639053       1 generic_scheduler.go:726] cronjob-cron-events-1573793820-xt6q9_nxs-stage -> nxs-k8s-s8: NodeAffinityPriority, Score: (0)                                                                                                             
I1115 07:57:21.639059       1 generic_scheduler.go:726] cronjob-cron-events-1573793820-xt6q9_nxs-stage -> nxs-k8s-s9: NodeAffinityPriority, Score: (0)                                                                                                             
I1115 07:57:21.639061       1 interpod_affinity.go:237] cronjob-cron-events-1573793820-xt6q9 -> nxs-k8s-s10: InterPodAffinityPriority, Score: (0)                                                                                                                   
I1115 07:57:21.639063       1 selector_spreading.go:146] cronjob-cron-events-1573793820-xt6q9 -> nxs-k8s-s10: SelectorSpreadPriority, Score: (10)                                                                                                                   
I1115 07:57:21.639073       1 interpod_affinity.go:237] cronjob-cron-events-1573793820-xt6q9 -> nxs-k8s-s8: InterPodAffinityPriority, Score: (0)                                                                                                                    
I1115 07:57:21.639077       1 selector_spreading.go:146] cronjob-cron-events-1573793820-xt6q9 -> nxs-k8s-s8: SelectorSpreadPriority, Score: (10)                                                                                                                    
I1115 07:57:21.639085       1 interpod_affinity.go:237] cronjob-cron-events-1573793820-xt6q9 -> nxs-k8s-s9: InterPodAffinityPriority, Score: (0)                                                                                                                    
I1115 07:57:21.639088       1 selector_spreading.go:146] cronjob-cron-events-1573793820-xt6q9 -> nxs-k8s-s9: SelectorSpreadPriority, Score: (10)                                                                                                                    
I1115 07:57:21.639103       1 generic_scheduler.go:726] cronjob-cron-events-1573793820-xt6q9_nxs-stage -> nxs-k8s-s10: SelectorSpreadPriority, Score: (10)                                                                                                         
I1115 07:57:21.639109       1 generic_scheduler.go:726] cronjob-cron-events-1573793820-xt6q9_nxs-stage -> nxs-k8s-s8: SelectorSpreadPriority, Score: (10)                                                                                                          
I1115 07:57:21.639114       1 generic_scheduler.go:726] cronjob-cron-events-1573793820-xt6q9_nxs-stage -> nxs-k8s-s9: SelectorSpreadPriority, Score: (10)                                                                                                          
I1115 07:57:21.639127       1 generic_scheduler.go:781] Host nxs-k8s-s10 => Score 100037                                                                                                                                                                            
I1115 07:57:21.639150       1 generic_scheduler.go:781] Host nxs-k8s-s8 => Score 100034                                                                                                                                                                             
I1115 07:57:21.639154       1 generic_scheduler.go:781] Host nxs-k8s-s9 => Score 100037                                                                                                                                                                             
I1115 07:57:21.639267       1 scheduler_binder.go:269] AssumePodVolumes for pod "nxs-stage/cronjob-cron-events-1573793820-xt6q9", node "nxs-k8s-s10"                                                                                                               
I1115 07:57:21.639286       1 scheduler_binder.go:279] AssumePodVolumes for pod "nxs-stage/cronjob-cron-events-1573793820-xt6q9", node "nxs-k8s-s10": all PVCs bound and nothing to do                                                                             
I1115 07:57:21.639333       1 factory.go:733] Attempting to bind cronjob-cron-events-1573793820-xt6q9 to nxs-k8s-s10

เช…เชนเซ€เช‚ เช†เชชเชฃเซ‡ เชœเซ‹เชˆเช เช›เซ€เช เช•เซ‡ เชถเชฐเซ‚เช†เชคเชฎเชพเช‚ เชถเซ‡เชกเซเชฏเซ‚เชฒเชฐ 3 เชจเซ‹เชกเซเชธเชจเซ€ เชธเซ‚เชšเชฟเชจเซ‡ เชซเชฟเชฒเซเชŸเชฐ เช•เชฐเซ‡ เช›เซ‡ เช…เชจเซ‡ เชœเชจเชฐเซ‡เชŸ เช•เชฐเซ‡ เช›เซ‡ เชœเซ‡เชจเชพ เชชเชฐ เชคเซ‡เชจเซ‡ เชฒเซ‹เชจเซเชš เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡ (nxs-k8s-s8, nxs-k8s-s9, nxs-k8s-s10). เชชเช›เซ€ เชคเซ‡ เชธเซŒเชฅเซ€ เชฏเซ‹เช—เซเชฏ เชจเซ‹เชก เชจเช•เซเช•เซ€ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช† เชฆเชฐเซ‡เช• เชจเซ‹เชก เชฎเชพเชŸเซ‡ เช•เซ‡เชŸเชฒเชพเช• เชชเชฐเชฟเชฎเชพเชฃเซ‹ (เชธเช‚เชคเซเชฒเชฟเชค เชธเช‚เชธเชพเชงเชจ เชซเชพเชณเชตเชฃเซ€, LeastResourceAllocation เชธเชนเชฟเชค)เชจเชพ เช†เชงเชพเชฐเซ‡ เชธเซเช•เซ‹เชฐเซเชธเชจเซ€ เช—เชฃเชคเชฐเซ€ เช•เชฐเซ‡ เช›เซ‡. เช†เช–เชฐเซ‡, เชชเซ‹เชก เชจเซ‹เชก เชชเชฐ เชธเซŒเชฅเซ€ เชตเชงเซ เชชเซ‹เชˆเชจเซเชŸ เชธเชพเชฅเซ‡ เชธเซเชจเชฟเชถเซเชšเชฟเชค เชฅเชฏเซ‡เชฒ เช›เซ‡ (เช…เชนเซ€เช‚ เชฌเซ‡ เชจเซ‹เชกเชฎเชพเช‚ เชเช• เชธเชพเชฅเซ‡ เชชเซ‹เชˆเชจเซเชŸเชจเซ€ เชธเชฎเชพเชจ เชธเช‚เช–เซเชฏเชพ 100037 เช›เซ‡, เชคเซ‡เชฅเซ€ เชฐเซ‡เชจเซเชกเชฎ เชเช• เชชเชธเช‚เชฆ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ - nxs-k8s-s10).

เชจเชฟเชทเซเช•เชฐเซเชท: เชœเซ‹ เชจเซ‹เชก เชชเซ‹เชกเซเชธ เชšเชฒเชพเชตเซ‡ เช›เซ‡ เชœเซ‡เชจเชพ เชฎเชพเชŸเซ‡ เช•เซ‹เชˆ เชชเซเชฐเชคเชฟเชฌเช‚เชงเซ‹ เชธเซ‡เชŸ เชจเชฅเซ€, เชคเซ‹ k8s เชฎเชพเชŸเซ‡ (เชธเช‚เชธเชพเชงเชจ เชตเชชเชฐเชพเชถเชจเชพ เชฆเซƒเชทเซเชŸเชฟเช•เซ‹เชฃเชฅเซ€) เช† เชธเชฎเชพเชจ เชนเชถเซ‡ เชœเชพเชฃเซ‡ เช•เซ‡ เช† เชจเซ‹เชก เชชเชฐ เช†เชตเชพ เช•เซ‹เชˆ เชชเซ‹เชกเซเชธ เชœ เชจ เชนเซ‹เชฏ. เชคเซ‡เชฅเซ€, เชœเซ‹ เชคเชฎเชพเชฐเซ€ เชชเชพเชธเซ‡, เชถเชฐเชคเซ€ เชฐเซ€เชคเซ‡, เชเช• เช–เชพเช‰เชงเชฐเชพ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ (เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, wowza) เชธเชพเชฅเซ‡ เชชเซ‹เชก เชนเซ‹เชฏ เช…เชจเซ‡ เชคเซ‡เชจเชพ เชฎเชพเชŸเซ‡ เช•เซ‹เชˆ เชจเชฟเชฏเช‚เชคเซเชฐเชฃเซ‹ เชจ เชนเซ‹เชฏ, เชคเซ‹ เชชเชฐเชฟเชธเซเชฅเชฟเชคเชฟ เชŠเชญเซ€ เชฅเชˆ เชถเช•เซ‡ เช›เซ‡ เชœเซเชฏเชพเชฐเซ‡ เช† เชชเซ‹เชก เช–เชฐเซ‡เช–เชฐ เชจเซ‹เชกเชจเชพ เชคเชฎเชพเชฎ เชธเช‚เชธเชพเชงเชจเซ‹ เช–เชพเชฏ เช›เซ‡, เชชเชฐเช‚เชคเซ k8s เชฎเชพเชŸเซ‡ เช† เชจเซ‹เชก เช…เชจเชฒเซ‹เชก เชฅเชฏเซ‡เชฒ เช—เชฃเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เช…เชจเซ‡ เชคเซ‡เชจเซ‡ เชจเซ‹เชก เชคเชฐเซ€เช•เซ‡ (เชšเซ‹เช•เซเช•เชธเชชเชฃเซ‡ เช‰เชชเชฒเชฌเซเชง เชธเช‚เชธเชพเชงเชจเซ‹เชจเซเช‚ เชฎเซ‚เชฒเซเชฏเชพเช‚เช•เชจ เช•เชฐเชคเชพ เชชเซ‹เชˆเชจเซเชŸเชฎเชพเช‚) เช•เซเชฐเชฎเชพเช‚เช•เชฟเชค เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ เชธเชฎเชพเชจ เชธเช‚เช–เซเชฏเชพเชฎเชพเช‚ เชชเซ‹เชˆเชจเซเชŸ เช†เชชเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡, เชœเซ‡เชฎเชพเช‚ เช•เชพเชฐเซเชฏเช•เชพเชฐเซ€ เชชเซ‹เชกเซเชธ เชจเชฅเซ€, เชœเซ‡ เช†เช–เชฐเซ‡ เชจเซ‹เชกเซเชธ เชตเชšเซเชšเซ‡เชจเชพ เชญเชพเชฐเชจเซเช‚ เช…เชธเชฎเชพเชจ เชตเชฟเชคเชฐเชฃ เชคเชฐเชซ เชฆเซ‹เชฐเซ€ เชถเช•เซ‡ เช›เซ‡.

เชชเซ‹เชกเชจเซ€ เชนเช•เชพเชฒเชชเชŸเซเชŸเซ€

เชœเซ‡เชฎ เชคเชฎเซ‡ เชœเชพเชฃเซ‹ เช›เซ‹, เชฆเชฐเซ‡เช• เชชเซ‹เชกเชจเซ‡ 3 QoS เชตเชฐเซเช—เซ‹เชฎเชพเช‚เชฅเซ€ เชเช• เชธเซ‹เช‚เชชเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡:

  1. เช–เชพเชคเชฐเซ€เชชเซ‚เชฐเซเชตเช• - เชœเซเชฏเชพเชฐเซ‡ เชชเซ‹เชกเชฎเชพเช‚ เชฆเชฐเซ‡เช• เช•เชจเซเชŸเซ‡เชจเชฐ เชฎเชพเชŸเซ‡ เชฎเซ‡เชฎเชฐเซ€ เช…เชจเซ‡ เชธเซ€เชชเซ€เชฏเซ เชฎเชพเชŸเซ‡ เชตเชฟเชจเช‚เชคเซ€ เช…เชจเซ‡ เชฎเชฐเซเชฏเชพเชฆเชพ เชจเชฟเชฐเซเชฆเชฟเชทเซเชŸ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เชคเซเชฏเชพเชฐเซ‡ เชธเซ‹เช‚เชชเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เช…เชจเซ‡ เช† เชฎเซ‚เชฒเซเชฏเซ‹ เชฎเซ‡เชณ เช–เชพเชคเชพ เชนเซ‹เชตเชพ เชœเซ‹เชˆเช
  2. เชตเชฟเชธเซเชซเซ‹เชŸ เช•เชฐเซ€ เชถเช•เชพเชฏ เชคเซ‡เชตเซเช‚ - เชชเซ‹เชกเชฎเชพเช‚ เช“เช›เชพเชฎเชพเช‚ เช“เช›เชพ เชเช• เช•เชจเซเชŸเซ‡เชจเชฐเชฎเชพเช‚ เชตเชฟเชจเช‚เชคเซ€ เช…เชจเซ‡ เชฎเชฐเซเชฏเชพเชฆเชพ เชนเซ‹เชฏ เช›เซ‡, เชตเชฟเชจเช‚เชคเซ€ < เชฎเชฐเซเชฏเชพเชฆเชพ เชธเชพเชฅเซ‡
  3. เช‰เชคเซเชคเชฎ เชชเซเชฐเชฏเชคเซเชจ - เชœเซเชฏเชพเชฐเซ‡ เชชเซ‹เชกเชฎเชพเช‚ เชเช• เชชเชฃ เช•เชจเซเชŸเซ‡เชจเชฐ เชธเช‚เชธเชพเชงเชจ เชฎเชฐเซเชฏเชพเชฆเชฟเชค เชจ เชนเซ‹เชฏ

เชคเซ‡ เชœ เชธเชฎเชฏเซ‡, เชœเซเชฏเชพเชฐเซ‡ เชจเซ‹เชก เชธเช‚เชธเชพเชงเชจเซ‹เชจเซ‹ เช…เชญเชพเชต (เชกเชฟเชธเซเช•, เชฎเซ‡เชฎเชฐเซ€) เช…เชจเซเชญเชตเซ‡ เช›เซ‡, เชคเซเชฏเชพเชฐเซ‡ เช•เซเชฌเซ‡เชฒเซ‡เชŸ เชชเซ‹เชก เช…เชจเซ‡ เชคเซ‡เชจเชพ QoS เชตเชฐเซเช—เชจเซ€ เชชเซเชฐเชพเชฅเชฎเชฟเช•เชคเชพเชจเซ‡ เชงเซเชฏเชพเชจเชฎเชพเช‚ เชฒเซ‡เชคเชพ เชšเซ‹เช•เซเช•เชธ เช…เชฒเซเช—เซ‹เชฐเชฟเชงเชฎ เช…เชจเซเชธเชพเชฐ เชชเซ‹เชกเซเชธเชจเซ‡ เช•เซเชฐเชฎ เช†เชชเชตเชพ เช…เชจเซ‡ เชฌเชนเชพเชฐ เช•เชพเชขเชตเชพเชจเซเช‚ เชถเชฐเซ‚ เช•เชฐเซ‡ เช›เซ‡. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชœเซ‹ เช†เชชเชฃเซ‡ RAM เชตเชฟเชถเซ‡ เชตเชพเชค เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช, เชคเซ‹ เชชเช›เซ€ QoS เชตเชฐเซเช—เชจเชพ เช†เชงเชพเชฐเซ‡, เชจเซ€เชšเซ‡เชจเชพ เชธเชฟเชฆเซเชงเชพเช‚เชค เช…เชจเซเชธเชพเชฐ เชชเซ‹เชˆเชจเซเชŸ เช†เชชเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡:

  • เช–เชพเชคเชฐเซ€ เช†เชชเซ€:-998
  • เช‰เชคเซเชคเชฎ เชชเซเชฐเชฏเชคเซเชจ: 1000
  • เช›เชฒเช•เชพเชคเซเช‚: เชฎเชฟเชจเชฟเชŸ(เชฎเชนเชคเซเชคเชฎ(2, 1000 - (1000 * เชฎเซ‡เชฎเชฐเซ€ เชฐเชฟเช•เซเชตเซ‡เชธเซเชŸเชฌเชพเช‡เชŸเซเชธ) / เชฎเชถเซ€เชจเชฎเซ‡เชฎเซ‹เชฐเซ€ เช•เซ‡เชชเซ‡เชธเชฟเชŸเซ€เชฌเชพเช‡เชŸเซเชธ), 999)

เชคเซ‡. เชธเชฎเชพเชจ เช…เช—เซเชฐเชคเชพ เชธเชพเชฅเซ‡, เช•เซเชฌเซ‡เชฒเซ‡เชŸ เชชเซเชฐเชฅเชฎ เชจเซ‹เชกเชฎเชพเช‚เชฅเซ€ เชถเซเชฐเซ‡เชทเซเช  เชชเซเชฐเชฏเชพเชธ QoS เชตเชฐเซเช— เชธเชพเชฅเซ‡ เชชเซ‹เชกเซเชธเชจเซ‡ เชฌเชนเชพเชฐ เช•เชพเชขเชถเซ‡.

เชจเชฟเชทเซเช•เชฐเซเชท: เชœเซ‹ เชคเชฎเซ‡ เชคเซ‡เชจเชพ เชชเชฐ เชธเช‚เชธเชพเชงเชจเซ‹เชจเซ€ เช…เช›เชคเชจเซ€ เชธเซเชฅเชฟเชคเชฟเชฎเชพเช‚ เช‡เชšเซเช›เชฟเชค เชชเซ‹เชกเชจเซ‡ เชจเซ‹เชกเชฎเชพเช‚เชฅเซ€ เชฌเชนเชพเชฐ เช•เชพเชขเชตเชพเชจเซ€ เชธเช‚เชญเชพเชตเชจเชพเชจเซ‡ เช˜เชŸเชพเชกเชตเชพ เชฎเชพเช‚เช—เชคเชพ เชนเซ‹, เชคเซ‹ เช…เช—เซเชฐเชคเชพเชจเซ€ เชธเชพเชฅเซ‡, เชคเชฎเชพเชฐเซ‡ เชคเซ‡เชจเชพ เชฎเชพเชŸเซ‡เชจเซ€ เชตเชฟเชจเช‚เชคเซ€/เชฎเชฐเซเชฏเชพเชฆเชพ เชธเซ‡เชŸ เช•เชฐเชตเชพเชจเซ€ เชชเชฃ เช•เชพเชณเชœเซ€ เชฒเซ‡เชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡.

เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชชเซ‹เชกเซเชธ (HPA) เชจเชพ เช†เชกเชพ เช“เชŸเซ‹เชธเซเช•เซ‡เชฒเชฟเช‚เช— เชฎเชพเชŸเซ‡เชจเซ€ เชชเชฆเซเชงเชคเชฟ

เชœเซเชฏเชพเชฐเซ‡ เช•เชพเชฐเซเชฏ เชธเช‚เชธเชพเชงเชจเซ‹เชจเชพ เช‰เชชเชฏเซ‹เช— (เชธเชฟเชธเซเชŸเชฎ - CPU/RAM เช…เชฅเชตเชพ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ - rps) เชจเชพ เช†เชงเชพเชฐเซ‡ เชชเซ‹เชกเซเชธเชจเซ€ เชธเช‚เช–เซเชฏเชพเชจเซ‡ เช†เชชเชฎเซ‡เชณเซ‡ เชตเชงเชพเชฐเชตเชพ เช…เชจเซ‡ เช˜เชŸเชพเชกเชตเชพเชจเซเช‚ เชนเซ‹เชฏ เช›เซ‡, เชœเซ‡เชฎ เช•เซ‡ k8s เชเชจเซเชŸเชฟเชŸเซ€ เชเชšเชชเซ€เช (เชนเซ‹เชฐเชฟเชเซ‹เชจเซเชŸเชฒ เชชเซ‹เชก เช“เชŸเซ‹เชธเซเช•เซ‡เชฒเชฐ). เชœเซ‡เชจเซเช‚ เช…เชฒเซเช—เซ‹เชฐเชฟเชงเชฎ เชจเซ€เชšเซ‡ เชฎเซเชœเชฌ เช›เซ‡.

  1. เช…เชตเชฒเซ‹เช•เชจ เช•เชฐเซ‡เชฒ เชธเช‚เชธเชพเชงเชจเชจเชพ เชตเชฐเซเชคเชฎเชพเชจ เชฐเซ€เชกเชฟเช‚เช—เซเชธ เชจเช•เซเช•เซ€ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ (เชตเชฐเซเชคเชฎเชพเชจเชฎเซ‡เชŸเซเชฐเชฟเช• เชฎเซ‚เชฒเซเชฏ)
  2. เชธเช‚เชธเชพเชงเชจ เชฎเชพเชŸเซ‡ เช‡เชšเซเช›เชฟเชค เชฎเซ‚เชฒเซเชฏเซ‹ เชจเช•เซเช•เซ€ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ (desiredMetricValue), เชœเซ‡ เชธเชฟเชธเซเชŸเชฎ เชธเซเชฐเซ‹เชคเซ‹ เชฎเชพเชŸเซ‡ เชตเชฟเชจเช‚เชคเซ€เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชธเซ‡เชŸ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡
  3. เชชเซเชฐเชคเชฟเช•เซƒเชคเชฟเช“เชจเซ€ เชตเชฐเซเชคเชฎเชพเชจ เชธเช‚เช–เซเชฏเชพ เชจเชฟเชฐเซเชงเชพเชฐเชฟเชค เช›เซ‡ (เชตเชฐเซเชคเชฎเชพเชจ เชชเซเชฐเชคเชฟเช•เซƒเชคเชฟเช“)
  4. เชจเซ€เชšเซ‡เชจเซเช‚ เชธเซ‚เชคเซเชฐ เชชเซเชฐเชคเชฟเช•เซƒเชคเชฟเช“เชจเซ€ เช‡เชšเซเช›เชฟเชค เชธเช‚เช–เซเชฏเชพเชจเซ€ เช—เชฃเชคเชฐเซ€ เช•เชฐเซ‡ เช›เซ‡ (เช‡เชšเซเช›เชฟเชค เชชเซเชฐเชคเชฟเช•เซƒเชคเชฟเช“)
    เช‡เชšเซเช›เชฟเชค เชชเซเชฐเชคเชฟเช•เซƒเชคเชฟเช“ = [ เชตเชฐเซเชคเชฎเชพเชจ เชชเซเชฐเชคเชฟเช•เซƒเชคเชฟเช“ * (เชตเชฐเซเชคเชฎเชพเชจเชฎเซ‡เชŸเซเชฐเชฟเช•เชตเซ‡เชฒเซเชฏเซ / เช‡เชšเซเช›เชฟเชคเชฎเซ‡เชŸเซเชฐเชฟเช•เชตเซ‡เชฒเซเชฏเซ)]

เช† เช•เชฟเชธเซเชธเชพเชฎเชพเช‚, เชœเซเชฏเชพเชฐเซ‡ เช—เซเชฃเชพเช‚เช• (currentMetricValue / desiredMetricValue) 1 เชจเซ€ เชจเชœเซ€เช• เชนเซ‹เชฏ เชคเซเชฏเชพเชฐเซ‡ เชธเซเช•เซ‡เชฒเชฟเช‚เช— เชฅเชถเซ‡ เชจเชนเซ€เช‚ (เช† เช•เชฟเชธเซเชธเชพเชฎเชพเช‚, เช…เชฎเซ‡ เช…เชจเซเชฎเชคเชฟเชชเชพเชคเซเชฐ เชญเซ‚เชฒ เชœเชพเชคเซ‡ เชธเซ‡เชŸ เช•เชฐเซ€ เชถเช•เซ€เช เช›เซ€เช; เชฎเซ‚เชณเชญเซ‚เชค เชฐเซ€เชคเซ‡ เชคเซ‡ 0.1 เช›เซ‡).

เชšเชพเชฒเซ‹ เชœเซ‹เชˆเช เช•เซ‡ เชเชช-เชŸเซ‡เชธเซเชŸ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ (เชกเชฟเชชเซเชฒเซ‹เชฏเชฎเซ‡เชจเซเชŸ เชคเชฐเซ€เช•เซ‡ เชตเชฐเซเชฃเชตเซ‡เชฒ) เชจเชพ เช‰เชฆเชพเชนเชฐเชฃเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ hpa เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช•เชพเชฐเซเชฏ เช•เชฐเซ‡ เช›เซ‡, เชœเซเชฏเชพเช‚ CPU เชตเชชเชฐเชพเชถเชจเชพ เช†เชงเชพเชฐเซ‡ เชชเซเชฐเชคเชฟเช•เซƒเชคเชฟเช“เชจเซ€ เชธเช‚เช–เซเชฏเชพ เชฌเชฆเชฒเชตเซ€ เชœเชฐเซ‚เชฐเซ€ เช›เซ‡:

  • เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชฎเซ‡เชจเชฟเชซเซ‡เชธเซเชŸ

    kind: Deployment
    apiVersion: apps/v1beta2
    metadata:
    name: app-test
    spec:
    selector:
    matchLabels:
    app: app-test
    replicas: 2
    template:
    metadata:
    labels:
    app: app-test
    spec:
    containers:
    - name: nginx
    image: registry.nixys.ru/generic-images/nginx
    imagePullPolicy: Always
    resources:
    requests:
    cpu: 60m
    ports:
    - name: http
    containerPort: 80
    - name: nginx-exporter
    image: nginx/nginx-prometheus-exporter
    resources:
    requests:
    cpu: 30m
    ports:
    - name: nginx-exporter
    containerPort: 9113
    args:
    - -nginx.scrape-uri
    - http://127.0.0.1:80/nginx-status

    เชคเซ‡. เช†เชชเชฃเซ‡ เชœเซ‹เชˆเช เช›เซ€เช เช•เซ‡ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชชเซ‹เชก เชถเชฐเซ‚เช†เชคเชฎเชพเช‚ เชฌเซ‡ เชฆเชพเช–เชฒเชพเช“เชฎเชพเช‚ เชฒเซ‹เชจเซเชš เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชœเซ‡เชฎเชพเช‚เชจเชพ เชฆเชฐเซ‡เช•เชฎเชพเช‚ เชฌเซ‡ nginx เช…เชจเซ‡ nginx-เชจเชฟเช•เชพเชธเช•เชฐเซเชคเชพ เช•เชจเซเชŸเซ‡เชจเชฐ เชนเซ‹เชฏ เช›เซ‡, เชœเซ‡เชฎเชพเช‚เชฅเซ€ เชชเซเชฐเชคเซเชฏเซ‡เช• เชฎเชพเชŸเซ‡ เชเช• เช‰เชฒเซเชฒเซ‡เช–เชฟเชค เชตเชฟเชจเช‚เชคเซ€เช“ CPU เชฎเชพเชŸเซ‡.

  • HPA เชฎเซ‡เชจเชฟเชซเซ‡เชธเซเชŸเซ‹

    apiVersion: autoscaling/v2beta2
    kind: HorizontalPodAutoscaler
    metadata:
    name: app-test-hpa
    spec:
    maxReplicas: 10
    minReplicas: 2
    scaleTargetRef:
    apiVersion: extensions/v1beta1
    kind: Deployment
    name: app-test
    metrics:
    - type: Resource
    resource:
    name: cpu
    target:
    type: Utilization
    averageUtilization: 30

    เชคเซ‡. เช…เชฎเซ‡ เชเช• เชเชšเชชเซ€เช เชฌเชจเชพเชตเซเชฏเซเช‚ เช›เซ‡ เชœเซ‡ เชกเชฟเชชเซเชฒเซ‹เชฏเชฎเซ‡เชจเซเชŸ เชเชช-เชŸเซ‡เชธเซเชŸเชจเซเช‚ เชจเชฟเชฐเซ€เช•เซเชทเชฃ เช•เชฐเชถเซ‡ เช…เชจเซ‡ เชธเซ€เชชเซ€เชฏเซ เชธเซ‚เชšเช•เชจเชพ เช†เชงเชพเชฐเซ‡ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชธเชพเชฅเซ‡ เชชเซ‹เชกเชจเซ€ เชธเช‚เช–เซเชฏเชพเชจเซ‡ เชธเชฎเชพเชฏเซ‹เชœเชฟเชค เช•เชฐเชถเซ‡ (เช…เชฎเซ‡ เช…เชชเซ‡เช•เซเชทเชพ เชฐเชพเช–เซ€เช เช›เซ€เช เช•เซ‡ เชชเซ‹เชก เชคเซ‡ เชตเชฟเชจเช‚เชคเซ€ เช•เชฐเซ‡ เช›เซ‡ เชคเซ‡ เชธเซ€เชชเซ€เชฏเซเชจเซ‹ 30% เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡), เชชเซเชฐเชคเชฟเช•เซƒเชคเชฟเช“เชจเซ€ เชธเช‚เช–เซเชฏเชพ เชธเชพเชฅเซ‡ 2-10 เชจเซ€ เชฐเซ‡เชจเซเชœ.

    เชนเชตเซ‡, เชšเชพเชฒเซ‹ เชเชšเชชเซ€เช เช“เชชเชฐเซ‡เชถเชจเชจเซ€ เชชเชฆเซเชงเชคเชฟ เชœเซ‹เชˆเช เชœเซ‹ เช†เชชเชฃเซ‡ เช•เซ‹เชˆ เชเช• เชนเชฐเซเชฅ เชชเชฐ เชญเชพเชฐ เชฒเชพเช—เซ เช•เชฐเซ€เช:

     # kubectl top pod
    NAME                                                   CPU(cores)   MEMORY(bytes)
    app-test-78559f8f44-pgs58            101m         243Mi
    app-test-78559f8f44-cj4jz            4m           240Mi

เช•เซเชฒ เชฎเชณเซ€เชจเซ‡ เช…เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชจเซ€เชšเซ‡เชจเชพ เช›เซ‡:

  • เช‡เชšเซเช›เชฟเชค เชฎเซ‚เชฒเซเชฏ (เช‡เชšเซเช›เชฟเชค เชฎเซ‡เชŸเซเชฐเชฟเช•เชตเซ‡เชฒเซเชฏเซ) - เชเชšเชชเซ€เช เชธเซ‡เชŸเชฟเช‚เช—เซเชธ เช…เชจเซเชธเชพเชฐ, เช…เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ 30% เช›เซ‡
  • เชตเชฐเซเชคเชฎเชพเชจ เชฎเซ‚เชฒเซเชฏ (currentMetricValue) - เช—เชฃเชคเชฐเซ€ เชฎเชพเชŸเซ‡, เชจเชฟเชฏเช‚เชคเซเชฐเช•-เชฎเซ‡เชจเซ‡เชœเชฐ % เชฎเชพเช‚ เชธเช‚เชธเชพเชงเชจ เชตเชชเชฐเชพเชถเชจเชพ เชธเชฐเซ‡เชฐเชพเชถ เชฎเซ‚เชฒเซเชฏเชจเซ€ เช—เชฃเชคเชฐเซ€ เช•เชฐเซ‡ เช›เซ‡, เชเชŸเชฒเซ‡ เช•เซ‡. เชถเชฐเชคเซ€ เชฐเซ€เชคเซ‡ เชจเซ€เชšเซ‡เชจเชพ เช•เชฐเซ‡ เช›เซ‡:
    1. เชฎเซ‡เชŸเซเชฐเชฟเช• เชธเชฐเซเชตเชฐเชฎเชพเช‚เชฅเซ€ เชชเซ‹เชก เชฎเซ‡เชŸเซเชฐเชฟเช•เซเชธเชจเชพ เชธเช‚เชชเซ‚เชฐเซเชฃ เชฎเซ‚เชฒเซเชฏเซ‹ เชชเซเชฐเชพเชชเซเชค เช•เชฐเซ‡ เช›เซ‡, เชเชŸเชฒเซ‡ เช•เซ‡. 101 เชฎเซ€ เช…เชจเซ‡ 4 เชฎเซ€
    2. เชธเชฐเซ‡เชฐเชพเชถ เชจเชฟเชฐเชชเซ‡เช•เซเชท เชฎเซ‚เชฒเซเชฏเชจเซ€ เช—เชฃเชคเชฐเซ€ เช•เชฐเซ‡ เช›เซ‡, เชเชŸเชฒเซ‡ เช•เซ‡. (101m + 4m) / 2 = 53m
    3. เช‡เชšเซเช›เชฟเชค เชธเช‚เชธเชพเชงเชจ เชตเชชเชฐเชพเชถ เชฎเชพเชŸเซ‡ เชธเช‚เชชเซ‚เชฐเซเชฃ เชฎเซ‚เชฒเซเชฏ เชฎเซ‡เชณเชตเซ‡ เช›เซ‡ (เช† เชฎเชพเชŸเซ‡, เชคเชฎเชพเชฎ เช•เชจเซเชŸเซ‡เชจเชฐเชจเซ€ เชตเชฟเชจเช‚เชคเซ€เช“เชจเซ‹ เชธเชพเชฐเชพเช‚เชถ เช†เชชเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡) 60m + 30m = 90m
    4. เชตเชฟเชจเช‚เชคเซ€ เชชเซ‹เชกเชจเซ€ เชคเซเชฒเชจเชพเชฎเชพเช‚ CPU เชตเชชเชฐเชพเชถเชจเซ€ เชธเชฐเซ‡เชฐเชพเชถ เชŸเช•เชพเชตเชพเชฐเซ€เชจเซ€ เช—เชฃเชคเชฐเซ€ เช•เชฐเซ‡ เช›เซ‡, เชเชŸเชฒเซ‡ เช•เซ‡. 53 เชฎเซ€ / 90 เชฎเซ€ * 100% = 59%

เชนเชตเซ‡ เช†เชชเชฃเซ€ เชชเชพเชธเซ‡ เชชเซเชฐเชคเชฟเช•เซƒเชคเชฟเช“เชจเซ€ เชธเช‚เช–เซเชฏเชพ เชฌเชฆเชฒเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ เช•เซ‡ เช•เซ‡เชฎ เชคเซ‡ เชจเชฟเชฐเซเชงเชพเชฐเชฟเชค เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชœเชฐเซ‚เชฐเซ€ เชฌเชงเซเช‚ เช›เซ‡; เช† เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เช…เชฎเซ‡ เช—เซเชฃเชพเช‚เช•เชจเซ€ เช—เชฃเชคเชฐเซ€ เช•เชฐเซ€เช เช›เซ€เช:

ratio = 59% / 30% = 1.96

เชคเซ‡. เชชเซเชฐเชคเชฟเช•เซƒเชคเชฟเช“เชจเซ€ เชธเช‚เช–เซเชฏเชพเชฎเชพเช‚ ~2 เช—เชฃเซ‹ เชตเชงเชพเชฐเซ‹ เช•เชฐเชตเซ‹ เชœเซ‹เชˆเช เช…เชจเซ‡ เชคเซ‡เชจเซ€ เชฐเช•เชฎ [2 * 1.96] = 4 เชนเซ‹เชตเซ€ เชœเซ‹เชˆเช.

เช‰เชชเชธเช‚เชนเชพเชฐ: เชœเซ‡เชฎ เชคเชฎเซ‡ เชœเซ‹เชˆ เชถเช•เซ‹ เช›เซ‹, เช† เชฎเชฟเช•เซ‡เชจเชฟเชเชฎ เช•เชพเชฎ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชเช• เช†เชตเชถเซเชฏเช• เชธเซเชฅเชฟเชคเชฟ เช เช…เชตเชฒเซ‹เช•เชจ เช•เชฐเซ‡เชฒ เชชเซ‹เชกเชฎเชพเช‚ เชคเชฎเชพเชฎ เช•เชจเซเชŸเซ‡เชจเชฐ เชฎเชพเชŸเซ‡เชจเซ€ เชตเชฟเชจเช‚เชคเซ€เช“เชจเซ€ เชนเชพเชœเชฐเซ€ เช›เซ‡.

เชจเซ‹เชกเซเชธเชจเชพ เช†เชกเชพ เช“เชŸเซ‹เชธเซเช•เซ‡เชฒเชฟเช‚เช— เชฎเชพเชŸเซ‡เชจเซ€ เชชเชฆเซเชงเชคเชฟ (เช•เซเชฒเชธเซเชŸเชฐ เช“เชŸเซ‹เชธเซเช•เซ‡เชฒเชฐ)

เชฒเซ‹เชก เชตเชงเชคเซ€ เชตเช–เชคเซ‡ เชธเชฟเชธเซเชŸเชฎ เชชเชฐเชจเซ€ เชจเช•เชพเชฐเชพเชคเซเชฎเช• เช…เชธเชฐเชจเซ‡ เชฌเซ‡เช…เชธเชฐ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชฟเชค เชเชšเชชเซ€เช เชนเซ‹เชตเซเช‚ เชชเซ‚เชฐเชคเซเช‚ เชจเชฅเซ€. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, hpa เช•เช‚เชŸเซเชฐเซ‹เชฒเชฐ เชฎเซ‡เชจเซ‡เชœเชฐเชจเซ€ เชธเซ‡เชŸเชฟเช‚เช—เซเชธ เช…เชจเซเชธเชพเชฐ, เชคเซ‡ เชจเช•เซเช•เซ€ เช•เชฐเซ‡ เช›เซ‡ เช•เซ‡ เชชเซเชฐเชคเชฟเช•เซƒเชคเชฟเช“เชจเซ€ เชธเช‚เช–เซเชฏเชพเชฎเชพเช‚ 2 เช—เชฃเซ‹ เชตเชงเชพเชฐเซ‹ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡, เชชเชฐเช‚เชคเซ เชจเซ‹เชกเซเชธ เชชเชพเชธเซ‡ เช†เชตเชพ เชธเช‚เช–เซเชฏเชพเชฌเช‚เชง เชชเซ‹เชกเซเชธ เชšเชฒเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เชฎเชซเชค เชธเช‚เชธเชพเชงเชจเซ‹ เชจเชฅเซ€ (เชเชŸเชฒเซ‡ โ€‹โ€‹โ€‹โ€‹เช•เซ‡ เชจเซ‹เชก เชชเซเชฐเชฆเชพเชจ เช•เชฐเซ€ เชถเช•เชคเซเช‚ เชจเชฅเซ€. เชฐเชฟเช•เซเชตเซ‡เชธเซเชŸ เชชเซ‹เชกเชฎเชพเช‚ เชธเช‚เชธเชพเชงเชจเซ‹เชจเซ€ เชตเชฟเชจเช‚เชคเซ€ เช•เชฐเซ€) เช…เชจเซ‡ เช† เชชเซ‹เชกเซเชธ เชฌเชพเช•เซ€ เชธเซเชฅเชฟเชคเชฟเชฎเชพเช‚ เชธเซเชตเชฟเชš เช•เชฐเซ‡ เช›เซ‡.

เช† เช•เชฟเชธเซเชธเชพเชฎเชพเช‚, เชœเซ‹ เชชเซเชฐเชฆเชพเชคเชพ เชชเชพเชธเซ‡ เช…เชจเซเชฐเซ‚เชช IaaS/PaaS เชนเซ‹เชฏ (เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, GKE/GCE, AKS, EKS, เชตเช—เซ‡เชฐเซ‡), เชœเซ‡เชฎ เช•เซ‡ เชธเชพเชงเชจ เชจเซ‹เชก เช“เชŸเซ‹เชธเซเช•เซ‡เชฒเชฐ. เชคเซ‡ เชคเชฎเชจเซ‡ เช•เซเชฒเชธเซเชŸเชฐเชฎเชพเช‚ เชจเซ‹เชกเซเชธเชจเซ€ เชฎเชนเชคเซเชคเชฎ เช…เชจเซ‡ เชจเซเชฏเซ‚เชจเชคเชฎ เชธเช‚เช–เซเชฏเชพ เชธเซ‡เชŸ เช•เชฐเชตเชพเชจเซ€ เช…เชจเซ‡ เชœเซเชฏเชพเชฐเซ‡ เช•เซเชฒเชธเซเชŸเชฐ เช…เชจเซ‡ เชชเซ‹เชกเซเชธเชฎเชพเช‚ เชธเช‚เชธเชพเชงเชจเซ‹เชจเซ€ เช…เช›เชค เชนเซ‹เชฏ เชคเซเชฏเชพเชฐเซ‡ เชจเซ‹เชกเซเชธเชจเซ€ เชตเชฐเซเชคเชฎเชพเชจ เชธเช‚เช–เซเชฏเชพ (เชจเซ‹เชกเชจเซ‡ เช“เชฐเซเชกเชฐ/เชฆเซ‚เชฐ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช•เซเชฒเชพเช‰เชก เชชเซเชฐเชฆเชพเชคเชพ API เชจเซ‡ เช•เซ‰เชฒ เช•เชฐเซ€เชจเซ‡) เช†เชชเชฎเซ‡เชณเซ‡ เช—เซ‹เช เชตเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡. เชธเซเชจเชฟเชถเซเชšเชฟเชค เช•เชฐเซ€ เชถเช•เชพเชคเซเช‚ เชจเชฅเซ€ (เชฌเชพเช•เซ€ เชธเซเชฅเชฟเชคเชฟเชฎเชพเช‚ เช›เซ‡).

เช‰เชชเชธเช‚เชนเชพเชฐ: เชจเซ‹เชกเซเชธเชจเซ‡ เช“เชŸเซ‹เชธเซเช•เซ‡เชฒ เช•เชฐเชตเชพเชฎเชพเช‚ เชธเช•เซเชทเชฎ เชฅเชตเชพ เชฎเชพเชŸเซ‡, เชชเซ‹เชก เช•เชจเซเชŸเซ‡เชจเชฐเชฎเชพเช‚ เชตเชฟเชจเช‚เชคเซ€เช“ เชธเซ‡เชŸ เช•เชฐเชตเซ€ เชœเชฐเซ‚เชฐเซ€ เช›เซ‡ เชœเซ‡เชฅเซ€ k8s เชจเซ‹เชกเซเชธ เชชเชฐเชจเชพ เชญเชพเชฐเชจเซเช‚ เชฏเซ‹เช—เซเชฏ เชฎเซ‚เชฒเซเชฏเชพเช‚เช•เชจ เช•เชฐเซ€ เชถเช•เซ‡ เช…เชจเซ‡ เชคเซ‡ เชฎเซเชœเชฌ เช†เช—เชณเชจเชพ เชชเซ‹เชกเชจเซ‡ เชฒเซ‹เช‚เชš เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช•เซเชฒเชธเซเชŸเชฐเชฎเชพเช‚ เช•เซ‹เชˆ เชธเช‚เชธเชพเชงเชจเซ‹ เชจเชฅเซ€.

เชจเชฟเชทเซเช•เชฐเซเชท

เช เชจเซ‹เช‚เชงเชตเซเช‚ เชœเซ‹เชˆเช เช•เซ‡ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชจเซ‡ เชธเชซเชณเชคเชพเชชเซ‚เชฐเซเชตเช• เชšเชฒเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เช•เชจเซเชŸเซ‡เชจเชฐ เชธเช‚เชธเชพเชงเชจ เชฎเชฐเซเชฏเชพเชฆเชพ เชธเซ‡เชŸ เช•เชฐเชตเซ€ เชœเชฐเซ‚เชฐเซ€ เชจเชฅเซ€, เชชเชฐเช‚เชคเซ เชจเซ€เชšเซ‡เชจเชพ เช•เชพเชฐเชฃเซ‹เชธเชฐ เช†เชฎ เช•เชฐเชตเซเช‚ เชตเชงเซ เชธเชพเชฐเซเช‚ เช›เซ‡:

  1. k8s เชจเซ‹เชกเซเชธ เชตเชšเซเชšเซ‡ เชฒเซ‹เชก เชฌเซ‡เชฒเซ‡เชจเซเชธเชฟเช‚เช—เชจเชพ เชธเช‚เชฆเชฐเซเชญเชฎเชพเช‚ เชถเซ‡เชกเซเชฏเซ‚เชฒเชฐเชจเซ€ เชตเชงเซ เชธเชšเซ‹เชŸ เช•เชพเชฎเช—เซ€เชฐเซ€ เชฎเชพเชŸเซ‡
  2. "เชชเซ‹เชก เช‡เชตเชฟเช•เซเชถเชจ" เช‡เชตเซ‡เชจเซเชŸ เชฅเชตเชพเชจเซ€ เชธเช‚เชญเชพเชตเชจเชพเชจเซ‡ เช˜เชŸเชพเชกเชตเชพ เชฎเชพเชŸเซ‡
  3. เชเชชเซเชฒเซ€เช•เซ‡เชถเชจ เชชเซ‹เชกเซเชธ (HPA) เชจเชพ เช†เชกเชพ เช“เชŸเซ‹เชธเซเช•เซ‡เชฒเชฟเช‚เช— เช•เชพเชฎ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡
  4. เช•เซเชฒเชพเช‰เชก เชชเซเชฐเชฆเชพเชคเชพเช“ เชฎเชพเชŸเซ‡ เชจเซ‹เชกเซเชธเชจเชพ เช†เชกเชพ เช“เชŸเซ‹เชธเซเช•เซ‡เชฒเชฟเช‚เช— (เช•เซเชฒเชธเซเชŸเชฐ เช“เชŸเซ‹เชธเซเช•เซ‡เชฒเชฟเช‚เช—) เชฎเชพเชŸเซ‡

เช…เชฎเชพเชฐเชพ เชฌเซเชฒเซ‹เช— เชชเชฐ เช…เชจเซเชฏ เชฒเซ‡เช–เซ‹ เชชเชฃ เชตเชพเช‚เชšเซ‹:

เชธเซ‹เชฐเซเชธ: www.habr.com

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹