เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธเชจเซ€ เชตเชงเชคเซ€ เชœเชคเซ€ เชฒเซ‹เช•เชชเซเชฐเชฟเชฏเชคเชพ เชตเชฟเชถเซ‡

เชนเซ‡ เชนเชฌเชฐ!

เช‰เชจเชพเชณเชพเชจเชพ เช…เช‚เชคเซ‡, เช…เชฎเซ‡ เชคเชฎเชจเซ‡ เชฏเชพเชฆ เช•เชฐเชพเชตเชตเชพ เชฎเชพเช‚เช—เซ€เช เช›เซ€เช เช•เซ‡ เช…เชฎเซ‡ เชตเชฟเชทเชฏ เชชเชฐ เช•เชพเชฎ เช•เชฐเชตเชพเชจเซเช‚ เชšเชพเชฒเซ เชฐเชพเช–เซ€เช เช›เซ€เช เช•เซเชฏเซเชฌเชฐเซเชจเซ‡เชŸเชฟเชธ เช…เชจเซ‡ เชœเซ‚เชจเชจเซ€ เชถเชฐเซ‚เช†เชคเชฎเชพเช‚ เชธเซเชŸเซ‡เช•เช“เชตเชฐเชซเซเชฒเซ‹เชฎเชพเช‚เชฅเซ€ เช† เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชฎเชพเช‚ เชฌเชพเชฌเชคเซ‹เชจเซ€ เชธเซเชฅเชฟเชคเชฟ เชฆเชฐเซเชถเชพเชตเชคเซ‹ เชฒเซ‡เช– เชชเซเชฐเช•เชพเชถเชฟเชค เช•เชฐเชตเชพเชจเซเช‚ เชจเช•เซเช•เซ€ เช•เชฐเซเชฏเซเช‚.

เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธเชจเซ€ เชตเชงเชคเซ€ เชœเชคเซ€ เชฒเซ‹เช•เชชเซเชฐเชฟเชฏเชคเชพ เชตเชฟเชถเซ‡

เชตเชพเช‚เชšเชจ เช†เชจเช‚เชฆ!

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

Linux เชฎเชพเช‚ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเช“เชจเซ‡ เช…เชฒเช— เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช•เชจเซเชŸเซ‡เชจเชฐ เช–เชพเชธ เชกเชฟเชเชพเช‡เชจ เชคเชฐเซ€เช•เซ‡ เชถเชฐเซ‚ เชฅเชฏเซเช‚; เช•เชจเซเชŸเซ‡เชจเชฐ 2007 เชฅเซ€ เชธเชพเชฎเซ‡เชฒ เช›เซ‡ cgroups, เช…เชจเซ‡ 2002 เชฅเซ€ - เชจเซ‡เชฎเชธเซเชชเซ‡เชธ. เช•เชจเซเชŸเซ‡เชจเชฐ 2008 เชธเซเชงเซ€เชฎเชพเช‚ เชตเชงเซ เชธเชพเชฐเซ€ เชฐเซ€เชคเซ‡ เชกเชฟเชเชพเช‡เชจ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเชพ เชนเชคเชพ, เชœเซเชฏเชพเชฐเซ‡ เชคเซ‡ เช‰เชชเชฒเชฌเซเชง เชฌเชจเซเชฏเซเช‚ เชนเชคเซเช‚ เชเชฒเชเช•เซเชธเชธเซ€, เช…เชจเซ‡ Google เช เชคเซ‡เชจเซเช‚ เชชเซ‹เชคเชพเชจเซเช‚ เช†เช‚เชคเชฐเชฟเช• เช•เซ‹เชฐเซเชชเซ‹เชฐเซ‡เชŸ เชฎเชฟเช•เซ‡เชจเชฟเชเชฎ เชตเชฟเช•เชธเชพเชตเซเชฏเซเช‚ เชœเซ‡เชจเซ‡ เช•เชนเซ‡เชตเชพเชฏ เช›เซ‡ เชฌเซ‹เชฐเช—, เชœเซเชฏเชพเช‚ "เชฌเชงเซเช‚ เช•เชพเชฎ เช•เชจเซเชŸเซ‡เชจเชฐเชฎเชพเช‚ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡." เช…เชนเซ€เช‚เชฅเซ€ เช…เชฎเซ‡ 2013 เชธเซเชงเซ€ เชเชกเชชเชฅเซ€ เช†เช—เชณ เชตเชงเซ€เช เช›เซ€เช, เชœเซเชฏเชพเชฐเซ‡ เชกเซ‹เช•เชฐเชจเซเช‚ เชชเซเชฐเชฅเชฎ เชชเซเชฐเช•เชพเชถเชจ เชฅเชฏเซเช‚ เชนเชคเซเช‚, เช…เชจเซ‡ เช•เชจเซเชŸเซ‡เชจเชฐ เช†เช–เชฐเซ‡ เชฒเซ‹เช•เชชเซเชฐเชฟเชฏ เชธเชพเชฎเซ‚เชนเชฟเช• เช‰เช•เซ‡เชฒ เชฌเชจเซ€ เช—เชฏเชพ เชนเชคเชพ. เชคเซ‡ เชธเชฎเชฏเซ‡, เช•เชจเซเชŸเซ‡เชจเชฐ เช“เชฐเซเช•เซ‡เชธเซเชŸเซเชฐเซ‡เชถเชจเชจเซเช‚ เชฎเซเช–เซเชฏ เชธเชพเชงเชจ เชนเชคเซเช‚ เชฎเซ‡เชธเซ‹เชธ, เชœเซ‹เช•เซ‡ เชคเซ‡ เชœเช‚เช—เซ€ เชฐเซ€เชคเซ‡ เชฒเซ‹เช•เชชเซเชฐเชฟเชฏ เชจ เชนเชคเซ‹. Kubernetes เชธเซŒเชชเซเชฐเชฅเชฎ 2015 เชฎเชพเช‚ เชฐเชœเซ‚ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚, เชคเซเชฏเชพเชฐเชฌเชพเชฆ เช† เชธเชพเชงเชจ เช•เชจเซเชŸเซ‡เชจเชฐ เช“เชฐเซเช•เซ‡เชธเซเชŸเซเชฐเซ‡เชถเชจเชจเชพ เช•เซเชทเซ‡เชคเซเชฐเชฎเชพเช‚ เชตเชพเชธเซเชคเชตเชฟเช• เชงเซ‹เชฐเชฃ เชฌเชจเซ€ เช—เชฏเซเช‚ เชนเชคเซเช‚.

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

