เดชเต‹เด•เดฃเต‹? เดฌเดพเดทเต! เดทเต†เตฝ-เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฑเต† เด•เดฃเตเดŸเตเดฎเตเดŸเตเดŸเตเด• (KubeCon EU'2020-เตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด…เดตเดฒเต‹เด•เดจเดตเตเด‚ เดตเต€เดกเดฟเดฏเต‹ เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเตเด‚)

เดˆ เดตเตผเดทเดคเตเดคเต† เดชเตเดฐเดงเดพเดจ เดฏเต‚เดฑเต‹เดชเตเดฏเตป เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต เด•เต‹เตบเดซเดฑเตปเดธเต - KubeCon + CloudNativeCon Europe 2020 - เดตเต†เตผเดšเตเดตเตฝ เด†เดฏเดฟเดฐเตเดจเตเดจเต. เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เดซเต‹เตผเดฎเดพเดฑเตเดฑเดฟเดฒเต† เด…เดคเตเดคเดฐเดฎเตŠเดฐเต เดฎเดพเดฑเตเดฑเด‚ เดžเด™เตเด™เดณเตเดŸเต† เดฆเต€เตผเด˜เด•เดพเดฒเดฎเดพเดฏเดฟ เด†เดธเต‚เดคเตเดฐเดฃเด‚ เดšเต†เดฏเตเดค เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเต เดจเตฝเด•เตเดจเตเดจเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดžเด™เตเด™เดณเต† เดคเดŸเดžเตเดžเดฟเดฒเตเดฒ โ€œเดชเต‹เด•เดฃเต‹? เดฌเดพเดทเต! เดžเด™เตเด™เดณเตเดŸเต† เด“เดชเตเดชเตบ เดธเต‹เดดเตโ€Œเดธเต เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเดฟเดจเดพเดฏเดฟ เดธเดฎเตผเดชเตเดชเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดŸ เดทเต†เตฝ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฑเต† เด•เดฃเตเดŸเตเดฎเตเดŸเตเดŸเตเด• เดทเต†เตฝ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ.

เดธเด‚เดญเดพเดทเดฃเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดชเตเดฐเดšเต‹เดฆเดจเด‚ เด‰เตพเด•เตเด•เตŠเดฃเตเดŸ เดˆ เดฒเต‡เด–เดจเด‚, เด•เตเดฌเต†เตผเดจเต†เดฑเตเดฑเดธเดฟเดจเดพเดฏเดฟ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผเดฎเดพเดฐเต† เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจ เดชเตเดฐเด•เตเดฐเดฟเดฏ เดฒเดณเดฟเดคเดฎเดพเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด’เดฐเต เดธเดฎเต€เดชเดจเด‚ เด…เดตเดคเดฐเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต, เด•เต‚เดŸเดพเดคเต† เด’เดฐเต เดทเต†เตฝ-เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด•เตเดฑเดžเตเดž เดชเตเดฐเดฏเดคเตเดจเดคเตเดคเดฟเตฝ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดŽเด™เตเด™เดจเต† เดธเตเดตเดจเตเดคเดฎเดพเด•เตเด•เดพเด‚ เดŽเดจเตเดจเต เด•เดพเดฃเดฟเด•เตเด•เตเดจเตเดจเต.

เดชเต‹เด•เดฃเต‹? เดฌเดพเดทเต! เดทเต†เตฝ-เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฑเต† เด•เดฃเตเดŸเตเดฎเตเดŸเตเดŸเตเด• (KubeCon EU'2020-เตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด…เดตเดฒเต‹เด•เดจเดตเตเด‚ เดตเต€เดกเดฟเดฏเต‹ เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเตเด‚)

เดชเดฐเดฟเดšเดฏเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเต เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเดฟเดจเตเดฑเต† เดตเต€เดกเดฟเดฏเต‹ (เด‡เด‚เด—เตเดฒเต€เดทเดฟเตฝ ~23 เดฎเดฟเดจเดฟเดฑเตเดฑเต, เดฒเต‡เด–เดจเดคเตเดคเต‡เด•เตเด•เดพเตพ เด•เต‚เดŸเตเดคเตฝ เดตเดฟเดตเดฐเดฆเดพเดฏเด•เดฎเดพเดฃเต) เด•เต‚เดŸเดพเดคเต† เด…เดคเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดชเตเดฐเดงเดพเดจ เดญเดพเด—เดตเตเด‚ เดตเดพเดšเด• เดฐเต‚เดชเดคเตเดคเดฟเตฝ. เดชเต‹เด•เต‚!

เดซเตเดฒเดพเดจเตเดฑเดฟเตฝ เดžเด™เตเด™เตพ เดŽเดฒเตเดฒเดพเด‚ เดจเดฟเดฐเดจเตเดคเดฐเด‚ เด’เดชเตเดฑเตเดฑเดฟเดฎเตˆเดธเต เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เด“เดŸเตเดŸเต‹เดฎเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เด‡เดจเตเดจเต เดจเดฎเตเดฎเตพ เดฎเดฑเตเดฑเตŠเดฐเต เด†เดตเต‡เดถเด•เดฐเดฎเดพเดฏ เด†เดถเดฏเดคเตเดคเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดธเด‚เดธเดพเดฐเดฟเด•เตเด•เตเด‚. เด•เดฃเตเดŸเตเดฎเตเดŸเตเดŸเตเด•: เด•เตเดฒเต—เดกเต-เดจเต‡เดฑเตเดฑเต€เดตเต เดทเต†เตฝ เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเด‚เด—เต!

เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เด‡เดคเต†เดฒเตเดฒเดพเด‚ เดธเด‚เดญเดตเดฟเด•เตเด•เตเดจเตเดจ เดธเดจเตเดฆเตผเดญเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดจเดฎเตเด•เตเด•เต เด†เดฐเด‚เดญเดฟเด•เตเด•เดพเด‚: เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต.

Kubernetes API, เด•เตบเดŸเตเดฐเต‹เดณเดฑเตเด•เตพ

เด“เดฐเต‹ เดคเดฐเด‚ เด’เดฌเตโ€Œเดœเด•เตโ€Œเดฑเตเดฑเดฟเดจเตเด‚ เดกเดฏเดฑเด•เตโ€ŒเดŸเดฑเดฟเด•เดณเตเดณเตเดณ เด’เดฐเต เดคเดฐเด‚ เดซเดฏเตฝ เดธเต†เตผเดตเดฑเดพเดฏเดฟ เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเดฟเดฒเต† API เดชเตเดฐเดคเดฟเดจเดฟเดงเต€เด•เดฐเดฟเด•เตเด•เดพเด‚. เดˆ เดธเต†เตผเดตเดฑเดฟเดฒเต† เด’เดฌเตเดœเด•เตเดฑเตเดฑเตเด•เดณเต† (เดตเดฟเดญเดตเด™เตเด™เตพ) เดชเตเดฐเดคเดฟเดจเดฟเดงเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต YAML เดซเดฏเดฒเตเด•เดณเดพเดฃเต. เด•เต‚เดŸเดพเดคเต†, เดธเต†เตผเดตเดฑเดฟเดจเต เดฎเต‚เดจเตเดจเต เด•เดพเดฐเตเดฏเด™เตเด™เตพ เดšเต†เดฏเตเดฏเดพเตป เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เด…เดŸเดฟเดธเตเดฅเดพเดจ API เด‰เดฃเตเดŸเต:

  • เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เดพเตป เดตเดฟเดญเดตเด‚ เด…เดคเดฟเดจเตเดฑเต† เดคเดฐเดคเตเดคเดฟเดฒเตเด‚ เดชเต‡เดฐเดฟเดฒเตเด‚;
  • เดฎเดพเดฑเตเดฑเด‚ เดฑเดฟเดธเต‹เดดเตเดธเต (เดˆ เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเตฝ, เดธเต†เตผเดตเตผ "เดถเดฐเดฟเดฏเดพเดฏ" เด’เดฌเตโ€Œเดœเด•เตเดฑเตเดฑเตเด•เตพ เดฎเดพเดคเตเดฐเดฎเต‡ เดธเด‚เดญเดฐเดฟเด•เตเด•เตเดจเตเดจเตเดณเตเดณเต‚ - เดŽเดฒเตเดฒเดพเด‚ เดคเต†เดฑเตเดฑเดพเดฏเดฟ เดฐเต‚เดชเดชเตเดชเต†เดŸเตเดคเตเดคเดฟเดฏเดต เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดฎเดฑเตเดฑเต เดกเดฏเดฑเด•เตโ€ŒเดŸเดฑเดฟเด•เตพเด•เตเด•เดพเดฏเดฟ เด‰เดฆเตเดฆเต‡เดถเดฟเดšเตเดšเดต เดจเดฟเดฐเดธเดฟเดšเตเดšเต);
  • เดŸเตเดฐเดพเด•เตเด•เต เดฑเดฟเดธเต‹เดดเตเดธเดฟเดจเดพเดฏเดฟ (เดˆ เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเตฝ, เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเดฟเดจเต เด…เดคเดฟเดจเตเดฑเต† เดจเดฟเดฒเดตเดฟเดฒเต†/เด…เดชเตเดกเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดค เดชเดคเดฟเดชเตเดชเต เด‰เดŸเดจเดŸเดฟ เดฒเดญเดฟเด•เตเด•เตเด‚).

เด…เดคเดฟเดจเดพเตฝ, เดฎเต‚เดจเตเดจเต เด…เดŸเดฟเดธเตเดฅเดพเดจ เดฐเต€เดคเดฟเด•เตพ (เด…เดคเต†, เดฏเดฅเดพเตผเดคเตเดฅเดคเตเดคเดฟเตฝ เดฎเดฑเตเดฑเตเดณเตเดณเดตเดฏเตเดฃเตเดŸเต, เดชเด•เตเดทเต‡ เดžเด™เตเด™เตพ เด‡เดชเตเดชเต‹เตพ เด…เดต เด’เดดเดฟเดตเดพเด•เตเด•เตเด‚) เด’เดฐเต เดคเดฐเด‚ เดซเดฏเตฝ เดธเต†เตผเดตเดฑเดพเดฏเดฟ (YAML เดฎเดพเดจเดฟเดซเต†เดธเตเดฑเตเดฑเตเด•เตพเด•เตเด•เต) เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต.

เดชเต‹เด•เดฃเต‹? เดฌเดพเดทเต! เดทเต†เตฝ-เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฑเต† เด•เดฃเตเดŸเตเดฎเตเดŸเตเดŸเตเด• (KubeCon EU'2020-เตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด…เดตเดฒเต‹เด•เดจเดตเตเด‚ เดตเต€เดกเดฟเดฏเต‹ เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเตเด‚)

เดธเต†เตผเดตเดฑเดฟเดจเต เดตเดฟเดตเดฐเด™เตเด™เตพ เดธเด‚เดญเดฐเดฟเด•เตเด•เดพเตป เดฎเดพเดคเตเดฐเดฎเต‡ เด•เดดเดฟเดฏเต‚ เดŽเดจเตเดจเดคเดพเดฃเต เดชเตเดฐเดถเตเดจเด‚. เด‡เดคเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด†เดตเดถเตเดฏเดฎเดพเดฃเต เด•เดฃเตเดŸเตเดฐเต‡เดพเดณเตผ - เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเดฟเดจเตเดฑเต† เดฒเต‹เด•เดคเตเดคเดฟเดฒเต† เดฐเดฃเตเดŸเดพเดฎเดคเตเดคเต† เดเดฑเตเดฑเดตเตเด‚ เดชเตเดฐเดงเดพเดจเดชเตเดชเต†เดŸเตเดŸเดคเตเด‚ เด…เดŸเดฟเดธเตเดฅเดพเดจเดชเดฐเดตเตเดฎเดพเดฏ เด†เดถเดฏเด‚.

เดฐเดฃเตเดŸเต เดชเตเดฐเดงเดพเดจ เดคเดฐเด‚ เด•เตบเดŸเตเดฐเต‹เดณเดฑเตเด•เตพ เด‰เดฃเตเดŸเต. เด†เดฆเตเดฏเดคเตเดคเต‡เดคเต เด•เตเดฌเต†เตผเดจเต†เดฑเตเดฑเดธเดฟเตฝ เดจเดฟเดจเตเดจเต เดตเดฟเดตเดฐเด™เตเด™เตพ เดŽเดŸเตเด•เตเด•เตเด•เดฏเตเด‚ เดจเต†เดธเตเดฑเตเดฑเดกเต เดฒเต‹เดœเดฟเด•เตเด•เต เด…เดจเตเดธเดฐเดฟเดšเตเดšเต เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ K8- เดฒเต‡เด•เตเด•เต เดคเดฟเดฐเดฟเด•เต† เดจเตฝเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เดฐเดฃเตเดŸเดพเดฎเดคเตเดคเต‡เดคเต เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเดฟเตฝ เดจเดฟเดจเตเดจเต เดตเดฟเดตเดฐเด™เตเด™เตพ เดŽเดŸเตเด•เตเด•เตเดจเตเดจเต, เดชเด•เตเดทเต‡, เด†เดฆเตเดฏ เดคเดฐเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเดฏเดฟ, เดšเดฟเดฒ เดฌเดพเดนเตเดฏ เดตเดฟเดญเดตเด™เตเด™เดณเตเดŸเต† เด…เดตเดธเตเดฅ เดฎเดพเดฑเตเดฑเตเดจเตเดจเต.

Kubernetes-เตฝ เด’เดฐเต เดตเดฟเดจเตเดฏเดพเดธเด‚ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจ เดชเตเดฐเด•เตเดฐเดฟเดฏเดฏเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดจเดฎเตเด•เตเด•เต เดธเต‚เด•เตเดทเตเดฎเดฎเดพเดฏเดฟ เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เดพเด‚:

  • เดตเดฟเดจเตเดฏเดพเดธ เด•เตบเดŸเตเดฐเต‹เดณเตผ (เด‰เตพเดชเตเดชเต†เดŸเตเดคเตเดคเดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต kube-controller-manager) เดตเดฟเดจเตเดฏเดพเดธเดคเตเดคเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดตเดฟเดตเดฐเด™เตเด™เตพ เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เตเด•เดฏเตเด‚ เด’เดฐเต เดฑเต†เดชเตเดฒเดฟเด•เตเด•เดธเต†เดฑเตเดฑเต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต.
  • เดˆ เดตเดฟเดตเดฐเด™เตเด™เดณเต† เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟ ReplicaSet เดฐเดฃเตเดŸเต เดชเด•เตผเดชเตเดชเตเด•เตพ (เดฐเดฃเตเดŸเต เดชเต‹เดกเตเด•เตพ) เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต, เดŽเดจเตเดจเดพเตฝ เดˆ เดชเต‹เดกเตเด•เตพ เด‡เดคเตเดตเดฐเต† เดทเต†เดกเตเดฏเต‚เตพ เดšเต†เดฏเตเดคเดฟเดŸเตเดŸเดฟเดฒเตเดฒ.
  • เดทเต†เดกเตเดฏเต‚เดณเตผ เดชเต‹เดกเตเด•เตพ เดทเต†เดกเตเดฏเต‚เตพ เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เด…เดตเดฐเตเดŸเต† YAML-เด•เดณเดฟเดฒเต‡เด•เตเด•เต เดจเต‹เดกเต เดตเดฟเดตเดฐเด™เตเด™เตพ เดšเต‡เตผเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต.
  • เด•เตเดฌเต†เดฒเต†เดฑเตเดฑเตเด•เตพ เด’เดฐเต เดฌเดพเดนเตเดฏ เด‰เดฑเดตเดฟเดŸเดคเตเดคเดฟเตฝ เดฎเดพเดฑเตเดฑเด™เตเด™เตพ เดตเดฐเตเดคเตเดคเตเดจเตเดจเต (เดกเต‹เด•เตเด•เตผ เดŽเดจเตเดจเต เดชเดฑเดฏเตเด•).

เดคเตเดŸเตผเดจเตเดจเต เดˆ เดฎเตเดดเตเดตเตป เด•เตเดฐเดฎเดตเตเด‚ เดตเดฟเดชเดฐเต€เดค เด•เตเดฐเดฎเดคเตเดคเดฟเตฝ เด†เดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต: เด•เตเดฌเต†เดฒเต†เดฑเตเดฑเต เด•เดฃเตเดŸเต†เดฏเตเดจเดฑเตเด•เตพ เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดชเต‹เดกเดฟเดจเตเดฑเต† เดจเดฟเดฒ เด•เดฃเด•เตเด•เดพเด•เตเด•เตเด•เดฏเตเด‚ เดคเดฟเดฐเดฟเด•เต† เด…เดฏเดฏเตเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. ReplicaSet เด•เตบเดŸเตเดฐเต‹เดณเตผ เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดธเต เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดฑเต†เดชเตเดฒเดฟเด•เตเด• เดธเต†เดฑเตเดฑเดฟเดจเตเดฑเต† เด…เดตเดธเตเดฅ เด…เดชเตเดกเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เดกเดฟเดชเตเดฒเต‹เดฏเตโ€Œเดฎเต†เดจเตเดฑเต เด•เตบเดŸเตเดฐเต‹เดณเดฑเดฟเดฒเตเด‚ เด‡เดคเตเดคเดจเตเดจเต† เดธเด‚เดญเดตเดฟเด•เตเด•เตเดจเตเดจเต, เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเดฟเดจเต เด’เดŸเตเดตเดฟเตฝ เด…เดชเตโ€Œเดกเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดค (เดจเดฟเดฒเดตเดฟเดฒเต†) เดจเดฟเดฒ เดฒเดญเดฟเด•เตเด•เตเด‚.

เดชเต‹เด•เดฃเต‹? เดฌเดพเดทเต! เดทเต†เตฝ-เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฑเต† เด•เดฃเตเดŸเตเดฎเตเดŸเตเดŸเตเด• (KubeCon EU'2020-เตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด…เดตเดฒเต‹เด•เดจเดตเตเด‚ เดตเต€เดกเดฟเดฏเต‹ เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเตเด‚)

เดทเต†เตฝ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ

เดตเดฟเดตเดฟเดง เด•เตบเดŸเตเดฐเต‹เดณเดฑเตเด•เดณเตเดŸเต† เดธเด‚เดฏเตเด•เตเดค เดชเตเดฐเดตเตผเดคเตเดคเดจเดคเตเดคเต† เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟเดฏเตเดณเตเดณเดคเดพเดฃเต เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต เดŽเดจเตเดจเต เด‡เดคเต เดฎเดพเดฑเตเดจเตเดจเต (เด•เตเดฌเตผเดจเต†เดฑเตเดฑเตเดธเต เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผเดฎเดพเดฐเตเด‚ เด•เตบเดŸเตเดฐเต‹เดณเตผเดฎเดพเดฐเดพเดฃเต). เดšเต‹เดฆเตเดฏเด‚ เด‰เดฏเตผเดจเตเดจเตเดตเดฐเตเดจเตเดจเต, เด•เตเดฑเดžเตเดž เดชเดฐเดฟเดถเตเดฐเดฎเดคเตเดคเดฟเตฝ เดจเดฟเด™เตเด™เดณเตเดŸเต† เดธเตเดตเดจเตเดคเด‚ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฑเต† เดŽเด™เตเด™เดจเต† เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเด‚? เด‡เดตเดฟเดŸเต† เดžเด™เตเด™เตพ เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเดšเตเดšเดคเต เดฐเด•เตเดทเดพเดชเตเดฐเดตเตผเดคเตเดคเดจเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เดตเดฐเตเดจเตเดจเต เดทเต†เตฝ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ. เดชเดฐเดฟเดšเดฟเดคเดฎเดพเดฏ เดฐเต€เดคเดฟเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดธเตเดตเดจเตเดคเด‚ เดชเตเดฐเดธเตเดคเดพเดตเดจเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเตป เด‡เดคเต เดธเดฟเดธเตเดฑเตเดฑเด‚ เด…เดกเตเดฎเดฟเดจเดฟเดธเตเดŸเตเดฐเต‡เดฑเตเดฑเตผเดฎเดพเดฐเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต.

เดชเต‹เด•เดฃเต‹? เดฌเดพเดทเต! เดทเต†เตฝ-เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฑเต† เด•เดฃเตเดŸเตเดฎเตเดŸเตเดŸเตเด• (KubeCon EU'2020-เตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด…เดตเดฒเต‹เด•เดจเดตเตเด‚ เดตเต€เดกเดฟเดฏเต‹ เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเตเด‚)

เดฒเดณเดฟเดคเดฎเดพเดฏ เด‰เดฆเดพเดนเดฐเดฃเด‚: เดฐเดนเดธเตเดฏเด™เตเด™เตพ เดชเด•เตผเดคเตเดคเตฝ

เด’เดฐเต เดฒเดณเดฟเดคเดฎเดพเดฏ เด‰เดฆเดพเดนเดฐเดฃเด‚ เดจเต‹เด•เตเด•เดพเด‚.

เดจเดฎเตเด•เตเด•เต เด’เดฐเต เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต เด•เตเดฒเดธเตเดฑเตเดฑเตผ เด‰เดฃเตเดŸเต†เดจเตเดจเต เดชเดฑเดฏเดพเด‚. เด…เดคเดฟเดจเต เด’เดฐเต เดจเต†เดฏเดฟเด‚เดธเตเดชเต‡เดธเต เด‰เดฃเตเดŸเต default เดšเดฟเดฒ เดฐเดนเดธเตเดฏเด™เตเด™เดณเต‹เดŸเตŠเดชเตเดชเด‚ mysecret. เด•เต‚เดŸเดพเดคเต†, เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเตฝ เดฎเดฑเตเดฑเต เดจเต†เดฏเดฟเด‚เดธเตเดชเต‡เดธเตเด•เดณเตเด‚ เด‰เดฃเตเดŸเต. เด…เดตเดฏเดฟเตฝ เดšเดฟเดฒเดคเดฟเตฝ เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• เดฒเต‡เดฌเตฝ เด˜เดŸเดฟเดชเตเดชเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เด’เดฐเต เดฒเต‡เดฌเตฝ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดจเต†เดฏเดฟเด‚เดธเตเดชเต‡เดธเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เดฐเดนเดธเตเดฏเด‚ เดชเด•เตผเดคเตเดคเตเด• เดŽเดจเตเดจเดคเดพเดฃเต เดžเด™เตเด™เดณเตเดŸเต† เดฒเด•เตเดทเตเดฏเด‚.

เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเตฝ เดชเตเดคเดฟเดฏ เดจเต†เดฏเดฟเด‚เดธเตโ€Œเดชเต†เดฏเตโ€Œเดธเตเด•เตพ เดฆเตƒเดถเตเดฏเดฎเดพเด•เดพเดฎเต†เดจเตเดจเดคเตเด‚ เด…เดตเดฏเดฟเตฝ เดšเดฟเดฒเดคเต เดˆ เดฒเต‡เดฌเตฝ เด‰เดณเตเดณเดคเดฟเดจเดพเดฒเตเด‚ เดšเตเดฎเดคเดฒ เดธเด™เตเด•เต€เตผเดฃเตเดฃเดฎเดพเดฃเต. เดฎเดฑเตเดตเดถเดคเตเดคเต, เดฒเต‡เดฌเตฝ เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เตเดฎเตเดชเต‹เตพ, เดฐเดนเดธเตเดฏเดตเตเด‚ เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เดฃเด‚. เด‡เดคเตเด•เต‚เดŸเดพเดคเต†, เดฐเดนเดธเตเดฏเด‚ เดคเดจเตเดจเต† เดฎเดพเดฑเตเดฑเดพเดจเตเด‚ เด•เดดเดฟเดฏเตเด‚: เดˆ เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเตฝ, เดชเตเดคเดฟเดฏ เดฐเดนเดธเตเดฏเด‚ เดฒเต‡เดฌเดฒเตเด•เดณเตเดณเตเดณ เดŽเดฒเตเดฒเดพ เดจเต†เดฏเดฟเด‚เดธเตเดชเต‡เดธเตเด•เดณเดฟเดฒเต‡เด•เตเด•เตเด‚ เดชเด•เตผเดคเตเดคเดฟเดฏเดฟเดฐเดฟเด•เตเด•เดฃเด‚. เดเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดจเต†เดฏเดฟเด‚เดธเตโ€Œเดชเต†เดฏเตโ€Œเดธเดฟเตฝ เด…เดฌเดฆเตเดงเดตเดถเดพเตฝ เดฐเดนเดธเตเดฏเด‚ เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เดฟเดฏเดพเตฝ, เดžเด™เตเด™เดณเตเดŸเต† เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เด…เดคเต เด‰เดŸเดจเดŸเดฟ เดชเตเดจเดƒเดธเตเดฅเดพเดชเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเดพเดฃเต.

เด‡เดชเตเดชเต‹เตพ เดŸเดพเดธเตโ€Œเด•เต เดฐเต‚เดชเต€เด•เดฐเดฟเดšเตเดšเต, เดทเต†เตฝ-เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด‡เดคเต เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดพเตป เด†เดฐเด‚เดญเดฟเด•เตเด•เต‡เดฃเตเดŸ เดธเดฎเดฏเดฎเดพเดฃเดฟเดคเต. เดŽเดจเตเดจเดพเตฝ เด†เดฆเตเดฏเด‚ เดทเต†เตฝ-เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฑเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เด•เตเดฑเดšเตเดšเต เดตเดพเด•เตเด•เตเด•เตพ เดชเดฑเดฏเต‡เดฃเตเดŸเดคเดพเดฃเต.

เดทเต†เตฝ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เดŽเด™เตเด™เดจเต† เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต

เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเดฟเดฒเต† เดฎเดฑเตเดฑเต เดœเต‹เดฒเดฟเดญเดพเดฐเด™เตเด™เตพ เดชเต‹เดฒเต†, เดทเต†เตฝ-เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เดธเตเดตเดจเตเดคเด‚ เดชเต‹เดกเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต. เดกเดฏเดฑเด•เตเดŸเดฑเดฟเดฏเดฟเดฒเต† เดˆ เดชเต‹เดกเดฟเตฝ /hooks เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเดฌเดฟเตพ เดซเดฏเดฒเตเด•เตพ เดธเด‚เดญเดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เด‡เดต เดฌเดพเดทเต, เดชเตˆเดคเตเดคเตบ, เดฑเต‚เดฌเดฟ เดฎเตเดคเดฒเดพเดฏเดตเดฏเดฟเดฒเต† เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเตเด•เดณเดพเด•เดพเด‚. เด…เดคเตเดคเดฐเด‚ เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเดฌเดฟเตพ เดซเดฏเดฒเตเด•เดณเต† เดžเด™เตเด™เตพ เดนเตเด•เตเด•เตเด•เตพ เดŽเดจเตเดจเต เดตเดฟเดณเดฟเด•เตเด•เตเดจเตเดจเต (เด•เต†เดพเดณเตเดคเตเดคเตเด‚).

เดชเต‹เด•เดฃเต‹? เดฌเดพเดทเต! เดทเต†เตฝ-เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฑเต† เด•เดฃเตเดŸเตเดฎเตเดŸเตเดŸเตเด• (KubeCon EU'2020-เตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด…เดตเดฒเต‹เด•เดจเดตเตเด‚ เดตเต€เดกเดฟเดฏเต‹ เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเตเด‚)

เดทเต†เตฝ-เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต เด‡เดตเดจเตเดฑเตเด•เตพ เดธเดฌเตโ€Œเดธเตโ€Œเด•เตเดฐเตˆเดฌเตเดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดžเด™เตเด™เตพเด•เตเด•เต เด†เดตเดถเตเดฏเดฎเตเดณเตเดณ เด‡เดตเดจเตเดฑเตเด•เดณเต‹เดŸเต เดชเตเดฐเดคเดฟเด•เดฐเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดˆ เดนเตเด•เตเด•เตเด•เตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต.

เดชเต‹เด•เดฃเต‹? เดฌเดพเดทเต! เดทเต†เตฝ-เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฑเต† เด•เดฃเตเดŸเตเดฎเตเดŸเตเดŸเตเด• (KubeCon EU'2020-เตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด…เดตเดฒเต‹เด•เดจเดตเตเด‚ เดตเต€เดกเดฟเดฏเต‹ เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเตเด‚)

เดเดคเต เดนเตเด•เตเด•เต เดŽเดชเตเดชเต‹เตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เดฃเดฎเต†เดจเตเดจเต เดทเต†เตฝ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผเด•เตเด•เต เดŽเด™เตเด™เดจเต† เด…เดฑเดฟเดฏเดพเด‚? เด“เดฐเต‹ เดนเตเด•เตเด•เดฟเดจเตเด‚ เดฐเดฃเตเดŸเต เด˜เดŸเตเดŸเด™เตเด™เดณเตเดฃเตเดŸเต เดŽเดจเตเดจเดคเดพเดฃเต เด•เดพเดฐเตเดฏเด‚. เดธเตเดฑเตเดฑเดพเตผเดŸเตเดŸเดชเตเดชเต เดธเดฎเดฏเดคเตเดคเต, เดทเต†เตฝ-เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เด’เดฐเต เด†เตผเด—เตเดฏเตเดฎเต†เดจเตเดฑเตเดฎเดพเดฏเดฟ เดŽเดฒเตเดฒเดพ เดนเตเด•เตเด•เตเด•เดณเตเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต --config เด‡เดคเดพเดฃเต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เด˜เดŸเตเดŸเด‚. เด…เดคเดฟเดจเตเดถเต‡เดทเด‚, เด•เตŠเดณเตเดคเตเดคเตเด•เตพ เดธเดพเดงเดพเดฐเดฃ เดฐเต€เดคเดฟเดฏเดฟเตฝ เดธเดฎเดพเดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเต - เด…เดต เด˜เดŸเดฟเดชเตเดชเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เด‡เดตเดจเตเดฑเตเด•เดณเต‹เดŸเตเดณเตเดณ เดชเตเดฐเดคเดฟเด•เดฐเดฃเดฎเดพเดฏเดฟ. เดชเดฟเดจเตเดจเต€เดŸเตเดณเตเดณ เดธเดจเตเดฆเตผเดญเดคเตเดคเดฟเตฝ, เดนเตเด•เตเด•เต เดฌเตˆเตปเดกเดฟเด‚เด—เต เดธเดจเตเดฆเตผเดญเด‚ เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเต (เดฌเตˆเตปเดกเดฟเด‚เด—เต เดธเดจเตเดฆเตผเดญเด‚) - JSON เดซเต‹เตผเดฎเดพเดฑเตเดฑเดฟเดฒเตเดณเตเดณ เดกเดพเดฑเตเดฑ, เดžเด™เตเด™เตพ เดคเดพเดดเต† เด•เต‚เดŸเตเดคเตฝ เดตเดฟเดถเดฆเดฎเดพเดฏเดฟ เดธเด‚เดธเดพเดฐเดฟเด•เตเด•เตเด‚.

เดฌเดพเดทเดฟเตฝ เด’เดฐเต เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เด‰เดฃเตเดŸเดพเด•เตเด•เตเดจเตเดจเต

เด‡เดชเตเดชเต‹เตพ เดžเด™เตเด™เตพ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดพเตป เดคเดฏเตเดฏเดพเดฑเดพเดฃเต. เด‡เดคเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, เดžเด™เตเด™เตพ เดฐเดฃเตเดŸเต เดซเด‚เด—เตเดทเดจเตเด•เตพ เดŽเดดเตเดคเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต (เดตเดดเดฟ, เดžเด™เตเด™เตพ เดถเตเดชเดพเตผเดถ เดšเต†เดฏเตเดฏเตเดจเตเดจเต เดชเตเดธเตเดคเด•เดถเดพเดฒ เดทเต†เตฝ_เดฒเดฟเดฌเต, เด‡เดคเต เดฌเดพเดทเดฟเตฝ เดนเตเด•เตเด•เตเด•เตพ เดŽเดดเตเดคเตเดจเตเดจเดคเต เดตเดณเดฐเต† เดฒเดณเดฟเดคเดฎเดพเด•เตเด•เตเดจเตเดจเต):

  • เด†เดฆเตเดฏเดคเตเดคเต‡เดคเต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เด˜เดŸเตเดŸเดคเตเดคเดฟเดจเต เด†เดตเดถเตเดฏเดฎเดพเดฃเต - เด‡เดคเต เดฌเตˆเตปเดกเดฟเด‚เด—เต เดธเดจเตเดฆเตผเดญเด‚ เดชเตเดฐเดฆเตผเดถเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต;
  • เดฐเดฃเตเดŸเดพเดฎเดคเตเดคเต‡เดคเดฟเตฝ เดนเตเด•เตเด•เดฟเดจเตเดฑเต† เดชเตเดฐเดงเดพเดจ เดฏเตเด•เตเดคเดฟ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต.

#!/bin/bash

source /shell_lib.sh

function __config__() {
  cat << EOF
    configVersion: v1
    # BINDING CONFIGURATION
EOF
}

function __main__() {
  # THE LOGIC
}

hook::run "$@"

เดจเดฎเตเด•เตเด•เต เดŽเดจเตเดคเต เดตเดธเตเดคเตเด•เตเด•เตพ เดตเต‡เดฃเดฎเต†เดจเตเดจเต เดคเต€เดฐเตเดฎเดพเดจเดฟเด•เตเด•เตเด• เดŽเดจเตเดจเดคเดพเดฃเต เด…เดŸเตเดคเตเดค เด˜เดŸเตเดŸเด‚. เดžเด™เตเด™เดณเตเดŸเต† เด•เดพเดฐเตเดฏเดคเตเดคเดฟเตฝ, เดžเด™เตเด™เตพ เดŸเตเดฐเดพเด•เตเด•เต เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต:

  • เดฎเดพเดฑเตเดฑเด™เตเด™เดณเตเดŸเต† เด‰เดฑเดตเดฟเดŸ เดฐเดนเดธเตเดฏเด‚;
  • เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดฒเต† เดŽเดฒเตเดฒเดพ เดจเต†เดฏเดฟเด‚เดธเตโ€Œเดชเต†เดฏเตโ€Œเดธเตเด•เดณเตเด‚, เด…เดคเดฟเดฒเต‚เดŸเต† เดเดคเตŠเด•เตเด•เต† เดฒเต‡เดฌเตฝ เด˜เดŸเดฟเดชเตเดชเดฟเดšเตเดšเดฟเดŸเตเดŸเตเดฃเตเดŸเต†เดจเตเดจเต เดจเดฟเด™เตเด™เตพเด•เตเด•เดฑเดฟเดฏเดพเด‚;
  • เด…เดตเดฏเต†เดฒเตเดฒเดพเด‚ เด‰เดฑเดตเดฟเดŸ เดฐเดนเดธเตเดฏเดตเตเดฎเดพเดฏเดฟ เดธเดฎเดจเตเดตเดฏเดฟเดชเตเดชเดฟเดšเตเดšเดฟเดŸเตเดŸเตเดฃเตเดŸเต†เดจเตเดจเต เด‰เดฑเดชเตเดชเดพเด•เตเด•เดพเตป เดŸเดพเตผเด—เต†เดฑเตเดฑเต เดฐเดนเดธเตเดฏเด™เตเด™เตพ.

เดฐเดนเดธเตเดฏ เด‰เดฑเดตเดฟเดŸเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เดธเดฌเตโ€Œเดธเตโ€Œเด•เตเดฐเตˆเดฌเต เดšเต†เดฏเตเดฏเตเด•

เด…เดคเดฟเดจเตเดณเตเดณ เดฌเตˆเตปเดกเดฟเด‚เด—เต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดตเดณเดฐเต† เดฒเดณเดฟเดคเดฎเดพเดฃเต. เดชเต‡เดฐเดฟเดจเตŠเดชเตเดชเด‚ เดฐเดนเดธเตเดฏเดคเตเดคเดฟเตฝ เดžเด™เตเด™เตพเด•เตเด•เต เดคเดพเตฝเดชเตเดชเดฐเตเดฏเดฎเตเดฃเตเดŸเต†เดจเตเดจเต เดžเด™เตเด™เตพ เดธเต‚เดšเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต mysecret เดจเต†เดฏเดฟเด‚เดธเตเดชเต‡เดธเดฟเตฝ default:

เดชเต‹เด•เดฃเต‹? เดฌเดพเดทเต! เดทเต†เตฝ-เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฑเต† เด•เดฃเตเดŸเตเดฎเตเดŸเตเดŸเตเด• (KubeCon EU'2020-เตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด…เดตเดฒเต‹เด•เดจเดตเตเด‚ เดตเต€เดกเดฟเดฏเต‹ เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเตเด‚)

function __config__() {
  cat << EOF
    configVersion: v1
    kubernetes:
    - name: src_secret
      apiVersion: v1
      kind: Secret
      nameSelector:
        matchNames:
        - mysecret
      namespace:
        nameSelector:
          matchNames: ["default"]
      group: main
EOF

เดคเตฝเดซเดฒเดฎเดพเดฏเดฟ, เด‰เดฑเดตเดฟเดŸ เดฐเดนเดธเตเดฏเด‚ เดฎเดพเดฑเตเดฎเตเดชเต‹เตพ เดนเตเด•เตเด•เต เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด‚ (src_secret) เด•เต‚เดŸเดพเดคเต† เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดฌเตˆเตปเดกเดฟเด‚เด—เต เดธเดจเตเดฆเตผเดญเด‚ เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เตเด•:

เดชเต‹เด•เดฃเต‹? เดฌเดพเดทเต! เดทเต†เตฝ-เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฑเต† เด•เดฃเตเดŸเตเดฎเตเดŸเตเดŸเตเด• (KubeCon EU'2020-เตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด…เดตเดฒเต‹เด•เดจเดตเตเด‚ เดตเต€เดกเดฟเดฏเต‹ เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเตเด‚)

เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เดพเดฃเดพเดจเดพเด•เตเดจเตเดจเดคเตเดชเต‹เดฒเต†, เด…เดคเดฟเตฝ เดชเต‡เดฐเตเด‚ เดฎเตเดดเตเดตเตป เดตเดธเตเดคเตเดตเตเด‚ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต.

เดจเต†เดฏเดฟเด‚เดธเตเดชเต‡เดธเตเด•เดณเตเดŸเต† เดŸเตเดฐเดพเด•เตเด•เต เดธเต‚เด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเต

เด‡เดชเตเดชเต‹เตพ เดจเดฟเด™เตเด™เตพ เดจเต†เดฏเดฟเด‚เดธเตเดชเต‡เดธเตเด•เตพ เดธเดฌเตเดธเตเด•เตเดฐเตˆเดฌเต เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต. เด‡เดคเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, เดžเด™เตเด™เตพ เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดฌเตˆเตปเดกเดฟเด‚เด—เต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เตเดจเตเดจเต:

- name: namespaces
  group: main
  apiVersion: v1
  kind: Namespace
  jqFilter: |
    {
      namespace: .metadata.name,
      hasLabel: (
       .metadata.labels // {} |  
         contains({"secret": "yes"})
      )
    }
  group: main
  keepFullObjectsInMemory: false

เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เดพเดฃเดพเดจเดพเด•เตเดจเตเดจเดคเตเดชเต‹เดฒเต†, เดชเต‡เดฐเดฟเดจเตŠเดชเตเดชเด‚ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเดฟเตฝ เด’เดฐเต เดชเตเดคเดฟเดฏ เดซเต€เตฝเดกเต เดชเตเดฐเดคเตเดฏเด•เตเดทเดชเตเดชเต†เดŸเตเดŸเต jqFilter. เด…เดคเดฟเดจเตเดฑเต† เดชเต‡เดฐเต เดธเต‚เดšเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเต เดชเต‹เดฒเต†, jqFilter เดŽเดฒเตเดฒเดพ เด…เดจเดพเดตเดถเตเดฏ เดตเดฟเดตเดฐเด™เตเด™เดณเตเด‚ เดซเดฟเตฝเดŸเตเดŸเตผ เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดžเด™เตเด™เตพเด•เตเด•เต เดคเดพเตฝเดชเตเดชเดฐเตเดฏเดฎเตเดณเตเดณ เดซเต€เตฝเดกเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด’เดฐเต เดชเตเดคเดฟเดฏ JSON เด’เดฌเตโ€Œเดœเด•เตเดฑเตเดฑเต เดธเตƒเดทเตโ€ŒเดŸเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เดธเดฎเดพเดจเดฎเดพเดฏ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเตเดณเตเดณ เด’เดฐเต เดนเตเด•เตเด•เดฟเดจเต เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดฌเตˆเตปเดกเดฟเด‚เด—เต เดธเดจเตเดฆเตผเดญเด‚ เดฒเดญเดฟเด•เตเด•เตเด‚:

เดชเต‹เด•เดฃเต‹? เดฌเดพเดทเต! เดทเต†เตฝ-เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฑเต† เด•เดฃเตเดŸเตเดฎเตเดŸเตเดŸเตเด• (KubeCon EU'2020-เตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด…เดตเดฒเต‹เด•เดจเดตเตเด‚ เดตเต€เดกเดฟเดฏเต‹ เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเตเด‚)

เด…เดคเดฟเตฝ เด’เดฐเต เด…เดฑเต‡ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต filterResults เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดฒเต† เด“เดฐเต‹ เดจเต†เดฏเดฟเด‚เดธเตเดชเต‡เดธเดฟเดจเตเด‚. เดฌเต‚เดณเดฟเดฏเตป เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ hasLabel เดคเดจเตเดจเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เดจเต†เดฏเดฟเด‚เดธเตโ€Œเดชเต†เดฏเตโ€Œเดธเดฟเตฝ เด’เดฐเต เดฒเต‡เดฌเตฝ เด˜เดŸเดฟเดชเตเดชเดฟเดšเตเดšเดฟเดŸเตเดŸเตเดฃเตเดŸเต‹ เดŽเดจเตเดจเต เดธเต‚เดšเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต. เดธเต†เดฒเด•เตเดŸเตผ keepFullObjectsInMemory: false เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏ เดตเดธเตเดคเตเด•เตเด•เดณเต† เดฎเต†เดฎเตเดฎเดฑเดฟเดฏเดฟเตฝ เดธเต‚เด•เตเดทเดฟเด•เตเด•เต‡เดฃเตเดŸ เด†เดตเดถเตเดฏเดฎเดฟเดฒเตเดฒเต†เดจเตเดจเต เดธเต‚เดšเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต.

เดฒเด•เตเดทเตเดฏ เดฐเดนเดธเตเดฏเด™เตเด™เตพ เดŸเตเดฐเดพเด•เตเด•เตเดšเต†เดฏเตเดฏเตเดจเตเดจเต

เดตเตเดฏเดพเด–เตเดฏเดพเดจเด‚ เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เดฟเดฏเดฟเดŸเตเดŸเตเดณเตเดณ เดŽเดฒเตเดฒเดพ เดฐเดนเดธเตเดฏเด™เตเด™เดณเดฟเดฒเต‡เด•เตเด•เตเด‚ เดžเด™เตเด™เตพ เดธเดฌเตโ€Œเดธเตโ€Œเด•เตเดฐเตˆเดฌเตเดšเต†เดฏเตเดฏเตเดจเตเดจเต managed-secret: "yes" (เด‡เดตเดฐเดพเดฃเต เดžเด™เตเด™เดณเตเดŸเต† เดฒเด•เตเดทเตเดฏเด‚ dst_secrets):

- name: dst_secrets
  apiVersion: v1
  kind: Secret
  labelSelector:
    matchLabels:
      managed-secret: "yes"
  jqFilter: |
    {
      "namespace":
        .metadata.namespace,
      "resourceVersion":
        .metadata.annotations.resourceVersion
    }
  group: main
  keepFullObjectsInMemory: false

เดˆ เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเตฝ jqFilter เดจเต†เดฏเดฟเด‚เดธเตโ€Œเดชเต†เดฏเตโ€Œเดธเตเด‚ เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด‚ เด’เดดเดฟเด•เต†เดฏเตเดณเตเดณ เดŽเดฒเตเดฒเดพ เดตเดฟเดตเดฐเด™เตเด™เดณเตเด‚ เดซเดฟเตฝเดŸเตเดŸเตผ เดšเต†เดฏเตเดฏเตเดจเตเดจเต resourceVersion. เดฐเดนเดธเตเดฏเด‚ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เด…เดตเดธเดพเดจ เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเตผ เดตเตเดฏเดพเด–เตเดฏเดพเดจเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เด•เดŸเดจเตเดจเต: เดฐเดนเดธเตเดฏเด™เตเด™เดณเตเดŸเต† เดชเดคเดฟเดชเตเดชเตเด•เตพ เดคเดพเดฐเดคเดฎเตเดฏเด‚ เดšเต†เดฏเตเดฏเดพเดจเตเด‚ เด…เดต เด•เดพเดฒเดฟเด•เดฎเดพเดฏเดฟ เดจเดฟเดฒเดจเดฟเตผเดคเตเดคเดพเดจเตเด‚ เด‡เดคเต เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต.

เดˆ เดฐเต€เดคเดฟเดฏเดฟเตฝ เด•เต‹เตบเดซเดฟเด—เตผ เดšเต†เดฏเตเดค เด’เดฐเต เดนเตเด•เตเด•เต, เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเตเดฎเตเดชเต‹เตพ, เดฎเตเด•เดณเดฟเตฝ เดตเดฟเดตเดฐเดฟเดšเตเดš เดฎเต‚เดจเตเดจเต เดฌเตˆเตปเดกเดฟเด‚เด—เต เดธเดจเตเดฆเตผเดญเด™เตเด™เตพ เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เตเด‚. เด…เดต เด’เดฐเต เดคเดฐเด‚ เดธเตเดจเดพเดชเตเดชเตเดทเต‹เดŸเตเดŸเต เด†เดฏเดฟ เด•เดฃเด•เตเด•เดพเด•เตเด•เดพเด‚ (เดธเตเดจเดพเดชเตเดชเตเดทเต‹เดŸเตเดŸเต) เด•เตเดฒเดธเตเดฑเตเดฑเตผ.

เดชเต‹เด•เดฃเต‹? เดฌเดพเดทเต! เดทเต†เตฝ-เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฑเต† เด•เดฃเตเดŸเตเดฎเตเดŸเตเดŸเตเด• (KubeCon EU'2020-เตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด…เดตเดฒเต‹เด•เดจเดตเตเด‚ เดตเต€เดกเดฟเดฏเต‹ เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเตเด‚)

เดˆ เดตเดฟเดตเดฐเด™เตเด™เดณเต†เดฒเตเดฒเดพเด‚ เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟ, เด’เดฐเต เด…เดŸเดฟเดธเตเดฅเดพเดจ เด…เตฝเด—เต‹เดฐเดฟเดคเด‚ เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚. เด‡เดคเต เดŽเดฒเตเดฒเดพ เดจเต†เดฏเดฟเด‚เดธเตโ€Œเดชเต†เดฏเตโ€Œเดธเตเด•เดณเดฟเดฒเตเด‚ เด†เดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต:

  • เดŽเด™เตเด•เดฟเตฝ hasLabel เด•เดพเดฐเตเดฏเด™เตเด™เตพ true เดจเดฟเดฒเดตเดฟเดฒเต† เดจเต†เดฏเดฟเด‚เดธเตเดชเต‡เดธเดฟเดจเดพเดฏเดฟ:
    • เด†เด—เต‹เดณ เดฐเดนเดธเตเดฏเด‚ เดชเตเดฐเดพเดฆเต‡เดถเดฟเด• เดฐเดนเดธเตเดฏเดตเตเดฎเดพเดฏเดฟ เดคเดพเดฐเดคเดฎเตเดฏเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต:
      • เด…เดต เด’เดจเตเดจเตเดคเดจเตเดจเต†เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เด’เดจเตเดจเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเดฟเดฒเตเดฒ;
      • เด…เดต เดตเตเดฏเดคเตเดฏเดพเดธเดชเตเดชเต†เดŸเตเดŸเดพเตฝ - เดจเดฟเตผเดตเตเดตเดนเดฟเด•เตเด•เตเดจเตเดจเต kubectl replace เด…เดฅเดตเดพ create;
  • เดŽเด™เตเด•เดฟเตฝ hasLabel เด•เดพเดฐเตเดฏเด™เตเด™เตพ false เดจเดฟเดฒเดตเดฟเดฒเต† เดจเต†เดฏเดฟเด‚เดธเตเดชเต‡เดธเดฟเดจเดพเดฏเดฟ:
    • เดจเตฝเด•เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เดจเต†เดฏเดฟเด‚เดธเตโ€Œเดชเต†เดฏเตโ€Œเดธเดฟเตฝ เดฐเดนเดธเตเดฏเด‚ เด‡เดฒเตเดฒเต†เดจเตเดจเต เด‰เดฑเดชเตเดชเดพเด•เตเด•เตเดจเตเดจเต:
      • เดชเตเดฐเดพเดฆเต‡เดถเดฟเด• เดฐเดนเดธเตเดฏเด‚ เด‰เดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เด…เดคเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เตเด• kubectl delete;
      • เดชเตเดฐเดพเดฆเต‡เดถเดฟเด• เดฐเดนเดธเตเดฏเด‚ เด•เดฃเตเดŸเต†เดคเตเดคเดฟเดฏเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เด…เดคเต เด’เดจเตเดจเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเดฟเดฒเตเดฒ.

เดชเต‹เด•เดฃเต‹? เดฌเดพเดทเต! เดทเต†เตฝ-เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฑเต† เด•เดฃเตเดŸเตเดฎเตเดŸเตเดŸเตเด• (KubeCon EU'2020-เตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด…เดตเดฒเต‹เด•เดจเดตเตเด‚ เดตเต€เดกเดฟเดฏเต‹ เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเตเด‚)

เดฌเดพเดทเดฟเตฝ เด…เตฝเด—เต‹เดฐเดฟเดคเด‚ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตฝ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดžเด™เตเด™เดณเตเดŸเต† เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเดพเด‚ เด‰เดฆเดพเดนเดฐเดฃเด™เตเด™เดณเตเดณเตเดณ เดถเต‡เด–เดฐเด™เตเด™เตพ.

YAML เด•เต‹เตบเดซเดฟเด—เดฑเดฟเตปเดฑเต† 35 เดตเดฐเดฟเด•เดณเตเด‚ เด…เดคเต‡ เด…เดณเดตเดฟเดฒเตเดณเตเดณ เดฌเดพเดทเต เด•เต‹เดกเตเด‚ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด’เดฐเต เดฒเดณเดฟเดคเดฎเดพเดฏ เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต เด•เตบเดŸเตเดฐเต‹เดณเตผ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเตป เดžเด™เตเด™เตพเด•เตเด•เต เด•เดดเดฟเดžเตเดžเดคเต เด…เด™เตเด™เดจเต†เดฏเดพเดฃเต! เดทเต†เตฝ-เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฑเตเดŸเต† เดœเต‹เดฒเดฟ เด…เดตเดฏเต† เดชเดฐเดธเตเดชเดฐเด‚ เดฌเดจเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เตเด• เดŽเดจเตเดจเดคเดพเดฃเต.

เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เดฐเดนเดธเตเดฏเด™เตเด™เตพ เดชเด•เตผเดคเตเดคเตเดจเตเดจเดคเต เดฏเต‚เดŸเตเดŸเดฟเดฒเดฟเดฑเตเดฑเดฟเดฏเตเดŸเต† เดชเตเดฐเดฏเต‹เด—เดคเตเดคเดฟเดจเตเดฑเต† เด’เดฐเต‡เดฏเตŠเดฐเต เดฎเต‡เด–เดฒเดฏเดฒเตเดฒ. เด…เดตเดจเตเดฑเต† เด•เดดเดฟเดตเต เดŽเดจเตเดคเดพเดฃเต†เดจเตเดจเต เด•เดพเดฃเดฟเด•เตเด•เดพเตป เด•เตเดฑเดšเตเดšเต เด‰เดฆเดพเดนเดฐเดฃเด™เตเด™เตพ เด•เต‚เดŸเดฟ เด‡เดคเดพ.

เด‰เดฆเดพเดนเดฐเดฃเด‚ 1: เด•เต‹เตบเดซเดฟเด—เตเดฎเดพเดชเตเดชเดฟเตฝ เดฎเดพเดฑเตเดฑเด™เตเด™เตพ เดตเดฐเตเดคเตเดคเตเดจเตเดจเต

เดฎเต‚เดจเตเดจเต เดชเต‹เดกเตเด•เตพ เด…เดŸเด™เตเด™เตเดจเตเดจ เด’เดฐเต เดตเดฟเดจเตเดฏเดพเดธเด‚ เดจเต‹เด•เตเด•เดพเด‚. เดšเดฟเดฒ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดธเด‚เดญเดฐเดฟเด•เตเด•เดพเตป เดชเต‹เดกเตเด•เตพ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดฎเดพเดชเตเดชเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต. เดชเต‹เดกเตเด•เตพ เดธเดฎเดพเดฐเด‚เดญเดฟเดšเตเดšเดชเตเดชเต‹เตพ, เด•เต‹เตบเดซเดฟเด—เตเดฎเดพเดชเตเดชเต เด’เดฐเต เดจเดฟเดถเตเดšเดฟเดค เดจเดฟเดฒเดฏเดฟเดฒเดพเดฏเดฟเดฐเตเดจเตเดจเต (เดจเดฎเตเด•เตเด•เต เด…เดคเดฟเดจเต† v.1 เดŽเดจเตเดจเต เดตเดฟเดณเดฟเด•เตเด•เดพเด‚). เด…เดคเดจเตเดธเดฐเดฟเดšเตเดšเต, เดŽเดฒเตเดฒเดพ เดชเต‹เดกเตเด•เดณเตเด‚ เด•เต‹เตบเดซเดฟเด—เตเดฎเดพเดชเตเดชเดฟเดจเตเดฑเต† เดˆ เดชเตเดฐเดคเตเดฏเต‡เด• เดชเดคเดฟเดชเตเดชเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต.

เด‡เดชเตเดชเต‹เตพ เด•เต‹เตบเดซเดฟเด—เตเดฎเดพเดชเตเดชเต เดฎเดพเดฑเดฟเดฏเต†เดจเตเดจเต เดจเดฎเตเด•เตเด•เต เด…เดจเตเดฎเดพเดจเดฟเด•เตเด•เดพเด‚ (v.2). เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เดชเต‹เดกเตเด•เตพ เด•เต‹เตบเดซเดฟเด—เตเดฎเดพเดชเตเดชเดฟเดจเตเดฑเต† เดฎเตเตป เดชเดคเดฟเดชเตเดชเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด‚ (v.1):

เดชเต‹เด•เดฃเต‹? เดฌเดพเดทเต! เดทเต†เตฝ-เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฑเต† เด•เดฃเตเดŸเตเดฎเตเดŸเตเดŸเตเด• (KubeCon EU'2020-เตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด…เดตเดฒเต‹เด•เดจเดตเตเด‚ เดตเต€เดกเดฟเดฏเต‹ เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเตเด‚)

เดชเตเดคเดฟเดฏ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดฎเดพเดชเตเดชเดฟเดฒเต‡เด•เตเด•เต (v.2) เดฎเดพเดฑเดพเตป เดŽเดจเดฟเด•เตเด•เต เด…เดตเดฐเต† เดŽเด™เตเด™เดจเต† เดฒเดญเดฟเด•เตเด•เตเด‚? เด‰เดคเตเดคเดฐเด‚ เดฒเดณเดฟเดคเดฎเดพเดฃเต: เด’เดฐเต เดŸเต†เด‚เดชเตเดฒเต‡เดฑเตเดฑเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด•. เดตเดฟเดญเดพเด—เดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เด’เดฐเต เดšเต†เด•เตเด•เตเดธเด‚ เดตเตเดฏเดพเด–เตเดฏเดพเดจเด‚ เดšเต‡เตผเด•เตเด•เดพเด‚ template เดตเดฟเดจเตเดฏเดพเดธ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเตเด•เตพ:

เดชเต‹เด•เดฃเต‹? เดฌเดพเดทเต! เดทเต†เตฝ-เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฑเต† เด•เดฃเตเดŸเตเดฎเตเดŸเตเดŸเตเด• (KubeCon EU'2020-เตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด…เดตเดฒเต‹เด•เดจเดตเตเด‚ เดตเต€เดกเดฟเดฏเต‹ เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเตเด‚)

เดคเตฝเดซเดฒเดฎเดพเดฏเดฟ, เดˆ เดšเต†เด•เตเด•เตเดธเด‚ เดŽเดฒเตเดฒเดพ เดชเต‹เดกเตเด•เดณเดฟเดฒเตเด‚ เดฐเดœเดฟเดธเตเดฑเตเดฑเตผ เดšเต†เดฏเตเดฏเตเด‚, เด‡เดคเต เดตเดฟเดจเตเดฏเดพเดธเดคเตเดคเดฟเดจเต เดคเตเดฒเตเดฏเดฎเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚. เด•เต‹เตบเดซเดฟเด—เตเดฎเดพเดชเตเดชเต เดฎเดพเดฑเตเดฎเตเดชเต‹เตพ เดจเดฟเด™เตเด™เตพ เด‡เดชเตเดชเต‹เตพ เดตเตเดฏเดพเด–เตเดฏเดพเดจเด‚ เด…เดชเตโ€Œเดกเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต. เดˆ เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเตฝ เดทเต†เตฝ-เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เด‰เดชเดฏเต‹เด—เดชเตเดฐเดฆเดฎเดพเดฃเต. เดจเดฟเด™เตเด™เตพ เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเต เดชเตเดฐเต‹เด—เตเดฐเดพเด‚ เดฎเดพเดคเตเดฐเดฎเดพเดฃเต เด•เต‹เตบเดซเดฟเด—เตโ€Œเดฎเดพเดชเตเดชเดฟเดฒเต‡เด•เตเด•เต เดธเดฌเตโ€Œเดธเตโ€Œเด•เตเดฐเตˆเดฌเต เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดšเต†เด•เตเด•เตเดธเด‚ เด…เดชเตโ€Œเดกเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจ เด’เดฐเต เดนเตเด•เตเด•เต.

เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเต เด•เต‹เตบเดซเดฟเด—เตเดฎเดพเดชเตเดชเดฟเตฝ เดฎเดพเดฑเตเดฑเด™เตเด™เตพ เดตเดฐเตเดคเตเดคเตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เดทเต†เตฝ-เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เด…เดคเต เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เด•เตเด•เตเดธเด‚ เดตเต€เดฃเตเดŸเตเด‚ เด•เดฃเด•เตเด•เดพเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเด‚. เด…เดคเดฟเดจเตเดถเต‡เดทเด‚ เด•เตเดฌเต†เตผเดจเต†เดฑเตเดฑเดธเดฟเดจเตเดฑเต† เดฎเดพเดจเตเดคเตเดฐเดฟเด•เดค เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเด‚: เด“เตผเด•เตเด•เดธเตเดŸเตเดฐเต‡เดฑเตเดฑเตผ เดชเต‹เดกเดฟเดจเต† เด•เตŠเดฒเตเดฒเตเด‚, เดชเตเดคเดฟเดฏเตŠเดฐเต†เดฃเตเดฃเด‚ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด‚, เด…เดคเต เด†เด•เตเดจเตเดจเดคเตเดตเดฐเต† เด•เดพเดคเตเดคเดฟเดฐเดฟเด•เตเด•เตเด• Ready, เด…เดŸเตเดคเตเดคเดคเดฟเดฒเต‡เด•เตเด•เต เดจเต€เด™เตเด™เตเดจเตเดจเต. เดคเตฝเดซเดฒเดฎเดพเดฏเดฟ, เดตเดฟเดจเตเดฏเดพเดธเด‚ เดธเดฎเดจเตเดตเดฏเดฟเดชเตเดชเดฟเด•เตเด•เตเด•เดฏเตเด‚ เด•เต‹เตบเดซเดฟเด—เตเดฎเดพเดชเตเดชเดฟเดจเตเดฑเต† เดชเตเดคเดฟเดฏ เดชเดคเดฟเดชเตเดชเดฟเดฒเต‡เด•เตเด•เต เดฎเดพเดฑเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเด‚.

เดชเต‹เด•เดฃเต‹? เดฌเดพเดทเต! เดทเต†เตฝ-เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฑเต† เด•เดฃเตเดŸเตเดฎเตเดŸเตเดŸเตเด• (KubeCon EU'2020-เตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด…เดตเดฒเต‹เด•เดจเดตเตเด‚ เดตเต€เดกเดฟเดฏเต‹ เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเตเด‚)

เด‰เดฆเดพเดนเดฐเดฃเด‚ 2: เด•เดธเตเดฑเตเดฑเด‚ เดฑเดฟเดธเต‹เดดเตเดธเต เดจเดฟเตผเดตเดšเดจเด™เตเด™เตพเด•เตเด•เตŠเดชเตเดชเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต

เดจเดฟเด™เตเด™เตพเด•เตเด•เดฑเดฟเดฏเดพเดตเตเดจเตเดจเดคเตเดชเต‹เดฒเต†, เด‡เดทเตโ€ŒเดŸเดพเดจเตเดธเตƒเดค เดคเดฐเด‚ เด’เดฌเตโ€Œเดœเด•เตเดฑเตเดฑเตเด•เตพ เดธเตƒเดทเตโ€ŒเดŸเดฟเด•เตเด•เดพเตป Kubernetes เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดคเดฐเด‚ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚ MysqlDatabase. เดˆ เดคเดฐเดคเตเดคเดฟเดจเต เดฐเดฃเตเดŸเต เดฎเต†เดฑเตเดฑเดพเดกเดพเดฑเตเดฑ เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพ เด‰เดฃเตเดŸเต†เดจเตเดจเต เดชเดฑเดฏเดพเด‚: name ะธ namespace.

apiVersion: example.com/v1alpha1
kind: MysqlDatabase
metadata:
  name: foo
  namespace: bar

เดžเด™เตเด™เตพเด•เตเด•เต MySQL เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเตเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเดจเตเดจ เดตเตเดฏเดคเตเดฏเดธเตเดค เดจเต†เดฏเดฟเด‚เดธเตโ€Œเดชเต‡เดธเตเด•เดณเตเดณเตเดณ เด’เดฐเต เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต เด•เตเดฒเดธเตเดฑเตเดฑเตผ เด‰เดฃเตเดŸเต. เดˆ เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเตฝ เด‰เดฑเดตเดฟเดŸเด™เตเด™เตพ เดŸเตเดฐเดพเด•เตเด•เต เดšเต†เดฏเตเดฏเดพเตป เดทเต†เตฝ-เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚ MysqlDatabase, เด…เดตเดฏเต† MySQL เดธเต†เตผเดตเดฑเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดฟเดชเตเดชเดฟเดšเตเดšเต เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดจเตเดฑเต† เด†เดตเดถเตเดฏเดฎเตเดณเตเดณเดคเตเด‚ เดจเดฟเดฐเต€เด•เตเดทเดฟเดšเตเดšเดคเตเดฎเดพเดฏ เด…เดตเดธเตเดฅเด•เตพ เดธเดฎเดจเตเดตเดฏเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต.

เดชเต‹เด•เดฃเต‹? เดฌเดพเดทเต! เดทเต†เตฝ-เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฑเต† เด•เดฃเตเดŸเตเดฎเตเดŸเตเดŸเตเด• (KubeCon EU'2020-เตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด…เดตเดฒเต‹เด•เดจเดตเตเด‚ เดตเต€เดกเดฟเดฏเต‹ เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเตเด‚)

เด‰เดฆเดพเดนเดฐเดฃเด‚ 3: เด•เตเดฒเดธเตเดฑเตเดฑเตผ เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เดฎเต‹เดฃเดฟเดฑเตเดฑเดฑเดฟเด‚เด—เต

เดจเดฟเด™เตเด™เตพเด•เตเด•เดฑเดฟเดฏเดพเดตเตเดจเตเดจเดคเตเดชเต‹เดฒเต†, เด’เดฐเต เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เดจเดฟเดฐเต€เด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดเดฑเตเดฑเดตเตเด‚ เดฒเดณเดฟเดคเดฎเดพเดฏ เดฎเดพเตผเด—เดฎเดพเดฃเต เดชเดฟเด‚เด—เต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเต. เดทเต†เตฝ-เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด…เดคเตเดคเดฐเด‚ เดจเดฟเดฐเต€เด•เตเดทเดฃเด‚ เดŽเด™เตเด™เดจเต† เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดพเดฎเต†เดจเตเดจเต เดˆ เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเตฝ เดžเด™เตเด™เตพ เด•เดพเดฃเดฟเด•เตเด•เตเด‚.

เด’เดจเตเดจเดพเดฎเดคเดพเดฏเดฟ, เดจเดฟเด™เตเด™เตพ เดจเต‹เดกเตเด•เตพ เดธเดฌเตเดธเตเด•เตเดฐเตˆเดฌเต เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต. เดทเต†เตฝ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผเด•เตเด•เต เด“เดฐเต‹ เดจเต‹เดกเดฟเดจเตเดฑเต†เดฏเตเด‚ เดชเต‡เดฐเตเด‚ IP เดตเดฟเดฒเดพเดธเดตเตเด‚ เด†เดตเดถเตเดฏเดฎเดพเดฃเต. เด…เดตเดฐเตเดŸเต† เดธเดนเดพเดฏเดคเตเดคเต‹เดŸเต†, เด…เดตเตป เดˆ เดจเต‹เดกเตเด•เตพ เดชเดฟเด‚เด—เต เดšเต†เดฏเตเดฏเตเด‚.

configVersion: v1
kubernetes:
- name: nodes
  apiVersion: v1
  kind: Node
  jqFilter: |
    {
      name: .metadata.name,
      ip: (
       .status.addresses[] |  
        select(.type == "InternalIP") |
        .address
      )
    }
  group: main
  keepFullObjectsInMemory: false
  executeHookOnEvent: []
schedule:
- name: every_minute
  group: main
  crontab: "* * * * *"

เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเตผ executeHookOnEvent: [] เดเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เด‡เดตเดจเตเดฑเดฟเดจเต‹เดŸเตเดณเตเดณ เดชเตเดฐเดคเดฟเด•เดฐเดฃเดฎเดพเดฏเดฟ เดนเตเด•เตเด•เต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเดคเต เดคเดŸเดฏเตเดจเตเดจเต (เด…เดคเดพเดฏเดคเต, เดจเต‹เดกเตเด•เตพ เดฎเดพเดฑเตเดฑเตเดจเตเดจเดคเดฟเดจเตเด‚ เดšเต‡เตผเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเด‚ เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดฎเตเดณเตเดณ เดชเตเดฐเดคเดฟเด•เดฐเดฃเดฎเดพเดฏเดฟ). เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เด…เดตเตป เด“เดŸเตเด‚ (เดจเต‹เดกเตเด•เดณเตเดŸเต† เดฒเดฟเดธเตเดฑเตเดฑเต เด…เดชเตเดกเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดฏเตเด•) เดทเต†เดกเตเดฏเต‚เตพ เดšเต†เดฏเตเดคเต - เด“เดฐเต‹ เดฎเดฟเดจเดฟเดฑเตเดฑเดฟเดฒเตเด‚, เดซเต€เตฝเดกเต เดจเดฟเตผเดฆเตเดฆเต‡เดถเดฟเดšเตเดš เดชเตเดฐเด•เดพเดฐเด‚ schedule.

เด‡เดชเตเดชเต‹เตพ เดšเต‹เดฆเตเดฏเด‚ เด‰เดฏเตผเดจเตเดจเตเดตเดฐเตเดจเตเดจเต, เดชเดพเด•เตเด•เดฑเตเดฑเต เดจเดทเตเดŸเด‚ เดชเต‹เดฒเตเดณเตเดณ เดชเตเดฐเดถเตโ€Œเดจเด™เตเด™เดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดจเดฎเตเด•เตเด•เต เดŽเด™เตเด™เดจเต† เด•เตƒเดคเตเดฏเดฎเดพเดฏเดฟ เด…เดฑเดฟเดฏเดพเด‚? เดจเดฎเตเด•เตเด•เต เด•เต‹เดกเต เดจเต‹เด•เตเด•เดพเด‚:

function __main__() {
  for i in $(seq 0 "$(context::jq -r '(.snapshots.nodes | length) - 1')"); do
    node_name="$(context::jq -r '.snapshots.nodes['"$i"'].filterResult.name')"
    node_ip="$(context::jq -r '.snapshots.nodes['"$i"'].filterResult.ip')"
    packets_lost=0
    if ! ping -c 1 "$node_ip" -t 1 ; then
      packets_lost=1
    fi
    cat >> "$METRICS_PATH" <<END
      {
        "name": "node_packets_lost",
        "add": $packets_lost,
        "labels": {
          "node": "$node_name"
        }
      }
END
  done
}

เดžเด™เตเด™เตพ เดจเต‹เดกเตเด•เดณเตเดŸเต† เดชเดŸเตเดŸเดฟเด•เดฏเดฟเดฒเต‚เดŸเต† เด†เดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต, เด…เดตเดฏเตเดŸเต† เดชเต‡เดฐเตเด‚ เดเดชเดฟ เดตเดฟเดฒเดพเดธเด™เตเด™เดณเตเด‚ เดจเต‡เดŸเตเด•เดฏเตเด‚ เด…เดต เดชเดฟเด‚เด—เต เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดซเดฒเด™เตเด™เตพ เดชเตเดฐเต‹เดฎเดฟเดคเตเดฏเต‚เดธเดฟเดจเต เด…เดฏเดฏเตเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เดทเต†เตฝ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผเด•เตเด•เต เดชเตเดฐเต‹เดฎเดฟเดคเตเดฏเต‚เดธเดฟเดฒเต‡เด•เตเด•เต เดฎเต†เดŸเตเดฐเดฟเด•เตโ€Œเดธเต เดŽเด•เตโ€Œเดธเตโ€Œเดชเต‹เตผเดŸเตเดŸเตเดšเต†เดฏเตเดฏเดพเดจเดพเด•เตเด‚, เดŽเตปเดตเดฏเต‹เตบเดฎเต†เดจเตเดฑเต เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเดฟเตฝ เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เดฟเดฏ เดชเดพเดคเตเดคเต เด…เดจเตเดธเดฐเดฟเดšเตเดšเต เดธเตเดฅเดฟเดคเดฟเดšเต†เดฏเตเดฏเตเดจเตเดจ เด’เดฐเต เดซเดฏเดฒเดฟเดฒเต‡เด•เตเด•เต เด…เดตเดฏเต† เดธเด‚เดฐเด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเต $METRICS_PATH.

เด‡เดคเตเดชเต‡เดพเดฒเต† เด’เดฐเต เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเตฝ เดฒเดณเดฟเดคเดฎเดพเดฏ เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เดจเดฟเดฐเต€เด•เตเดทเดฃเดคเตเดคเดฟเดจเดพเดฏเดฟ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด’เดฐเต เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฑเต† เด‰เดฃเตเดŸเดพเด•เตเด•เดพเด‚.

เด•เตเดฏเต‚เดฏเดฟเด‚เด—เต เดธเด‚เดตเดฟเดงเดพเดจเด‚

เดทเต†เตฝ-เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฑเดฟเตฝ เดจเดฟเตผเดฎเตเดฎเดฟเดšเตเดš เดฎเดฑเตเดฑเตŠเดฐเต เดชเตเดฐเดงเดพเดจ เดธเด‚เดตเดฟเดงเดพเดจเด‚ เดตเดฟเดตเดฐเดฟเด•เตเด•เดพเดคเต† เดˆ เดฒเต‡เด–เดจเด‚ เด…เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚. เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดฒเต† เด’เดฐเต เดธเด‚เดญเดตเดคเตเดคเดฟเดจเต เดชเตเดฐเดคเดฟเด•เดฐเดฃเดฎเดพเดฏเดฟ เด‡เดคเต เดเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดคเดฐเดคเตเดคเดฟเดฒเตเดณเตเดณ เดนเตเด•เตเด•เต เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเตเดจเตเดจเตเดตเต†เดจเตเดจเต เดธเด™เตเด•เตฝเดชเตเดชเดฟเด•เตเด•เตเด•.

  • เด…เดคเต‡ เดธเดฎเดฏเด‚, เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเตฝ เดŽเดจเตเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดธเด‚เดญเดตเดฟเดšเตเดšเดพเตฝ เดŽเดจเตเดคเต เดธเด‚เดญเดตเดฟเด•เตเด•เตเด‚? เด’เดจเตเดจเต เด•เต‚เดŸเดฟ เดธเด‚เดญเดตเด‚?
  • เดทเต†เตฝ-เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เดนเตเด•เตเด•เดฟเดจเตเดฑเต† เดฎเดฑเตเดฑเตŠเดฐเต เด‰เดฆเดพเดนเดฐเดฃเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดฎเต‹?
  • เด’เดฐเต‡เดธเดฎเดฏเด‚ เด…เดžเตเดšเต เดธเด‚เดญเดตเด™เตเด™เตพ เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเตฝ เดธเด‚เดญเดตเดฟเดšเตเดšเดพเดฒเต‹?
  • เดทเต†เตฝ-เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เด…เดตเดฏเต† เดธเดฎเดพเดจเตเดคเดฐเดฎเดพเดฏเดฟ เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดฏเตเดฎเต‹?
  • เดฎเต†เดฎเตเดฎเดฑเดฟเดฏเตเด‚ เดธเดฟเดชเดฟเดฏเตเดตเตเด‚ เดชเต‹เดฒเต† เด‰เดชเดญเต‹เด—เด‚ เดšเต†เดฏเตเดค เดตเดฟเดญเดตเด™เตเด™เดณเต† เดธเด‚เดฌเดจเตเดงเดฟเดšเตเดšเต†เดจเตเดคเต?

เดญเดพเด—เตเดฏเดตเดถเดพเตฝ, เดทเต†เตฝ-เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฑเดฟเดจเต เด’เดฐเต เดฌเดฟเตฝเดฑเตเดฑเต-เด‡เตป เด•เตเดฏเต‚เดฏเดฟเด‚เด—เต เดฎเต†เด•เตเด•เดพเดจเดฟเดธเด‚ เด‰เดฃเตเดŸเต. เดŽเดฒเตเดฒเดพ เด‡เดตเดจเตเดฑเตเด•เดณเตเด‚ เด•เตเดฏเต‚เดตเดฟเตฝ เดจเดฟเตผเดคเตเดคเตเด•เดฏเตเด‚ เด•เตเดฐเดฎเดพเดจเตเด—เดคเดฎเดพเดฏเดฟ เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต.

เดจเดฎเตเด•เตเด•เต เด‡เดคเต เด‰เดฆเดพเดนเดฐเดฃเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดตเดฟเดถเดฆเต€เด•เดฐเดฟเด•เตเด•เดพเด‚. เดจเดฎเตเด•เตเด•เต เดฐเดฃเตเดŸเต เด•เตŠเดณเตเดคเตเดคเตเด•เตพ เด‰เดฃเตเดŸเต†เดจเตเดจเต เดชเดฑเดฏเดพเด‚. เด†เดฆเตเดฏ เดธเด‚เดญเดตเด‚ เด†เดฆเตเดฏ เดนเตเด•เตเด•เดฟเดฒเต‡เด•เตเด•เต เดชเต‹เด•เตเดจเตเดจเต. เด…เดคเดฟเดจเตเดฑเต† เดชเตเดฐเต‹เดธเดธเตเดธเดฟเด‚เด—เต เดชเต‚เตผเดคเตเดคเดฟเดฏเดพเดฏเดพเตฝ, เด•เตเดฏเต‚ เดฎเตเดจเตเดจเต‹เดŸเตเดŸเต เดจเต€เด™เตเด™เตเดจเตเดจเต. เด…เดŸเตเดคเตเดค เดฎเต‚เดจเตเดจเต เด‡เดตเดจเตเดฑเตเด•เตพ เดฐเดฃเตเดŸเดพเดฎเดคเตเดคเต† เดนเตเด•เตเด•เดฟเดฒเต‡เด•เตเด•เต เดฑเต€เดกเดฏเดฑเด•เตโ€ŒเดŸเตเดšเต†เดฏเตเดฏเตเดจเตเดจเต - เด…เดต เด•เตเดฏเต‚เดตเดฟเตฝ เดจเดฟเดจเตเดจเต เดจเต€เด•เตเด•เด‚ เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เด…เดคเดฟเตฝ เด’เดฐเต โ€œเดฌเดฃเตเดŸเดฟเตฝโ€ เดจเตฝเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เด…เดคเดพเดฃเต เดนเตเด•เตเด•เต เดธเด‚เดญเดตเด™เตเด™เดณเตเดŸเต† เด’เดฐเต เดจเดฟเดฐ เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเต - เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เด•เต‚เดŸเตเดคเตฝ เด•เตƒเดคเตเดฏเดฎเดพเดฏเดฟ เดชเดฑเดžเตเดžเดพเตฝ, เดฌเตˆเตปเดกเดฟเด‚เด—เต เดธเดจเตเดฆเตผเดญเด™เตเด™เดณเตเดŸเต† เด’เดฐเต เดจเดฟเดฐ.

เด•เต‚เดŸเดพเดคเต† เด‡เดตเดฏเตเด‚ เด‡เดตเดจเตเดฑเตเด•เตพ เด’เดฐเต เดตเดฒเดฟเดฏ เด’เดจเตเดจเดพเดฏเดฟ เด•เต‚เดŸเตเดŸเดฟเดšเตเดšเต‡เตผเด•เตเด•เดพเด‚. เดชเดฐเดพเดฎเต€เดฑเตเดฑเตผ เด‡เดคเดฟเดจเต เด‰เดคเตเดคเดฐเดตเดพเดฆเดฟเดฏเดพเดฃเต group เดฌเตˆเตปเดกเดฟเด‚เด—เต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเดฟเตฝ.

เดชเต‹เด•เดฃเต‹? เดฌเดพเดทเต! เดทเต†เตฝ-เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฑเต† เด•เดฃเตเดŸเตเดฎเตเดŸเตเดŸเตเด• (KubeCon EU'2020-เตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด…เดตเดฒเต‹เด•เดจเดตเตเด‚ เดตเต€เดกเดฟเดฏเต‹ เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเตเด‚)

เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดŽเดคเตเดฐ เด•เตเดฏเต‚เด•เดณเตเด‚/เดนเตเด•เตเด•เตเด•เดณเตเด‚ เด…เดตเดฏเตเดŸเต† เดตเดฟเดตเดฟเดง เด•เต‹เดฎเตเดชเดฟเดจเต‡เดทเดจเตเด•เดณเตเด‚ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เด’เดฐเต เด•เตเดฏเต‚เดตเดฟเดจเต เดฐเดฃเตเดŸเต เด•เตŠเดณเตเดคเตเดคเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดคเดฟเดฐเดฟเดšเตเดšเตเด‚.

เดชเต‹เด•เดฃเต‹? เดฌเดพเดทเต! เดทเต†เตฝ-เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฑเต† เด•เดฃเตเดŸเตเดฎเตเดŸเตเดŸเตเด• (KubeCon EU'2020-เตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด…เดตเดฒเต‹เด•เดจเดตเตเด‚ เดตเต€เดกเดฟเดฏเต‹ เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเตเด‚)

เด…เดคเดฟเดจเดจเตเดธเดฐเดฟเดšเตเดšเต เดซเต€เตฝเดกเต เด•เต‹เตบเดซเดฟเด—เตผ เดšเต†เดฏเตเดคเดพเตฝ เดฎเดคเดฟ queue เดฌเตˆเตปเดกเดฟเด‚เด—เต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเดฟเตฝ. เด’เดฐเต เด•เตเดฏเต‚ เดจเดพเดฎเด‚ เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เดฟเดฏเดฟเดŸเตเดŸเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เดนเตเด•เตเด•เต เดกเดฟเดซเต‹เตพเดŸเตเดŸเต เด•เตเดฏเต‚เดตเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต (default). เด•เตŠเดณเตเดคเตเดคเตเด•เตพเด•เตเด•เตŠเดชเตเดชเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เดŽเดฒเตเดฒเดพ เดฑเดฟเดธเต‹เดดเตเดธเต เดฎเดพเดจเต‡เดœเตเดฎเต†เดจเตเดฑเต เดชเตเดฐเดถเตเดจเด™เตเด™เดณเตเด‚ เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏเตเด‚ เดชเดฐเดฟเดนเดฐเดฟเด•เตเด•เดพเตป เดˆ เด•เตเดฏเต‚เดฏเดฟเด‚เด—เต เดธเด‚เดตเดฟเดงเดพเดจเด‚ เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต.

เดคเต€เดฐเตเดฎเดพเดจเด‚

เด’เดฐเต เดทเต†เตฝ-เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เดŽเดจเตเดคเดพเดฃเต†เดจเตเดจเต เดžเด™เตเด™เตพ เดตเดฟเดถเดฆเต€เด•เดฐเดฟเดšเตเดšเต, เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผเดฎเดพเดฐเต† เดตเต‡เด—เดคเตเดคเดฟเดฒเตเด‚ เด…เดจเดพเดฏเดพเดธเดฎเดพเดฏเตเด‚ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเตป เด‡เดคเต เดŽเด™เตเด™เดจเต† เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเดฎเต†เดจเตเดจเต เด•เดพเดฃเดฟเดšเตเดšเตเดคเดจเตเดจเต, เด•เต‚เดŸเดพเดคเต† เด…เดคเดฟเดจเตเดฑเต† เด‰เดชเดฏเต‹เด—เดคเตเดคเดฟเดจเต เดจเดฟเดฐเดตเดงเดฟ เด‰เดฆเดพเดนเดฐเดฃเด™เตเด™เตพ เดจเตฝเด•เดฟ.

เดทเต†เตฝ-เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฑเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดตเดฟเดถเดฆเดฎเดพเดฏ เดตเดฟเดตเดฐเด™เตเด™เดณเตเด‚ เด…เดคเต เดŽเด™เตเด™เดจเต† เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดฃเด‚ เดŽเดจเตเดจเดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เด’เดฐเต เดฆเตเดฐเตเดค เดŸเตเดฏเต‚เดŸเตเดŸเต‹เดฑเดฟเดฏเดฒเตเด‚ เด…เดจเตเดฌเดจเตเดงเดคเตเดคเดฟเตฝ เดฒเดญเตเดฏเดฎเดพเดฃเต GitHub-เดฒเต† เดฑเดฟเดชเตเดชเต‹เดธเดฟเดฑเตเดฑเดฑเดฟเด•เตพ. เดšเต‹เดฆเตเดฏเด™เตเด™เดณเตเดฎเดพเดฏเดฟ เดžเด™เตเด™เดณเต† เดฌเดจเตเดงเดชเตเดชเต†เดŸเดพเตป เดฎเดŸเดฟเด•เตเด•เดฐเตเดคเต: เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด…เดต เดชเตเดฐเดคเตเดฏเต‡เด•เดฎเดพเดฏเดฟ เดšเตผเดšเตเดš เดšเต†เดฏเตเดฏเดพเด‚ เดŸเต†เดฒเดฟเด—เตเดฐเดพเด‚ เด—เตเดฐเต‚เดชเตเดชเต (เดฑเดทเตเดฏเตป เดญเดพเดทเดฏเดฟเตฝ) เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด‡เตป เดˆ เดซเต‹เดฑเด‚ (เด‡เด‚เด—เตเดฒเต€เดทเดฟเตฝ).

เดจเดฟเด™เตเด™เตพเด•เตเด•เดฟเดคเต เด‡เดทเตโ€ŒเดŸเดชเตเดชเต†เดŸเตเดŸเต†เด™เตเด•เดฟเตฝ, GitHub-เตฝ เดชเตเดคเดฟเดฏ เดฒเด•เตเด•เด™เตเด™เตพ/PR/เดจเด•เตเดทเดคเตเดฐเด™เตเด™เตพ เด•เดพเดฃเตเดจเตเดจเดคเดฟเตฝ เดžเด™เตเด™เตพ เดŽเดชเตเดชเต‹เดดเตเด‚ เดธเดจเตเดคเตเดทเตเดŸเดฐเดพเดฃเต, เด…เดตเดฟเดŸเต† เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดฎเดฑเตเดฑเตเดณเตเดณเดตเดฐเต† เด•เดฃเตเดŸเต†เดคเตเดคเดพเดจเดพเด•เตเด‚. เดฐเดธเด•เดฐเดฎเดพเดฏ เดชเดฆเตเดงเดคเดฟเด•เตพ. เด…เดตเดฏเดฟเตฝ เดนเตˆเดฒเตˆเดฑเตเดฑเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต เดฎเต‚เดฒเตเดฏเดตเดคเตเดคเดพเดฃเต addon-operator, เดทเต†เตฝ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฑเตเดŸเต† เดฎเต‚เดคเตเดค เดธเดนเต‹เดฆเดฐเตป. เด†เดกเต-เด“เดฃเตเด•เตพ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเด‚ เด…เดชเตโ€Œเดกเต‡เดฑเตเดฑเตเด•เตพ เดจเตฝเด•เตเดจเตเดจเดคเดฟเดจเตเด‚ เดตเดฟเดตเดฟเดง เดšเดพเตผเดŸเตเดŸเต เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพ/เดฎเต‚เดฒเตเดฏเด™เตเด™เตพ เดจเดฟเดฐเต€เด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเด‚ เดšเดพเตผเดŸเตเดŸเตเด•เดณเตเดŸเต† เด‡เตปเดธเตเดฑเตเดฑเดพเดณเต‡เดทเตป เดชเตเดฐเด•เตเดฐเดฟเดฏ เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเด‚ เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดฒเต† เด‡เดตเดจเตเดฑเตเด•เตพเด•เตเด•เต เดชเตเดฐเดคเดฟเด•เดฐเดฃเดฎเดพเดฏเดฟ เด…เดต เดชเดฐเดฟเดทเตโ€Œเด•เตเด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเด‚ เดˆ เดฏเต‚เดŸเตเดŸเดฟเดฒเดฟเดฑเตเดฑเดฟ เดนเต†เตฝเด‚ เดšเดพเตผเดŸเตเดŸเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต.

เดชเต‹เด•เดฃเต‹? เดฌเดพเดทเต! เดทเต†เตฝ-เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฑเต† เด•เดฃเตเดŸเตเดฎเตเดŸเตเดŸเตเด• (KubeCon EU'2020-เตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด…เดตเดฒเต‹เด•เดจเดตเตเด‚ เดตเต€เดกเดฟเดฏเต‹ เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเตเด‚)

เดตเต€เดกเดฟเดฏเต‹เด•เดณเตเด‚ เดธเตเดฒเตˆเดกเตเด•เดณเตเด‚

เดชเตเดฐเด•เดŸเดจเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดตเต€เดกเดฟเดฏเต‹ (~23 เดฎเดฟเดจเดฟเดฑเตเดฑเต):


เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเดฟเดจเตเดฑเต† เด…เดตเดคเดฐเดฃเด‚:

เดชเดฟ.เดŽเดธเต

เดžเด™เตเด™เดณเตเดŸเต† เดฌเตเดฒเต‹เด—เดฟเดฒเตเด‚ เดตเดพเดฏเดฟเด•เตเด•เตเด•:

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•