YAML เชคเชฐเซ€เช•เซ‡ เชˆเชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐ

เชตเชฟเชถเซเชตเชฎเชพเช‚ เชœเซ‡ เชชเชชเซ‡เชŸ เช…เชจเซ‡ เชถเซ‡เชซเชฅเซ€ เช•เซเชฌเชฐเชจเซ‡เชŸเชธ เชธเซเชงเซ€ เช—เชฏเซเช‚ เชนเชคเซเช‚, เชคเซ‡เชฎเชพเช‚เชจเซ‹ เชเช• เชธเซŒเชฅเซ€ เชฎเซ‹เชŸเซ‹ เชซเซ‡เชฐเชซเชพเชฐ เชนเชคเซ‹ "เช•เซ‹เชก เชคเชฐเซ€เช•เซ‡ เชˆเชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐ" เชฅเซ€ "เชกเซ‡เชŸเชพ เชคเชฐเซ€เช•เซ‡ เชˆเชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐ" เชคเชฐเชซ - เช–เชพเชธ เช•เชฐเซ€เชจเซ‡, YAML เชจเซ€ โ€‹โ€‹เชœเซ‡เชฎ. เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธเชฎเชพเช‚เชจเชพ เชคเชฎเชพเชฎ เชธเช‚เชธเชพเชงเชจเซ‹, เชœเซ‡เชฎเชพเช‚ เชชเซ‹เชกเซเชธ, เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจเซ‹, เชคเซˆเชจเชพเชค เชฆเชพเช–เชฒเชพเช“, เชตเซ‹เชฒเซเชฏเซเชฎเซ‹ เชตเช—เซ‡เชฐเซ‡เชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เชฅเชพเชฏ เช›เซ‡, เชคเซ‡ YAML เชซเชพเช‡เชฒเชฎเชพเช‚ เชธเชฐเชณเชคเชพเชฅเซ€ เชตเชฐเซเชฃเชตเซ€ เชถเช•เชพเชฏ เช›เซ‡. เชฆเชพเช–เซเชฒเชพ เชคเชฐเซ€เช•เซ‡:

apiVersion: v1
kind: Pod
metadata:
  name: site
  labels:
    app: web
spec:
  containers:
    - name: front-end
      image: nginx
      ports:
        - containerPort: 80

เช† เชฆเซƒเชถเซเชฏ DevOps เช…เชฅเชตเชพ SRE เชตเซเชฏเชพเชตเชธเชพเชฏเชฟเช•เซ‹ เชฎเชพเชŸเซ‡ Python เช…เชฅเชตเชพ Javascript เชœเซ‡เชตเซ€ เชญเชพเชทเชพเช“เชฎเชพเช‚ เช•เซ‹เชก เชฒเช–เซเชฏเชพ เชตเชฟเชจเชพ เชคเซ‡เชฎเชจเชพ เชตเชฐเซเช•เชฒเซ‹เชกเชจเซ‡ เชธเช‚เชชเซ‚เชฐเซเชฃ เชฐเซ€เชคเซ‡ เชตเซเชฏเช•เซเชค เช•เชฐเชตเชพเชจเซเช‚ เชธเชฐเชณ เชฌเชจเชพเชตเซ‡ เช›เซ‡.

เชกเซ‡เชŸเชพ เชคเชฐเซ€เช•เซ‡ เช‡เชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐ เช—เซ‹เช เชตเชตเชพเชจเชพ เช…เชจเซเชฏ เชซเชพเชฏเชฆเชพเช“เชฎเชพเช‚ เชถเชพเชฎเซ‡เชฒ เช›เซ‡:

  • GitOps เช…เชฅเชตเชพ Git เช“เชชเชฐเซ‡เชถเชจเซเชธ เชธเช‚เชธเซเช•เชฐเชฃ เชจเชฟเชฏเช‚เชคเซเชฐเชฃ. เช† เช…เชญเชฟเช—เชฎ เชคเชฎเชจเซ‡ เชฌเชงเซ€ Kubernetes YAML เชซเชพเช‡เชฒเซ‹เชจเซ‡ เช—เชฟเชŸ เชฐเชฟเชชเซ‹เชเซ€เชŸเชฐเซ€เชเชฎเชพเช‚ เชฐเชพเช–เชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡, เชœเซ‡เชฅเซ€ เชคเชฎเซ‡ เชฌเชฐเชพเชฌเชฐ เชŸเซเชฐเซ…เช• เช•เชฐเซ€ เชถเช•เซ‹ เช•เซ‡ เชซเซ‡เชฐเชซเชพเชฐ เช•เซเชฏเชพเชฐเซ‡ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹, เช•เซ‹เชฃเซ‡ เช•เชฐเซเชฏเซ‹ เช…เชจเซ‡ เชฌเชฐเชพเชฌเชฐ เชถเซเช‚ เชฌเชฆเชฒเชพเชฏเซเช‚. เช† เชธเชฎเช—เซเชฐ เชธเช‚เชธเซเชฅเชพเชฎเชพเช‚ เช•เชพเชฎเช—เซ€เชฐเซ€เชจเซ€ เชชเชพเชฐเชฆเชฐเซเชถเชฟเชคเชพเชฎเชพเช‚ เชตเชงเชพเชฐเซ‹ เช•เชฐเซ‡ เช›เซ‡ เช…เชจเซ‡ เช…เชธเซเชชเชทเซเชŸเชคเชพเชจเซ‡ เชฆเซ‚เชฐ เช•เชฐเซ€เชจเซ‡ เช“เชชเชฐเซ‡เชถเชจเชฒ เช•เชพเชฐเซเชฏเช•เซเชทเชฎเชคเชพเชฎเชพเช‚ เชธเซเชงเชพเชฐเซ‹ เช•เชฐเซ‡ เช›เซ‡, เช–เชพเชธ เช•เชฐเซ€เชจเซ‡ เชœเซเชฏเชพเช‚ เช•เชฐเซเชฎเชšเชพเชฐเซ€เช“เช เชคเซ‡เชฎเชจเซ‡ เชœเชฐเซ‚เชฐเซ€ เชธเช‚เชธเชพเชงเชจเซ‹เชจเซ€ เชถเซ‹เชง เช•เชฐเชตเซ€ เชœเซ‹เชˆเช. เชคเซ‡ เชœ เชธเชฎเชฏเซ‡, เชซเช•เซเชค เชชเซเชฒ เชตเชฟเชจเช‚เชคเซ€เชจเซ‡ เชฎเชฐเซเชœ เช•เชฐเซ€เชจเซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชธเช‚เชธเชพเชงเชจเซ‹เชฎเชพเช‚ เช†เชชเชฎเซ‡เชณเซ‡ เชซเซ‡เชฐเชซเชพเชฐเซ‹ เช•เชฐเชตเชพเชจเซเช‚ เชธเชฐเชณ เชฌเชจเซ‡ เช›เซ‡.
  • เชฎเชพเชชเชจเซ€เชฏเชคเชพ. เชœเซเชฏเชพเชฐเซ‡ เชธเช‚เชธเชพเชงเชจเซ‹เชจเซ‡ YAML เชคเชฐเซ€เช•เซ‡ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชคเซเชฏเชพเชฐเซ‡ เช•เซเชฒเชธเซเชŸเชฐ เช“เชชเชฐเซ‡เชŸเชฐเซ‹ เชฎเชพเชŸเซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชฐเชฟเชธเซ‹เชฐเซเชธเชฎเชพเช‚ เชเช• เช…เชฅเชตเชพ เชฌเซ‡ เชจเช‚เชฌเชฐเซ‹ เชฌเชฆเชฒเชตเชพเชจเซเช‚ เช…เชคเซเชฏเช‚เชค เชธเชฐเชณ เชฌเชจเซ‡ เช›เซ‡, เชœเซ‡เชจเชพเชฅเซ€ เชคเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชธเซเช•เซ‡เชฒ เช•เชฐเซ‡ เช›เซ‡ เชคเซ‡ เชฌเชฆเชฒเชพเชฏ เช›เซ‡. เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชชเซ‹เชกเซเชธเชจเชพ เช†เชกเชพ เช“เชŸเซ‹เชธเซเช•เซ‡เชฒเชฟเช‚เช— เชฎเชพเชŸเซ‡ เชเช• เชฎเชฟเช•เซ‡เชจเชฟเชเชฎ เชชเซเชฐเชฆเชพเชจ เช•เชฐเซ‡ เช›เซ‡, เชœเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชจเซ€เชšเชพ เช…เชจเซ‡ เช‰เชšเซเชš เชธเซเชคเชฐเชจเชพ เชŸเซเชฐเชพเชซเชฟเช•เชจเซ‡ เชนเซ‡เชจเซเชกเชฒ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชšเซ‹เช•เซเช•เชธ เชœเชฎเชพเชตเชŸ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจเชฎเชพเช‚ เชชเซ‹เชกเซเชธเชจเซ€ เชจเซเชฏเซ‚เชจเชคเชฎ เช…เชจเซ‡ เชฎเชนเชคเซเชคเชฎ เชธเช‚เช–เซเชฏเชพ เช•เซ‡เชŸเชฒเซ€ เชœเชฐเซ‚เชฐเซ€ เช›เซ‡ เชคเซ‡ เชจเช•เซเช•เซ€ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชตเชพเชชเชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชœเซ‹ เชคเชฎเซ‡ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ เชœเชฎเชพเชตเซเชฏเซเช‚ เชนเซ‹เชฏ เช•เซ‡ เชœเซ‡เชจเซ‡ เชŸเซเชฐเชพเชซเชฟเช•เชฎเชพเช‚ เช…เชšเชพเชจเช• เชตเชงเชพเชฐเซ‹ เชฅเชตเชพเชจเซ‡ เช•เชพเชฐเชฃเซ‡ เชตเชงเชพเชฐเชพเชจเซ€ เช•เซเชทเชฎเชคเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชนเซ‹เชฏ, เชคเซ‹ maxReplicas 10 เชฅเซ€ 20 เชฎเชพเช‚ เชฌเชฆเชฒเซ€ เชถเช•เชพเชฏ เช›เซ‡:

apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
  name: myapp
  namespace: default
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: myapp-deployment
  minReplicas: 1
  maxReplicas: 20
  metrics:
  - type: Resource
    resource:
      name: cpu
      target:
        type: Utilization
        averageUtilization: 50

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

package main

deny[msg] {
  input.kind = "Deployment"
  not input.spec.template.spec.securityContext.runAsNonRoot = true
  msg = "Containers must not run as root"
}

  • เช•เซเชฒเชพเช‰เชก เชชเซเชฐเชฆเชพเชคเชพ เชธเชพเชฅเซ‡ เชเช•เซ€เช•เชฐเชฃ เชฎเชพเชŸเซ‡เชจเชพ เชตเชฟเช•เชฒเซเชชเซ‹. เช†เชœเชจเซ€ เช‰เชšเซเชš เชคเช•เชจเซ€เช•เชฎเชพเช‚ เชธเซŒเชฅเซ€ เชจเซ‹เช‚เชงเชชเชพเชคเซเชฐ เชตเชฒเชฃเซ‹เชฎเชพเช‚เชจเซเช‚ เชเช• เชœเชพเชนเซ‡เชฐ เช•เซเชฒเชพเช‰เชก เชชเซเชฐเชฆเชพเชคเชพเช“ เชชเชฐ เชตเชฐเซเช•เชฒเซ‹เชก เชšเชฒเชพเชตเชตเชพเชจเซเช‚ เช›เซ‡. เช˜เชŸเช•เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชฎเซ‡เช˜ เชชเซเชฐเชฆเชพเชคเชพ Kubernetes เช•เซ‹เชˆเชชเชฃ เช•เซเชฒเชธเซเชŸเชฐเชจเซ‡ เช•เซเชฒเชพเช‰เชก เชชเซเชฐเชฆเชพเชคเชพ เชธเชพเชฅเซ‡ เชธเช‚เช•เชฒเชฟเชค เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡ เชœเซ‡เชจเชพ เชชเชฐ เชคเซ‡ เชšเชพเชฒเซ‡ เช›เซ‡. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชœเซ‹ เช•เซ‹เชˆ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ AWS เชชเชฐ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธเชฎเชพเช‚ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชšเชฒเชพเชตเซ‡ เช›เซ‡ เช…เชจเซ‡ เชคเซ‡ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชจเซ‡ เชธเซ‡เชตเชพ เชฆเซเชตเชพเชฐเชพ เชเช•เซเชธเชชเซ‹เช เช•เชฐเชตเชพ เชฎเชพเช‚เช—เซ‡ เช›เซ‡, เชคเซ‹ เช•เซเชฒเชพเช‰เชก เชชเซเชฐเชฆเชพเชคเชพ เช†เชชเชฎเซ‡เชณเซ‡ เชธเซ‡เชตเชพ เชฌเชจเชพเชตเชตเชพเชฎเชพเช‚ เชฎเชฆเชฆ เช•เชฐเซ‡ เช›เซ‡. LoadBalancerเชœเซ‡ เช†เชชเซ‹เช†เชช เชฒเซ‹เชก เชฌเซ‡เชฒเซ‡เชจเซเชธเชฐ เชชเซเชฐเชฆเชพเชจ เช•เชฐเชถเซ‡ เชเชฎเซ‡เชเซ‹เชจ เชธเซเชฅเชฟเชคเชฟเชธเซเชฅเชพเชชเช• เชฒเซ‹เชก เชฌเซ‡เชฒเซ‡เชจเซเชธเชฐเชŸเซเชฐเชพเชซเชฟเช•เชจเซ‡ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชชเซ‹เชกเซเชธ เชชเชฐ เชฐเซ€เชกเชพเชฏเชฐเซ‡เช•เซเชŸ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡.

เชตเชฟเชธเซเชคเชฐเชฃเช•เซเชทเชฎเชคเชพ

เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เช–เซ‚เชฌ เชœ เชเช•เซเชธเซเชŸเซ‡เชจเซเชธเชฟเชฌเชฒ เช›เซ‡ เช…เชจเซ‡ เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพเช“เชจเซ‡ เชคเซ‡ เช—เชฎเซ‡ เช›เซ‡. เชคเซเชฏเชพเช‚ เช‰เชชเชฒเชฌเซเชง เชธเช‚เชธเชพเชงเชจเซ‹เชจเซ‹ เชธเชฎเซ‚เชน เช›เซ‡ เชœเซ‡เชฎ เช•เซ‡ เชถเซ€เช‚เช—เซ‹, เชœเชฎเชพเชตเชŸ, StatefulSets, เชฐเชนเชธเซเชฏเซ‹, ConfigMaps, เชตเช—เซ‡เชฐเซ‡ เชธเชพเชšเซเช‚, เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเช“ เช…เชจเซ‡ เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพเช“ เชซเซ‹เชฐเซเชฎเชฎเชพเช‚ เช…เชจเซเชฏ เชธเช‚เชธเชพเชงเชจเซ‹ เช‰เชฎเซ‡เชฐเซ€ เชถเช•เซ‡ เช›เซ‡ เชตเซˆเชตเชฟเชงเซเชฏเชชเซ‚เชฐเซเชฃ เชธเช‚เชธเชพเชงเชจ เชตเซเชฏเชพเช–เซเชฏเชพเช“.

เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชœเซ‹ เช†เชชเชฃเซ‡ เช•เซ‹เชˆ เชธเช‚เชธเชพเชงเชจเชจเซ‡ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เช•เชฐเชตเชพ เชฎเชพเช‚เช—เซ€เช เช›เซ€เช CronTab, เชคเซ‹ เชชเช›เซ€ เชคเชฎเซ‡ เช†เชจเชพ เชœเซ‡เชตเซเช‚ เช•เช‚เชˆเช• เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹:

apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: crontabs.my.org
spec:
  group: my.org
  versions:
    - name: v1
      served: true
      storage: true
      Schema:
        openAPIV3Schema:
          type: object
          properties:
            spec:
              type: object
              properties:
                cronSpec:
                  type: string
                  pattern: '^(d+|*)(/d+)?(s+(d+|*)(/d+)?){4}$'
                replicas:
                  type: integer
                  minimum: 1
                  maximum: 10
  scope: Namespaced
  names:
    plural: crontabs
    singular: crontab
    kind: CronTab
    shortNames:
    - ct

เชชเชพเช›เชณเชฅเซ€ เช†เชชเชฃเซ‡ เช†เชจเชพ เชœเซ‡เชตเซเช‚ เช•เช‚เชˆเช• เช•เซเชฐเซ‹เชจเชŸเซ‡เชฌ เชธเช‚เชธเชพเชงเชจ เชฌเชจเชพเชตเซ€ เชถเช•เซ€เช เช›เซ€เช:

apiVersion: "my.org/v1"
kind: CronTab
metadata:
  name: my-cron-object
spec:
  cronSpec: "* * * * */5"
  image: my-cron-image
  replicas: 5

เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธเชฎเชพเช‚ เชเช•เซเชธเซเชŸเซ‡เชจเซเชธเชฟเชฌเชฟเชฒเชฟเชŸเซ€ เชฎเชพเชŸเซ‡เชจเซ‹ เชฌเซ€เชœเซ‹ เชตเชฟเช•เชฒเซเชช เช เช›เซ‡ เช•เซ‡ เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพ เชชเซ‹เชคเชพเชจเชพ เชจเชฟเชตเซ‡เชฆเชจเซ‹ เชฒเช–เซ€ เชถเช•เซ‡ เช›เซ‡. Ratorเชชเชฐเซ‡เชŸเชฐ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เช•เซเชฒเชธเซเชŸเชฐเชฎเชพเช‚ เชเช• เช–เชพเชธ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เช›เซ‡ เชœเซ‡ "เชจเชฟเชฏเช‚เชคเซเชฐเชฃ เชธเชฐเซเช•เชฟเชŸ" เช“เชชเชฐเซ‡เชŸเชฐเชจเซ€ เชฎเชฆเชฆเชฅเซ€, เชฏเซเชเชฐ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ API เชธเชพเชฅเซ‡ เชฎเชพเชนเชฟเชคเซ€เชจเซ€ เช†เชชเชฒเซ‡ เช•เชฐเซ€เชจเซ‡ CRDs (เช•เชธเซเชŸเชฎ เชฐเชฟเชธเซ‹เชฐเซเชธ เชกเซ‡เชซเชฟเชจเซ‡เชถเชจ)เชจเชพ เชธเช‚เชšเชพเชฒเชจเชจเซ‡ เชธเซเชตเชšเชพเชฒเชฟเชค เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡.

เชธเชฎเซเชฆเชพเชฏเชฎเชพเช‚ เชเชตเชพ เช˜เชฃเชพ เชธเชพเชงเชจเซ‹ เช›เซ‡ เชœเซ‡ เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพเช“ เชฎเชพเชŸเซ‡ เชคเซ‡เชฎเชจเชพ เชชเซ‹เชคเชพเชจเชพ เช“เชชเชฐเซ‡เชŸเชฐ เชฌเชจเชพเชตเชตเชพเชจเซเช‚ เชธเชฐเชณ เชฌเชจเชพเชตเซ‡ เช›เซ‡. เชคเซ‡เชฎเชจเซ€ เชตเชšเซเชšเซ‡ - เช“เชชเชฐเซ‡เชŸเชฐ เชซเซเชฐเซ‡เชฎเชตเชฐเซเช• เช…เชจเซ‡ เชคเซ‡เชจเชพ เช“เชชเชฐเซ‡เชŸเชฐ SDK. เช† SDK เชเช• เชชเชพเชฏเซ‹ เชชเซ‚เชฐเซ‹ เชชเชพเชกเซ‡ เช›เซ‡ เชœเซ‡เชฎเชพเช‚เชฅเซ€ เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพ เชเชกเชชเชฅเซ€ เช“เชชเชฐเซ‡เชŸเชฐ เชฌเชจเชพเชตเชตเชพเชจเซเช‚ เชถเชฐเซ‚ เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡. เชšเชพเชฒเซ‹ เช•เชนเซ€เช เช•เซ‡ เชคเชฎเซ‡ เช†เชจเชพ เชœเซ‡เชตเซเช‚ เช•เช‚เชˆเช• เช†เชฆเซ‡เชถ เชตเชพเช•เซเชฏเชฅเซ€ เชถเชฐเซ‚ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹:

$ operator-sdk new my-operator --repo github.com/myuser/my-operator

เช† เชคเชฎเชพเชฐเชพ เช“เชชเชฐเซ‡เชŸเชฐ เชฎเชพเชŸเซ‡ YAML เชซเชพเช‡เชฒเซ‹ เช…เชจเซ‡ เช—เซ‹เชฒเชพเช‚เช— เช•เซ‹เชก เชธเชนเชฟเชค เชคเชฎเชพเชฎ เชฌเซ‹เช‡เชฒเชฐเชชเซเชฒเซ‡เชŸ เช•เซ‹เชก เชฌเชจเชพเชตเซ‡ เช›เซ‡:

.
|____cmd
| |____manager
| | |____main.go
|____go.mod
|____deploy
| |____role.yaml
| |____role_binding.yaml
| |____service_account.yaml
| |____operator.yaml
|____tools.go
|____go.sum
|____.gitignore
|____version
| |____version.go
|____build
| |____bin
| | |____user_setup
| | |____entrypoint
| |____Dockerfile
|____pkg
| |____apis
| | |____apis.go
| |____controller
| | |____controller.go

เชชเช›เซ€ เชคเชฎเซ‡ เชœเชฐเซ‚เชฐเซ€ API เช…เชจเซ‡ เชจเชฟเชฏเช‚เชคเซเชฐเช• เช‰เชฎเซ‡เชฐเซ€ เชถเช•เซ‹ เช›เซ‹, เชœเซ‡เชฎ เช•เซ‡:

$ operator-sdk add api --api-version=myapp.com/v1alpha1 --kind=MyAppService

$ operator-sdk add controller --api-version=myapp.com/v1alpha1 --kind=MyAppService

เชชเช›เซ€, เช…เช‚เชคเซ‡, เช“เชชเชฐเซ‡เชŸเชฐเชจเซ‡ เชเชธเซ‡เชฎเซเชฌเชฒ เช•เชฐเซ‹ เช…เชจเซ‡ เชคเซ‡เชจเซ‡ เชคเชฎเชพเชฐเชพ เช•เชจเซเชŸเซ‡เชจเชฐเชจเซ€ เชฐเชœเชฟเชธเซเชŸเซเชฐเซ€เชฎเชพเช‚ เชฎเซ‹เช•เชฒเซ‹:

$ operator-sdk build your.container.registry/youruser/myapp-operator

เชœเซ‹ เชกเซ‡เชตเชฒเชชเชฐ เชตเชงเซ เชจเชฟเชฏเช‚เชคเซเชฐเชฃ เชˆเชšเซเช›เซ‡ เช›เซ‡, เชคเซ‹ Go เชซเชพเชˆเชฒเซ‹เชฎเชพเช‚ เชฌเซ‹เชˆเชฒเชฐเชชเซเชฒเซ‡เชŸ เช•เซ‹เชก เชฌเชฆเชฒเซ€ เชถเช•เชพเชฏ เช›เซ‡. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชจเชฟเชฏเช‚เชคเซเชฐเช•เชจเซ€ เชตเชฟเชถเชฟเชทเซเชŸเชคเชพเช“เชจเซ‡ เชธเซเชงเชพเชฐเชตเชพ เชฎเชพเชŸเซ‡, เชคเชฎเซ‡ เชซเชพเช‡เชฒเชฎเชพเช‚ เชซเซ‡เชฐเชซเชพเชฐเซ‹ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ controller.go.

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

$ kubectl kudo install zookeeper
$ kubectl kudo install kafka

เช…เชจเซ‡ เชชเช›เซ€ เชคเซ‡เชจเซ‡ เชฌเซ€เชœเชพ เช†เชฆเซ‡เชถ เชธเชพเชฅเซ‡ เช—เซ‹เช เชตเซ‹:

$ kubectl kudo install kafka --instance=my-kafka-name 
            -p ZOOKEEPER_URI=zk-zookeeper-0.zk-hs:2181 
            -p ZOOKEEPER_PATH=/my-path -p BROKER_CPUS=3000m 
            -p BROKER_COUNT=5 -p BROKER_MEM=4096m 
            -p DISK_SIZE=40Gi -p MIN_INSYNC_REPLICAS=3 
            -p NUM_NETWORK_THREADS=10 -p NUM_IO_THREADS=20

เชจเชตเซ€เชจเชคเชพ

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

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

เชธเชฎเซเชฆเชพเชฏ

เช•เซเชฌเชฐเชจเซ‡เชŸเซ€เชธเชจเซ€ เชฒเซ‹เช•เชชเซเชฐเชฟเชฏเชคเชพเชจเซเช‚ เชฌเซ€เชœเซเช‚ เชฎเซเช–เซเชฏ เชชเชพเชธเซเช‚ เชคเซ‡เชจเชพ เชธเชฎเซเชฆเชพเชฏเชจเซ€ เชถเช•เซเชคเชฟ เช›เซ‡. 2015 เชฎเชพเช‚, เชตเชฐเซเชเชจ 1.0 เชชเชฐ เชชเชนเซ‹เช‚เชšเซเชฏเชพ เชชเช›เซ€, เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชฆเซเชตเชพเชฐเชพ เชชเซเชฐเชพเชฏเซ‹เชœเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚ เช•เซเชฒเชพเช‰เชก เชจเซ‡เชŸเซ€เชต เช•เชฎเซเชชเซเชฏเซเชŸเชฟเช‚เช— เชซเชพเช‰เชจเซเชกเซ‡เชถเชจ.

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

เช•เซเชฒเชพเช‰เชก เชจเซ‡เชŸเชฟเชต เชซเชพเช‰เชจเซเชกเซ‡เชถเชจ CloudNativeCon/KubeCon เชจเซเช‚ เชชเชฃ เช†เชฏเซ‹เชœเชจ เช•เชฐเซ‡ เช›เซ‡, เชœเซ‡ เชฒเช–เชตเชพเชจเชพ เชธเชฎเชฏเซ‡, เชตเชฟเชถเซเชตเชจเซ€ เชธเซŒเชฅเซ€ เชฎเซ‹เชŸเซ€ เช“เชชเชจ เชธเซ‹เชฐเซเชธ เช•เซ‹เชจเซเชซเชฐเชจเซเชธ เช›เซ‡. เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡ เชตเชฐเซเชทเชฎเชพเช‚ เชคเซเชฐเชฃ เชตเช–เชค เชฏเซ‹เชœเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชคเซ‡ เชนเชœเชพเชฐเซ‹ เชตเซเชฏเชพเชตเชธเชพเชฏเชฟเช•เซ‹เชจเซ‡ เชเช•เชธเชพเชฅเซ‡ เชฒเชพเชตเซ‡ เช›เซ‡ เชœเซ‡เช“ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เช…เชจเซ‡ เชคเซ‡เชจเซ€ เช‡เช•เซ‹เชธเชฟเชธเซเชŸเชฎเชจเซ‡ เชธเซเชงเชพเชฐเชตเชพ เชฎเชพเช‚เช—เซ‡ เช›เซ‡, เชคเซ‡เชฎเชœ เชฆเชฐ เชคเซเชฐเชฃ เชฎเชนเชฟเชจเซ‡ เชฆเซ‡เช–เชพเชคเซ€ เชจเชตเซ€ เชธเซเชตเชฟเชงเชพเช“ เชถเซ€เช–เซ‡ เช›เซ‡.

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

เช›เซ‡เชตเชŸเซ‡, เชนเซเช‚ เชฎเชพเชจเซเช‚ เช›เซเช‚ เช•เซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชเชŸเชฒเซ‹ เชธเชซเชณ เชจเชนเซ€เช‚ เชฅเชพเชฏ เชœเซ‡เชŸเชฒเซ‹ เชคเซ‡ เชธเชฎเช—เซเชฐ เชธเชฎเซเชฆเชพเชฏเชจเชพ เชธเชญเชพเชจ เชชเซเชฐเชฏเชพเชธเซ‹ เชตเชฟเชจเชพ เช›เซ‡, เชœเซเชฏเชพเช‚ เชฒเซ‹เช•เซ‹ เชเช• เชธเชพเชฅเซ‡ เชตเชณเช—เซ€ เชฐเชนเซ‡ เช›เซ‡ เชชเชฐเช‚เชคเซ เชคเซ‡ เชœ เชธเชฎเชฏเซ‡ เชจเชตเชพ เช†เชตเชจเชพเชฐเชพเช“เชจเซ‡ เชซเซ‹เชฒเซเชกเชฎเชพเช‚ เช†เชตเช•เชพเชฐเซ‡ เช›เซ‡.

เชญเชตเชฟเชทเซเชฏ

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

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

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

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