เชนเชพเชถเชฟเช•เซ‹เชฐเซเชช เช•เซ‹เชจเซเชธเซเชฏเซเชฒเชจเชพ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เช“เชฅเซ‹เชฐเชพเช‡เชเซ‡เชถเชจเชจเซ‹ เชชเชฐเชฟเชšเชฏ

เชนเชพเชถเชฟเช•เซ‹เชฐเซเชช เช•เซ‹เชจเซเชธเซเชฏเซเชฒเชจเชพ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เช“เชฅเซ‹เชฐเชพเช‡เชเซ‡เชถเชจเชจเซ‹ เชชเชฐเชฟเชšเชฏ

เชคเซ‡ เชธเชพเชšเซเช‚ เช›เซ‡, เชชเซเชฐเช•เชพเชถเชจ เชชเช›เซ€ เชนเชพเชถเชฟเช•เซ‹เชฐเซเชช เช•เซ‹เชจเซเชธเชฒ 1.5.0 เชฎเซ‡ 2019 เชจเซ€ เชถเชฐเซ‚เช†เชคเชฎเชพเช‚, เช•เซ‹เชจเซเชธเซเชฏเซเชฒเชฎเชพเช‚ เชคเชฎเซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธเชฎเชพเช‚ เชธเซเชฅเชพเชจเชฟเช• เชฐเซ€เชคเซ‡ เชšเชพเชฒเชคเซ€ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเซ‹ เช…เชจเซ‡ เชธเซ‡เชตเชพเช“เชจเซ‡ เช…เชงเชฟเช•เซƒเชค เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹.

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

เชเชพเช‚เช–เซ€

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

เชนเชพเชถเชฟเช•เซ‹เชฐเซเชช เช•เซ‹เชจเซเชธเซเชฏเซเชฒเชจเชพ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เช“เชฅเซ‹เชฐเชพเช‡เชเซ‡เชถเชจเชจเซ‹ เชชเชฐเชฟเชšเชฏ

เช†เช•เซƒเชคเชฟ 1: เช•เซ‹เชจเซเชธเซเชฏเซเชฒ เช…เชงเชฟเช•เซƒเชคเชคเชพ เชชเชฆเซเชงเชคเชฟเชจเซ€ เชธเชคเซเชคเชพเชตเชพเชฐ เชเชพเช‚เช–เซ€

เชšเชพเชฒเซ‹ เช…เช‚เชฆเชฐ เชœเซ‹เชˆเช เชšเซ‹เช•เซเช•เชธ Kubernetes เช…เชงเชฟเช•เซƒเชคเชคเชพ เชชเชฆเซเชงเชคเชฟ เชฎเชพเชŸเซ‡ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃ.

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

เช…เชฎเซ‡ เช…เชฎเชพเชฐเชพ POC เชฌเชจเชพเชตเชตเชพ เชชเชฐ เช†เช—เชณ เชตเชงเซ€เช เชคเซ‡ เชชเชนเซ‡เชฒเชพเช‚, เชšเชพเชฒเซ‹ เช•เซ‹เชจเซเชธเซเชฏเซเชฒเชจเซ€ เช…เชงเชฟเช•เซƒเชคเชคเชพ เชชเชฆเซเชงเชคเชฟเช“ (เชกเชพเชฏเชพเช—เซเชฐเชพเชฎ 1) เชจเซ€ เชเชพเช‚เช–เซ€ เชชเชฐ เชชเชพเช›เชพ เชœเชˆเช เช…เชจเซ‡ เชคเซ‡เชจเซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธเชจเชพ เชธเช‚เชฆเชฐเซเชญเชฎเชพเช‚ เชธเซเชงเชพเชฐเซ€เช.

เชธเซเชฅเชพเชชเชคเซเชฏ

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

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

เชนเชพเชถเชฟเช•เซ‹เชฐเซเชช เช•เซ‹เชจเซเชธเซเชฏเซเชฒเชจเชพ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เช“เชฅเซ‹เชฐเชพเช‡เชเซ‡เชถเชจเชจเซ‹ เชชเชฐเชฟเชšเชฏ

เชกเชพเชฏเชพเช—เซเชฐเชพเชฎ 2: เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เช“เชฅเซ‹เชฐเชพเช‡เชเซ‡เชถเชจ เชฎเซ‡เชฅเชก เชตเชฟเชนเช‚เช—เชพเชตเชฒเซ‹เช•เชจ

เชเช• เชเชกเชชเซ€ เชจเซ‹เช‚เชง: เช† เช•เชพเชฎ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช•เซ‹เชจเซเชธเชฒ เชธเชฐเซเชตเชฐเชจเซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เช•เซเชฒเชธเซเชŸเชฐเชจเซ€ เชฌเชนเชพเชฐ เชฐเชนเซ‡เชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชจเชฅเซ€. เชชเชฃ เชนเชพ, เชคเซ‡ เช† เชฐเซ€เชคเซ‡ เช…เชจเซ‡ เชคเซ‡ เชฐเซ€เชคเซ‡ เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡.

เชคเซ‡เชฅเซ€, เช•เซ‹เชจเซเชธเซเชฏเซเชฒ เช“เชตเชฐเชตเซเชฏเซ เชกเชพเชฏเชพเช—เซเชฐเชพเชฎ (เชกเชพเชฏเชพเช—เซเชฐเชพเชฎ 1) เชจเซ‡ เชฒเชˆเชจเซ‡ เช…เชจเซ‡ เชคเซ‡เชจเชพ เชชเชฐ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชฒเชพเช—เซ เช•เชฐเชตเชพเชฅเซ€, เช…เชฎเชจเซ‡ เช‰เชชเชฐเชจเซ‹ เช†เช•เซƒเชคเชฟ เชฎเชณเซ‡ เช›เซ‡ (เชกเชพเชฏเชพเช—เซเชฐเชพเชฎ 2), เช…เชจเซ‡ เช…เชนเซ€เช‚เชจเซ‹ เชคเชฐเซเช• เชจเซ€เชšเซ‡ เชฎเซเชœเชฌ เช›เซ‡:

  1. เชฆเชฐเซ‡เช• เชชเซ‹เชก เชคเซ‡เชจเซ€ เชธเชพเชฅเซ‡ เชœเซ‹เชกเชพเชฏเซ‡เชฒ เชเช• เชธเซ‡เชตเชพ เช–เชพเชคเซเช‚ เชนเชถเซ‡ เชœเซ‡เชฎเชพเช‚ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชฆเซเชตเชพเชฐเชพ เชœเชจเชฐเซ‡เชŸ เช•เชฐเชพเชฏเซ‡เชฒ เช…เชจเซ‡ เชœเชพเชฃเซ€เชคเซเช‚ JWT เชŸเซ‹เช•เชจ เชนเชถเซ‡. เช† เชŸเซ‹เช•เชจ เชชเชฃ เชฎเซ‚เชณเชญเซ‚เชค เชฐเซ€เชคเซ‡ เชชเซ‹เชกเชฎเชพเช‚ เชฆเชพเช–เชฒ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡.
  2. เชชเซ‹เชกเชจเซ€ เช…เช‚เชฆเชฐ เช…เชฎเชพเชฐเซ€ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เช…เชฅเชตเชพ เชธเซ‡เชตเชพ เช…เชฎเชพเชฐเชพ เช•เซ‹เชจเซเชธเซเชฏเซเชฒ เช•เซเชฒเชพเชฏเชจเซเชŸเชจเซ‡ เชฒเซ‹เช—เชฟเชจ เช†เชฆเซ‡เชถ เชถเชฐเซ‚ เช•เชฐเซ‡ เช›เซ‡. เชฒเซ‹เช—เชฟเชจ เชตเชฟเชจเช‚เชคเซ€เชฎเชพเช‚ เช…เชฎเชพเชฐเชพ เชŸเซ‹เช•เชจ เช…เชจเซ‡ เชจเชพเชฎเชจเซ‹ เชชเชฃ เชธเชฎเชพเชตเซ‡เชถ เชฅเชถเซ‡ เช–เชพเชธ เชฌเชจเชพเชตเซ‡เชฒ เช›เซ‡ เช…เชงเชฟเช•เซƒเชคเชคเชพ เชชเชฆเซเชงเชคเชฟ (เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชชเซเชฐเช•เชพเชฐ). เช† เชชเช—เชฒเซเช‚ #2 เช•เซ‹เชจเซเชธเชฒ เชกเชพเชฏเชพเช—เซเชฐเชพเชฎ (เชธเซเช•เซ€เชฎ 1) เชจเชพ เชชเช—เชฒเซเช‚ 1 เชจเซ‡ เช…เชจเซเชฐเซ‚เชช เช›เซ‡.
  3. เช…เชฎเชพเชฐเชพ เช•เซ‹เชจเซเชธเซเชฏเซเชฒ เช•เซเชฒเชพเชฏเช‚เชŸ เชชเช›เซ€ เช† เชตเชฟเชจเช‚เชคเซ€ เช…เชฎเชพเชฐเชพ เช•เซ‹เชจเซเชธเซเชฏเซเชฒ เชธเชฐเซเชตเชฐเชจเซ‡ เชซเซ‹เชฐเชตเชฐเซเชก เช•เชฐเชถเซ‡.
  4. เชฎเซ‡เชœเชฟเช•! เช† เชคเซ‡ เช›เซ‡ เชœเซเชฏเชพเช‚ เช•เซ‹เชจเซเชธเซเชฏเซเชฒ เชธเชฐเซเชตเชฐ เชตเชฟเชจเช‚เชคเซ€เชจเซ€ เช…เชงเชฟเช•เซƒเชคเชคเชพเชจเซ€ เชšเช•เชพเชธเชฃเซ€ เช•เชฐเซ‡ เช›เซ‡, เชตเชฟเชจเช‚เชคเซ€เชจเซ€ เช“เชณเช– เชตเชฟเชถเซ‡เชจเซ€ เชฎเชพเชนเชฟเชคเซ€ เชเช•เชคเซเชฐเชฟเชค เช•เชฐเซ‡ เช›เซ‡ เช…เชจเซ‡ เชคเซ‡เชจเซ€ เชคเซเชฒเชจเชพ เช•เซ‹เชˆเชชเชฃ เชธเช‚เชฌเช‚เชงเชฟเชค เชชเซ‚เชฐเซเชตเชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เชจเชฟเชฏเชฎเซ‹ เชธเชพเชฅเซ‡ เช•เชฐเซ‡ เช›เซ‡. เช†เชจเซ‡ เชธเชฎเชœเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เชจเซ€เชšเซ‡ เช…เชจเซเชฏ เช†เช•เซƒเชคเชฟ เช›เซ‡. เช† เชชเช—เชฒเซเช‚ เช•เซ‹เชจเซเชธเชฒ เช“เชตเชฐเชตเซเชฏเซ เชกเชพเชฏเชพเช—เซเชฐเชพเชฎ (เชกเชพเชฏเชพเช—เซเชฐเชพเชฎ 3) เชจเชพ เชชเช—เชฒเชพเช‚ 4, 5 เช…เชจเซ‡ 1 เชจเซ‡ เช…เชจเซเชฐเซ‚เชช เช›เซ‡.
  5. เช…เชฎเชพเชฐเซเช‚ เช•เซ‹เชจเซเชธเซเชฏเซเชฒ เชธเชฐเซเชตเชฐ เชตเชฟเชจเช‚เชคเซ€เช•เชฐเซเชคเชพเชจเซ€ เช“เชณเช– เชธเช‚เชฌเช‚เชงเชฟเชค เช…เชฎเชพเชฐเชพ เชจเชฟเชฐเซเชฆเชฟเชทเซเชŸ เช…เชงเชฟเช•เซƒเชคเชคเชพ เชชเชฆเซเชงเชคเชฟ เชจเชฟเชฏเชฎเซ‹ (เชœเซ‡ เช…เชฎเซ‡ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เช•เชฐเซเชฏเซเช‚ เช›เซ‡) เช…เชจเซเชธเชพเชฐ เชชเชฐเชตเชพเชจเช—เซ€เช“ เชธเชพเชฅเซ‡ เช•เชจเซเชธเซเชฏเซเชฒ เชŸเซ‹เช•เชจ เชœเชจเชฐเซ‡เชŸ เช•เชฐเซ‡ เช›เซ‡. เชคเซ‡ เชชเช›เซ€ เชคเซ‡ เชŸเซ‹เช•เชจ เชชเชพเช›เซเช‚ เชฎเซ‹เช•เชฒเชถเซ‡. เช† เช•เซ‹เชจเซเชธเชฒ เชกเชพเชฏเชพเช—เซเชฐเชพเชฎ (เชกเชพเชฏเชพเช—เซเชฐเชพเชฎ 6) เชจเชพ เชธเซเชŸเซ‡เชช 1 เชจเซ‡ เช…เชจเซเชฐเซ‚เชช เช›เซ‡.
  6. เช…เชฎเชพเชฐเชพ เช•เซ‹เชจเซเชธเซเชฏเซเชฒ เช•เซเชฒเชพเชฏเชจเซเชŸ เชตเชฟเชจเช‚เชคเซ€ เช•เชฐเชคเซ€ เช…เชฐเชœเซ€ เช…เชฅเชตเชพ เชธเซ‡เชตเชพเชจเซ‡ เชŸเซ‹เช•เชจ เชซเซ‹เชฐเชตเชฐเซเชก เช•เชฐเซ‡ เช›เซ‡.

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

เชœเชพเชฆเซ เชชเซเชฐเช—เชŸ เชฅเชพเชฏ เช›เซ‡!

เชคเชฎเชพเชฐเชพเชฎเชพเช‚เชจเชพ เชœเซ‡เช“ เชŸเซ‹เชชเซ€เชฎเชพเช‚เชฅเซ€ เชฎเชพเชคเซเชฐ เชธเชธเชฒเชพเชฅเซ€ เช–เซเชถ เชจเชฅเซ€ เช…เชจเซ‡ เชคเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡ เชคเซ‡ เชœเชพเชฃเชตเชพ เชฎเชพเช—เซ‡ เช›เซ‡... เชšเชพเชฒเซ‹ เชนเซเช‚ เชคเชฎเชจเซ‡ เชฌเชคเชพเชตเซเช‚ เช•เซ‡ เช•เซ‡เชŸเชฒเซเช‚ เชŠเช‚เชกเซเช‚ เชธเชธเชฒเซเช‚ เช›เชฟเชฆเซเชฐยป.

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

เชนเชพเชถเชฟเช•เซ‹เชฐเซเชช เช•เซ‹เชจเซเชธเซเชฏเซเชฒเชจเชพ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เช“เชฅเซ‹เชฐเชพเช‡เชเซ‡เชถเชจเชจเซ‹ เชชเชฐเชฟเชšเชฏ

เช†เช•เซƒเชคเชฟ 3: เชœเชพเชฆเซ เชชเซเชฐเช—เชŸ เชฅเชฏเซ‹!

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

เชจเชฟเชฏเชฎเชฟเชค เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจ เชชเชฐ เช•เซ‹เชจเซเชธเชฒ-เชธเชฐเซเชตเชฐ เชšเชฒเชพเชตเซ‹

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

  • เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจ เชถเชฐเซ‚ เช•เชฐเซ‹ (เช‡เชจเซเชธเซเชŸเชจเซเชธ/เชธเชฐเซเชตเชฐ).

เชนเชพเชถเชฟเช•เซ‹เชฐเซเชช เช•เซ‹เชจเซเชธเซเชฏเซเชฒเชจเชพ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เช“เชฅเซ‹เชฐเชพเช‡เชเซ‡เชถเชจเชจเซ‹ เชชเชฐเชฟเชšเชฏ

  • เชซเชพเชฏเชฐเชตเซ‹เชฒ เชฎเชพเชŸเซ‡ เชเช• เชจเชฟเชฏเชฎ เชฌเชจเชพเชตเซ‹ (AWS เชฎเชพเช‚ เชธเซเชฐเช•เซเชทเชพ เชœเซ‚เชฅ):
  • เชนเซเช‚ เชจเชฟเชฏเชฎ เช…เชจเซ‡ เชจเซ‡เชŸเชตเชฐเซเช• เชŸเซ…เช— เชฌเช‚เชจเซ‡เชจเซ‡ เชธเชฎเชพเชจ เชฎเชถเซ€เชจ เชจเชพเชฎ เชธเซ‹เช‚เชชเชตเชพเชจเซเช‚ เชชเชธเช‚เชฆ เช•เชฐเซเช‚ เช›เซเช‚, เช† เช•เชฟเชธเซเชธเชพเชฎเชพเช‚ "skywiz-consul-server-poc".
  • เชคเชฎเชพเชฐเชพ เชธเซเชฅเชพเชจเชฟเช• เช•เชฎเซเชชเซเชฏเซเชŸเชฐเชจเซเช‚ IP เชธเชฐเชจเชพเชฎเซเช‚ เชถเซ‹เชงเซ‹ เช…เชจเซ‡ เชคเซ‡เชจเซ‡ เชธเซเชฐเซ‹เชค IP เชธเชฐเชจเชพเชฎเชพเช“เชจเซ€ เชธเซ‚เชšเชฟเชฎเชพเช‚ เช‰เชฎเซ‡เชฐเซ‹ เชœเซ‡เชฅเซ€ เช…เชฎเซ‡ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เช‡เชจเซเชŸเชฐเชซเซ‡เชธ (UI) เชจเซ‡ เชเช•เซเชธเซ‡เชธ เช•เชฐเซ€ เชถเช•เซ€เช.
  • UI เชฎเชพเชŸเซ‡ เชชเซ‹เชฐเซเชŸ 8500 เช–เซ‹เชฒเซ‹. เชฌเชจเชพเชตเซ‹ เชชเชฐ เช•เซเชฒเชฟเช• เช•เชฐเซ‹. เช…เชฎเซ‡ เช† เชซเชพเชฏเชฐเชตเซ‹เชฒเชจเซ‡ เชŸเซ‚เช‚เช• เชธเชฎเชฏเชฎเชพเช‚ เชฌเชฆเชฒเซ€เชถเซเช‚ [ััั‹ะปะบะฐ].
  • เชฆเชพเช–เชฒเชพเชฎเชพเช‚ เชซเชพเชฏเชฐเชตเซ‹เชฒ เชจเชฟเชฏเชฎ เช‰เชฎเซ‡เชฐเซ‹. เช•เซ‹เชจเซเชธเชฒ เชธเชฐเซเชตเชฐ เชชเชฐ VM เชกเซ‡เชถเชฌเซ‹เชฐเซเชก เชชเชฐ เชชเชพเช›เชพ เชœเชพเช“ เช…เชจเซ‡ เชจเซ‡เชŸเชตเชฐเซเช• เชŸเซ…เช— เชซเซ€เชฒเซเชกเชฎเชพเช‚ "skywiz-consul-server-poc" เช‰เชฎเซ‡เชฐเซ‹. เชธเซ‡เชต เชชเชฐ เช•เซเชฒเชฟเช• เช•เชฐเซ‹.

เชนเชพเชถเชฟเช•เซ‹เชฐเซเชช เช•เซ‹เชจเซเชธเซเชฏเซเชฒเชจเชพ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เช“เชฅเซ‹เชฐเชพเช‡เชเซ‡เชถเชจเชจเซ‹ เชชเชฐเชฟเชšเชฏ

  • เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจ เชชเชฐ เช•เซ‹เชจเซเชธเซเชฏเซเชฒ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ‹, เช…เชนเซ€เช‚ เชคเชชเชพเชธเซ‹. เชฏเชพเชฆ เชฐเชพเช–เซ‹ เช•เซ‡ เชคเชฎเชพเชฐเซ‡ เช•เซ‹เชจเซเชธเซเชฏเซเชฒ เชตเชฐเซเชเชจ โ‰ฅ 1.5เชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ [เชฒเชฟเช‚เช•]
  • เชšเชพเชฒเซ‹ เชเช• เชจเซ‹เชก เช•เซ‹เชจเซเชธเซเชฏเซเชฒ เชฌเชจเชพเชตเซ€เช - เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ เชจเซ€เชšเซ‡ เชฎเซเชœเชฌ เช›เซ‡.

groupadd --system consul
useradd -s /sbin/nologin --system -g consul consul
mkdir -p /var/lib/consul
chown -R consul:consul /var/lib/consul
chmod -R 775 /var/lib/consul
mkdir /etc/consul.d
chown -R consul:consul /etc/consul.d

  • เช•เซ‹เชจเซเชธเซเชฏเซเชฒ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเชตเชพ เช…เชจเซ‡ 3 เชจเซ‹เชกเซเชธเชจเซเช‚ เช•เซเชฒเชธเซเชŸเชฐ เชธเซ‡เชŸ เช•เชฐเชตเชพ เชตเชฟเชถเซ‡ เชตเชงเซ เชตเชฟเช—เชคเชตเชพเชฐ เชฎเชพเชฐเซเช—เชฆเชฐเซเชถเชฟเช•เชพ เชฎเชพเชŸเซ‡, เชœเซเช“ เช…เชนเซ€เช‚.
  • เชจเซ€เชšเซ‡ เชชเซเชฐเชฎเชพเชฃเซ‡ เชซเชพเช‡เชฒ /etc/consul.d/agent.json เชฌเชจเชพเชตเซ‹ [ััั‹ะปะบะฐ]:

### /etc/consul.d/agent.json
{
 "acl" : {
 "enabled": true,
 "default_policy": "deny",
 "enable_token_persistence": true
 }
}

  • เช…เชฎเชพเชฐเซเช‚ เช•เซ‹เชจเซเชธเซเชฏเซเชฒ เชธเชฐเซเชตเชฐ เชถเชฐเซ‚ เช•เชฐเซ‹:

consul agent 
-server 
-ui 
-client 0.0.0.0 
-data-dir=/var/lib/consul 
-bootstrap-expect=1 
-config-dir=/etc/consul.d

  • เชคเชฎเชพเชฐเซ‡ เช†เช‰เชŸเชชเซเชŸเชจเซ‹ เชธเชฎเซ‚เชน เชœเซ‹เชตเซ‹ เชœเซ‹เชˆเช เช…เชจเซ‡ "... ACLs เชฆเซเชตเชพเชฐเชพ เช…เชตเชฐเซ‹เชงเชฟเชค เช…เชชเชกเซ‡เชŸ" เชธเชพเชฅเซ‡ เชธเชฎเชพเชชเซเชค เชฅเชตเซเช‚ เชœเซ‹เชˆเช.
  • เช•เซ‹เชจเซเชธเชฒ เชธเชฐเซเชตเชฐเชจเซเช‚ เชฌเชพเชนเซเชฏ IP เชธเชฐเชจเชพเชฎเซเช‚ เชถเซ‹เชงเซ‹ เช…เชจเซ‡ เชชเซ‹เชฐเซเชŸ 8500 เชชเชฐ เช† IP เชธเชฐเชจเชพเชฎเชพ เชธเชพเชฅเซ‡เชจเซเช‚ เชฌเซเชฐเชพเช‰เชเชฐ เช–เซ‹เชฒเซ‹. เช–เชพเชคเชฐเซ€ เช•เชฐเซ‹ เช•เซ‡ UI เช–เซเชฒเซ‡ เช›เซ‡.
  • เช•เซ€/เชฎเซ‚เชฒเซเชฏเชจเซ€ เชœเซ‹เชกเซ€ เช‰เชฎเซ‡เชฐเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซ‹. เช•เซ‹เชˆ เชญเซ‚เชฒ เชนเซ‹เชตเซ€ เชœเซ‹เชˆเช. เช† เชเชŸเชฒเชพ เชฎเชพเชŸเซ‡ เช›เซ‡ เช•เชพเชฐเชฃ เช•เซ‡ เช…เชฎเซ‡ เช•เซ‹เชจเซเชธเชฒ เชธเชฐเซเชตเชฐเชจเซ‡ ACL เชธเชพเชฅเซ‡ เชฒเซ‹เชก เช•เชฐเซเชฏเซเช‚ เช›เซ‡ เช…เชจเซ‡ เชคเชฎเชพเชฎ เชจเชฟเชฏเชฎเซ‹เชจเซ‡ เช…เช•เซเชทเชฎ เช•เชฐเซเชฏเชพ เช›เซ‡.
  • เช•เซ‹เชจเซเชธเซเชฏเซเชฒ เชธเชฐเซเชตเชฐ เชชเชฐ เชคเชฎเชพเชฐเชพ เชถเซ‡เชฒ เชชเชฐ เชชเชพเช›เชพ เชœเชพเช“ เช…เชจเซ‡ เชคเซ‡เชจเซ‡ เชšเชฒเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เชชเซƒเชทเซเช เชญเซ‚เชฎเชฟเชฎเชพเช‚ เช…เชฅเชตเชพ เช…เชจเซเชฏ เช•เซ‹เชˆ เชฐเซ€เชคเซ‡ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เชถเชฐเซ‚ เช•เชฐเซ‹ เช…เชจเซ‡ เชจเซ€เชšเซ‡เชจเชพ เชฆเชพเช–เชฒ เช•เชฐเซ‹:

consul acl bootstrap

  • "SecretID" เชฎเซ‚เชฒเซเชฏ เชถเซ‹เชงเซ‹ เช…เชจเซ‡ UI เชชเชฐ เชชเชพเช›เชพ เชซเชฐเซ‹. ACL เชŸเซ…เชฌเชฎเชพเช‚, เชคเชฎเซ‡ เชนเชฎเชฃเชพเช‚ เช•เซ‰เชชเชฟ เช•เชฐเซ‡เชฒ เชŸเซ‹เช•เชจเชจเซเช‚ เช—เซเชชเซเชค ID เชฆเชพเช–เชฒ เช•เชฐเซ‹. SecretID เชจเซ‡ เชฌเซ€เชœเซ‡ เช•เซเชฏเชพเช‚เช• เช•เซ‹เชชเซ€ เช•เชฐเซ‹, เช…เชฎเชจเซ‡ เชชเช›เซ€เชฅเซ€ เชคเซ‡เชจเซ€ เชœเชฐเซ‚เชฐ เชชเชกเชถเซ‡.
  • เชนเชตเซ‡ เช•เซ€/เชฎเซ‚เชฒเซเชฏเชจเซ€ เชœเซ‹เชกเซ€ เช‰เชฎเซ‡เชฐเซ‹. เช† POC เชฎเชพเชŸเซ‡, เชจเซ€เชšเซ‡เชจเซ€ เช‰เชฎเซ‡เชฐเซ‹: เช•เซ€: โ€œcustom-ns/test_keyโ€, เชฎเซ‚เชฒเซเชฏ: โ€œเชนเซเช‚ custom-ns เชซเซ‹เชฒเซเชกเชฐเชฎเชพเช‚ เช›เซเช‚!โ€

เชกเซ‡เชฎเชจเชธเซ‡เชŸ เชคเชฐเซ€เช•เซ‡ เช•เซ‹เชจเซเชธเซเชฏเซเชฒ เช•เซเชฒเชพเชฏเชจเซเชŸ เชธเชพเชฅเซ‡ เช…เชฎเชพเชฐเซ€ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชฎเชพเชŸเซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เช•เซเชฒเชธเซเชŸเชฐ เชถเชฐเซ‚ เช•เชฐเซ€ เชฐเชนเซเชฏเชพเช‚ เช›เซ€เช

  • K8s (Kubernetes) เช•เซเชฒเชธเซเชŸเชฐ เชฌเชจเชพเชตเซ‹. เช…เชฎเซ‡ เชคเซ‡เชจเซ‡ เชเชกเชชเซ€ เชเช•เซเชธเซ‡เชธ เชฎเชพเชŸเซ‡ เชธเชฐเซเชตเชฐ เชœเซ‡เชตเชพ เชœ เชเซ‹เชจเชฎเชพเช‚ เชฌเชจเชพเชตเซ€เชถเซเช‚, เช…เชจเซ‡ เชคเซ‡เชฅเซ€ เช…เชฎเซ‡ เช†เช‚เชคเชฐเชฟเช• IP เชธเชฐเชจเชพเชฎเชพเช“ เชธเชพเชฅเซ‡ เชธเชฐเชณเชคเชพเชฅเซ€ เช•เชจเซ‡เช•เซเชŸ เชฅเชตเชพ เชฎเชพเชŸเซ‡ เชธเชฎเชพเชจ เชธเชฌเชจเซ‡เชŸเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ€เช เช›เซ€เช. เช…เชฎเซ‡ เชคเซ‡เชจเซ‡ "skywiz-app-with-consul-client-poc" เช•เชนเซ€เชถเซเช‚.

เชนเชพเชถเชฟเช•เซ‹เชฐเซเชช เช•เซ‹เชจเซเชธเซเชฏเซเชฒเชจเชพ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เช“เชฅเซ‹เชฐเชพเช‡เชเซ‡เชถเชจเชจเซ‹ เชชเชฐเชฟเชšเชฏ

  • เชฌเชพเชœเซเชจเซ€ เชจเซ‹เช‚เชง เชคเชฐเซ€เช•เซ‡, เช…เชนเซ€เช‚ เชเช• เชธเชพเชฐเซเช‚ เชŸเซเชฏเซเชŸเซ‹เชฐเซ€เชฏเชฒ เช›เซ‡ เชœเซ‡ เชฎเชจเซ‡ Consul Connect เชธเชพเชฅเซ‡ POC เช•เซ‹เชจเซเชธเชฒ เช•เซเชฒเชธเซเชŸเชฐ เชธเซ‡เชŸ เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ เชฎเชณเซเชฏเซเช‚.
  • เช…เชฎเซ‡ เชตเชฟเชธเซเชคเซƒเชค เชฎเซ‚เชฒเซเชฏเซ‹เชจเซ€ เชซเชพเช‡เชฒ เชธเชพเชฅเซ‡ เชนเชพเชถเชฟเช•เซ‹เชฐเซเชช เชนเซ‡เชฒเซเชฎ เชšเชพเชฐเซเชŸเชจเซ‹ เชชเชฃ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชถเซเช‚.
  • เชนเซ‡เชฒเซเชฎ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช…เชจเซ‡ เช—เซ‹เช เชตเซ‹. เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ เชชเช—เชฒเชพเช‚:

kubectl create serviceaccount tiller --namespace kube-system
kubectl create clusterrolebinding tiller-admin-binding 
   --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
./helm init --service-account=tiller
./helm update

  • เชธเซเช•เชพเชจ เชšเชพเชฐเซเชŸ: https://www.consul.io/docs/platform/k8s/helm.html
  • เชจเซ€เชšเซ‡เชจเซ€ เชตเซ‡เชฒเซเชฏเซ เชซเชพเช‡เชฒเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹ (เชจเซ‹เช‚เชง เชฎเซ‡เช‚ เชธเซŒเชฅเซ€ เชตเชงเซ เช…เช•เซเชทเชฎ เช•เชฐเซ€ เช›เซ‡):

### poc-helm-consul-values.yaml
global:
 enabled: false
 image: "consul:latest"
# Expose the Consul UI through this LoadBalancer
ui:
 enabled: false
# Allow Consul to inject the Connect proxy into Kubernetes containers
connectInject:
 enabled: false
# Configure a Consul client on Kubernetes nodes. GRPC listener is required for Connect.
client:
 enabled: true
 join: ["<PRIVATE_IP_CONSUL_SERVER>"]
 extraConfig: |
{
  "acl" : {
 "enabled": true,   
 "default_policy": "deny",   
 "enable_token_persistence": true 
  }
}
# Minimal Consul configuration. Not suitable for production.
server:
 enabled: false
# Sync Kubernetes and Consul services
syncCatalog:
 enabled: false

  • เชธเซเช•เชพเชจ เชšเชพเชฐเซเชŸ เชฒเชพเช—เซ เช•เชฐเซ‹:

./helm install -f poc-helm-consul-values.yaml ./consul-helm - name skywiz-app-with-consul-client-poc

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

เชนเชพเชถเชฟเช•เซ‹เชฐเซเชช เช•เซ‹เชจเซเชธเซเชฏเซเชฒเชจเชพ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เช“เชฅเซ‹เชฐเชพเช‡เชเซ‡เชถเชจเชจเซ‹ เชชเชฐเชฟเชšเชฏ

  • เช•เซ‹เชจเซเชธเชฒ UI เชชเชฐ เชœเชพเช“ เช…เชจเซ‡ เชฅเซ‹เชกเซ€เชตเชพเชฐ เชชเช›เซ€ เชคเชฎเซ‡ เชจเซ‹เชกเซเชธ เชŸเซ‡เชฌเชฎเชพเช‚ เช…เชฎเชพเชฐเซเช‚ เช•เซเชฒเชธเซเชŸเชฐ เชฆเซ‡เช–เชพเชถเซ‡.

เชนเชพเชถเชฟเช•เซ‹เชฐเซเชช เช•เซ‹เชจเซเชธเซเชฏเซเชฒเชจเชพ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เช“เชฅเซ‹เชฐเชพเช‡เชเซ‡เชถเชจเชจเซ‹ เชชเชฐเชฟเชšเชฏ

เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชธเชพเชฅเซ‡ เช•เซ‹เชจเซเชธเชฒเชจเซ‡ เชเช•เซ€เช•เซƒเชค เช•เชฐเซ€เชจเซ‡ เช…เชงเชฟเช•เซƒเชคเชคเชพ เชชเชฆเซเชงเชคเชฟเชจเซ‡ เช—เซ‹เช เชตเชตเซ€

  • เช•เซ‹เชจเซเชธเชฒ เชธเชฐเซเชตเชฐ เชถเซ‡เชฒ เชชเชฐ เชชเชพเช›เชพ เชซเชฐเซ‹ เช…เชจเซ‡ เชคเชฎเซ‡ เช…เช—เชพเช‰ เชธเชพเชšเชตเซ‡เชฒ เชŸเซ‹เช•เชจ เชจเชฟเช•เชพเชธ เช•เชฐเซ‹:

export CONSUL_HTTP_TOKEN=<SecretID>

  • เช…เชงเชฟเช•เซƒเชค เชชเชฆเซเชงเชคเชฟเชจเซ‹ เชฆเชพเช–เชฒเซ‹ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เช…เชฎเชจเซ‡ เช…เชฎเชพเชฐเชพ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เช•เซเชฒเชธเซเชŸเชฐเชฎเชพเช‚เชฅเซ€ เชฎเชพเชนเชฟเชคเซ€เชจเซ€ เชœเชฐเซ‚เชฐ เชชเชกเชถเซ‡:
  • kubernetes-เชฏเชœเชฎเชพเชจ

kubectl get endpoints | grep kubernetes

  • kubernetes-service-account-jwt

kubectl get sa <helm_deployment_name>-consul-client -o yaml | grep "- name:"
kubectl get secret <secret_name_from_prev_command> -o yaml | grep token:

  • เชŸเซ‹เช•เชจ เชฌเซ‡เช 64 เชเชจเซเช•เซ‹เชกเซ‡เชก เช›เซ‡, เชคเซ‡เชฅเซ€ เชคเชฎเชพเชฐเชพ เชฎเชจเชชเชธเช‚เชฆ เชธเชพเชงเชจเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชคเซ‡เชจเซ‡ เชกเชฟเช•เซเชฐเชฟเชชเซเชŸ เช•เชฐเซ‹ [ััั‹ะปะบะฐ]
  • kubernetes-ca-cert

kubectl get secret <secret_name_from_prev_command> -o yaml | grep ca.crt:

  • โ€œca.crtโ€ เชชเซเชฐเชฎเชพเชฃเชชเชคเซเชฐ เชฒเซ‹ (base64 เชกเซ€เช•เซ‹เชกเชฟเช‚เช— เชชเช›เซ€) เช…เชจเซ‡ เชคเซ‡เชจเซ‡ โ€œca.crtโ€ เชซเชพเชˆเชฒเชฎเชพเช‚ เชฒเช–เซ‹.
  • เชนเชตเซ‡ เชคเชฎเซ‡ เชนเชฎเชฃเชพเช‚ เชœ เชชเซเชฐเชพเชชเซเชค เช•เชฐเซ‡เชฒ เชฎเซ‚เชฒเซเชฏเซ‹ เชธเชพเชฅเซ‡ เชชเซเชฒเซ‡เชธเชนเซ‹เชฒเซเชกเชฐเซเชธเชจเซ‡ เชฌเชฆเชฒเซ€เชจเซ‡, เชชเซเชฐเชฎเชพเชฃเซ€เช•เชฐเชฃ เชชเชฆเซเชงเชคเชฟเชจเซ‡ เชคเซเชตเชฐเชฟเชค เช•เชฐเซ‹.

consul acl auth-method create 
-type "kubernetes" 
-name "auth-method-skywiz-consul-poc" 
-description "This is an auth method using kubernetes for the cluster skywiz-app-with-consul-client-poc" 
-kubernetes-host "<k8s_endpoint_retrieved earlier>" 
[email protected] 
-kubernetes-service-account-
jwt="<decoded_token_retrieved_earlier>"

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

### kv-custom-ns-policy.hcl
key_prefix "custom-ns/" {
 policy = "write"
}

  • เชจเชฟเชฏเชฎ เชฒเชพเช—เซ เช•เชฐเซ‹

consul acl policy create 
-name kv-custom-ns-policy 
-description "This is an example policy for kv at custom-ns/" 
-rules @kv-custom-ns-policy.hcl

  • เชคเชฎเซ‡ เชนเชฎเชฃเชพเช‚ เชœ เช†เช‰เชŸเชชเซเชŸเชฎเชพเช‚เชฅเซ€ เชฌเชจเชพเชตเซ‡เชฒ เชจเชฟเชฏเชฎเชจเซเช‚ ID เชถเซ‹เชงเซ‹.
  • เชจเชตเชพ เชจเชฟเชฏเชฎ เชธเชพเชฅเซ‡ เชญเซ‚เชฎเชฟเช•เชพ เชฌเชจเชพเชตเซ‹.

consul acl role create 
-name "custom-ns-role" 
-description "This is an example role for custom-ns namespace" 
-policy-id <policy_id>

  • เชนเชตเซ‡ เช…เชฎเซ‡ เช…เชฎเชพเชฐเซ€ เชจเชตเซ€ เชญเซ‚เชฎเชฟเช•เชพเชจเซ‡ เช“เชฅ เชฎเซ‡เชฅเชก เช‡เชจเซเชธเซเชŸเชจเซเชธ เชธเชพเชฅเซ‡ เชธเชพเช‚เช•เชณเซ€เชถเซเช‚. เชจเซ‹เช‚เชง เช•เชฐเซ‹ เช•เซ‡ "เชชเชธเช‚เชฆเช—เซ€เช•เชฐเซเชคเชพ" เชงเซเชตเชœ เชจเชฟเชฐเซเชงเชพเชฐเชฟเชค เช•เชฐเซ‡ เช›เซ‡ เช•เซ‡ เชถเซเช‚ เช…เชฎเชพเชฐเซ€ เชฒเซ‰เช—เชฟเชจ เชตเชฟเชจเช‚เชคเซ€ เช† เชญเซ‚เชฎเชฟเช•เชพ เชชเซเชฐเชพเชชเซเชค เช•เชฐเชถเซ‡. เช…เชจเซเชฏ เชชเชธเช‚เชฆเช—เซ€เช•เชพเชฐ เชตเชฟเช•เชฒเซเชชเซ‹ เชฎเชพเชŸเซ‡ เช…เชนเซ€เช‚ เชคเชชเชพเชธเซ‹: https://www.consul.io/docs/acl/auth-methods/kubernetes.html#trusted-identity-attributes

consul acl binding-rule create 
-method=auth-method-skywiz-consul-poc 
-bind-type=role 
-bind-name='custom-ns-role' 
-selector='serviceaccount.namespace=="custom-ns"'

เช›เซ‡เชฒเซเชฒเซ‡ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจเซ‹

เชเช•เซเชธเซ‡เชธ เช…เชงเชฟเช•เชพเชฐเซ‹

  • เชเช•เซเชธเซ‡เชธ เช…เชงเชฟเช•เชพเชฐเซ‹ เชฌเชจเชพเชตเซ‹. K8s เชธเชฐเซเชตเชฟเชธ เชเช•เชพเช‰เชจเซเชŸ เชŸเซ‹เช•เชจเชจเซ€ เช“เชณเช– เชšเช•เชพเชธเชตเชพ เช…เชจเซ‡ เช“เชณเช–เชตเชพ เชฎเชพเชŸเซ‡ เช…เชฎเชพเชฐเซ‡ เช•เซ‹เชจเซเชธเซเชฏเซเชฒเชจเซ‡ เชชเชฐเชตเชพเชจเช—เซ€ เช†เชชเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡.
  • เชซเชพเช‡เชฒเชฎเชพเช‚ เชจเซ€เชšเซ‡เชจเซ€ เชฌเชพเชฌเชคเซ‹ เชฒเช–เซ‹ [เชฒเชฟเช‚เช•]:

###skywiz-poc-consul-server_rbac.yaml
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
 name: review-tokens
 namespace: default
subjects:
- kind: ServiceAccount
 name: skywiz-app-with-consul-client-poc-consul-client
 namespace: default
roleRef:
 kind: ClusterRole
 name: system:auth-delegator
 apiGroup: rbac.authorization.k8s.io
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
 name: service-account-getter
 namespace: default
rules:
- apiGroups: [""]
 resources: ["serviceaccounts"]
 verbs: ["get"]
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
 name: get-service-accounts
 namespace: default
subjects:
- kind: ServiceAccount
 name: skywiz-app-with-consul-client-poc-consul-client
 namespace: default
roleRef:
 kind: ClusterRole
 name: service-account-getter
 apiGroup: rbac.authorization.k8s.io

  • เชšเชพเชฒเซ‹ เชเช•เซเชธเซ‡เชธ เช…เชงเชฟเช•เชพเชฐเซ‹ เชฌเชจเชพเชตเซ€เช

kubectl create -f skywiz-poc-consul-server_rbac.yaml

เช•เซ‹เชจเซเชธเซเชฏเซเชฒ เช•เซเชฒเชพเชฏเชจเซเชŸ เชธเชพเชฅเซ‡ เช•เชจเซ‡เช•เซเชŸ เชฅเชˆ เชฐเชนเซเชฏเซเช‚ เช›เซ‡

  • เชœเซ‡เชฎ เชจเซ‹เช‚เชงเซเชฏเซเช‚ เช›เซ‡ เช…เชนเซ€เช‚เชกเซ‡เชฎเซ‹เชจเซเชธเซ‡เชŸ เชธเชพเชฅเซ‡ เช•เชจเซ‡เช•เซเชŸ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช˜เชฃเชพ เชตเชฟเช•เชฒเซเชชเซ‹ เช›เซ‡, เชชเชฐเช‚เชคเซ เช…เชฎเซ‡ เชจเซ€เชšเซ‡เชจเชพ เชธเชฐเชณ เช‰เช•เซ‡เชฒ เชชเชฐ เช†เช—เชณ เชตเชงเซ€เชถเซเช‚:
  • เชจเซ€เชšเซ‡เชจเซ€ เชซเชพเช‡เชฒ เชฒเชพเช—เซ เช•เชฐเซ‹ [ััั‹ะปะบะฐ].

### poc-consul-client-ds-svc.yaml
apiVersion: v1
kind: Service
metadata:
 name: consul-ds-client
spec:
 selector:
   app: consul
   chart: consul-helm
   component: client
   hasDNS: "true"
   release: skywiz-app-with-consul-client-poc
 ports:
 - protocol: TCP
   port: 80
   targetPort: 8500

  • เชชเช›เซ€ configmap เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เชจเซ€เชšเซ‡เชจเชพ เชฌเชฟเชฒเซเชŸเชฟเชจ เช†เชฆเซ‡เชถเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹ [ััั‹ะปะบะฐ]. เช•เซƒเชชเชพ เช•เชฐเซ€เชจเซ‡ เชจเซ‹เช‚เชงเซ‹ เช•เซ‡ เช…เชฎเซ‡ เช…เชฎเชพเชฐเซ€ เชธเซ‡เชตเชพเชจเชพ เชจเชพเชฎเชจเซ‹ เช‰เชฒเซเชฒเซ‡เช– เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช, เชœเซ‹ เชœเชฐเซ‚เชฐเซ€ เชนเซ‹เชฏ เชคเซ‹ เชคเซ‡เชจเซ‡ เชฌเชฆเชฒเซ‹.

cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: ConfigMap
metadata:
 labels:
   addonmanager.kubernetes.io/mode: EnsureExists
 name: kube-dns
 namespace: kube-system
data:
 stubDomains: |
   {"consul": ["$(kubectl get svc consul-ds-client -o jsonpath='{.spec.clusterIP}')"]}
EOF

เชชเซเชฐเชฎเชพเชฃเซ€เช•เชฐเชฃ เชชเชฆเซเชงเชคเชฟเชจเซเช‚ เชชเชฐเซ€เช•เซเชทเชฃ

เชนเชตเซ‡ เชšเชพเชฒเซ‹ เชœเชพเชฆเซเชจเซ‡ เช•เซเชฐเชฟเชฏเชพเชฎเชพเช‚ เชœเซ‹เชˆเช!

  • เชธเชฎเชพเชจ เชŸเซ‹เชช-เชฒเซ‡เชตเชฒ เช•เซ€ เชตเชกเซ‡ เช˜เชฃเชพ เชตเชงเซ เช•เซ€ เชซเซ‹เชฒเซเชกเชฐเซเชธ เชฌเชจเชพเชตเซ‹ (เชฆเชพ.เชค. /sample_key) เช…เชจเซ‡ เชคเชฎเชพเชฐเซ€ เชชเชธเช‚เชฆเช—เซ€เชจเซเช‚ เชฎเซ‚เชฒเซเชฏ. เชจเชตเชพ เชฎเซเช–เซเชฏ เชฎเชพเชฐเซเช—เซ‹ เชฎเชพเชŸเซ‡ เชฏเซ‹เช—เซเชฏ เชจเซ€เชคเชฟเช“ เช…เชจเซ‡ เชญเซ‚เชฎเชฟเช•เชพเช“ เชฌเชจเชพเชตเซ‹. เช…เชฎเซ‡ เชฌเชพเชˆเชจเซเชกเซ€เช‚เช— เชชเช›เซ€เชฅเซ€ เช•เชฐเซ€เชถเซเช‚.

เชนเชพเชถเชฟเช•เซ‹เชฐเซเชช เช•เซ‹เชจเซเชธเซเชฏเซเชฒเชจเชพ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เช“เชฅเซ‹เชฐเชพเช‡เชเซ‡เชถเชจเชจเซ‹ เชชเชฐเชฟเชšเชฏ

เช•เชธเซเชŸเชฎ เชจเซ‡เชฎเชธเซเชชเซ‡เชธ เชŸเซ‡เชธเซเชŸ:

  • เชšเชพเชฒเซ‹ เช†เชชเชฃเซเช‚ เชชเซ‹เชคเชพเชจเซเช‚ เชจเซ‡เชฎเชธเซเชชเซ‡เชธ เชฌเชจเชพเชตเซ€เช:

kubectl create namespace custom-ns

  • เชšเชพเชฒเซ‹ เช†เชชเชฃเชพ เชจเชตเชพ เชจเซ‡เชฎเชธเซเชชเซ‡เชธเชฎเชพเช‚ เชชเซ‹เชก เชฌเชจเชพเชตเซ€เช. เชชเซ‹เชก เชฎเชพเชŸเซ‡ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ เชฒเช–เซ‹.

###poc-ubuntu-custom-ns.yaml
apiVersion: v1
kind: Pod
metadata:
 name: poc-ubuntu-custom-ns
 namespace: custom-ns
spec:
 containers:
 - name: poc-ubuntu-custom-ns
   image: ubuntu
   command: ["/bin/bash", "-ec", "sleep infinity"]
 restartPolicy: Never

  • เชนเซ‡เช เชณ เชฌเชจเชพเชตเซ‹:

kubectl create -f poc-ubuntu-custom-ns.yaml

  • เชเช•เชตเชพเชฐ เช•เชจเซเชŸเซ‡เชจเชฐ เชšเชพเชฒเซ เชฅเชˆ เชœเชพเชฏ, เชคเซเชฏเชพเช‚ เชœเชพเช“ เช…เชจเซ‡ เช•เชฐเซเชฒ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ‹.

kubectl exec poc-ubuntu-custom-ns -n custom-ns -it /bin/bash
apt-get update && apt-get install curl -y

  • เชนเชตเซ‡ เช…เชฎเซ‡ เช…เช—เชพเช‰ เชฌเชจเชพเชตเซ‡เชฒเซ€ เช…เชงเชฟเช•เซƒเชคเชคเชพ เชชเชฆเซเชงเชคเชฟเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เช•เชจเซเชธเซเชฏเซเชฒเชจเซ‡ เชฒเซ‹เช—เชฟเชจ เชตเชฟเชจเช‚เชคเซ€ เชฎเซ‹เช•เชฒเซ€เชถเซเช‚ [ััั‹ะปะบะฐ].
  • เชคเชฎเชพเชฐเชพ เชธเซ‡เชตเชพ เช–เชพเชคเชพเชฎเชพเช‚เชฅเซ€ เชฆเชพเช–เชฒ เช•เชฐเซ‡เชฒ เชŸเซ‹เช•เชจ เชœเซ‹เชตเชพ เชฎเชพเชŸเซ‡:

cat /run/secrets/kubernetes.io/serviceaccount/token

  • เช•เชจเซเชŸเซ‡เชจเชฐเชจเซ€ เช…เช‚เชฆเชฐเชจเซ€ เชซเชพเช‡เชฒเชฎเชพเช‚ เชจเซ€เชšเซ‡เชจเชพ เชฒเช–เซ‹:

### payload.json
{
 "AuthMethod": "auth-method-test",
 "BearerToken": "<jwt_token>"
}

  • เชชเซเชฐเชตเซ‡เชถ เช•เชฐเซ‹!

curl 
--request POST 
--data @payload.json 
consul-ds-client.default.svc.cluster.local/v1/acl/login

  • เช‰เชชเชฐเซ‹เช•เซเชค เชชเช—เชฒเชพเช‚เช“ เชเช• เชฒเซ€เชŸเซ€เชฎเชพเช‚ เชชเซ‚เชฐเซเชฃ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ (เช•เชพเชฐเชฃ เช•เซ‡ เช…เชฎเซ‡ เชฌเชนเซเชตเชฟเชง เชชเชฐเซ€เช•เซเชทเชฃเซ‹ เชšเชฒเชพเชตเซ€เชถเซเช‚), เชคเชฎเซ‡ เชจเซ€เชšเซ‡ เชฎเซเชœเชฌ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹:

echo "{ 
"AuthMethod": "auth-method-skywiz-consul-poc", 
"BearerToken": "$(cat /run/secrets/kubernetes.io/serviceaccount/token)" 
}" 
| curl 
--request POST 
--data @- 
consul-ds-client.default.svc.cluster.local/v1/acl/login

  • เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡! เช“เช›เชพเชฎเชพเช‚ เช“เช›เซเช‚ เชคเซ‡ เชœเซ‹เชˆเช. เชนเชตเซ‡ SecretID เชฒเซ‹ เช…เชจเซ‡ เช…เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชœเซ‡ เช•เซ€/เชฎเซ‚เชฒเซเชฏเชจเซ€ เชเช•เซเชธเซ‡เชธ เชนเซ‹เชตเซ€ เชœเซ‹เชˆเช เชคเซ‡เชจเซ‡ เชเช•เซเชธเซ‡เชธ เช•เชฐเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซ‹.

curl 
consul-ds-client.default.svc.cluster.local/v1/kv/custom-ns/test_key --header โ€œX-Consul-Token: <SecretID_from_prev_response>โ€

  • เชคเชฎเซ‡ "เชฎเซ‚เชฒเซเชฏ" เชจเซ‡ เชฌเซ‡เช 64 เชกเซ€เช•เซ‹เชก เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ เช…เชจเซ‡ เชœเซเช“ เช•เซ‡ เชคเซ‡ UI เชฎเชพเช‚ custom-ns/test_key เชฎเชพเช‚เชจเชพ เชฎเซ‚เชฒเซเชฏ เชธเชพเชฅเซ‡ เชฎเซ‡เชณ เช–เชพเชฏ เช›เซ‡. เชœเซ‹ เชคเชฎเซ‡ เช† เชŸเซเชฏเซเชŸเซ‹เชฐเซ€เชฏเชฒเชฎเชพเช‚ เช‰เชชเชฐเชจเชพ เชธเชฎเชพเชจ เชฎเซ‚เชฒเซเชฏเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹ เช›เซ‹, เชคเซ‹ เชคเชฎเชพเชฐเซเช‚ เชเชจเซเช•เซ‹เชกเซ‡เชก เชฎเซ‚เชฒเซเชฏ IkknbSBpbiB0aGUgY3VzdG9tLW5zIGZvbGRlciEi เชนเชถเซ‡.

เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เชธเซ‡เชตเชพ เชเช•เชพเช‰เชจเซเชŸ เชชเชฐเซ€เช•เซเชทเชฃ:

  • เชจเซ€เชšเซ‡เชจเชพ เช†เชฆเซ‡เชถเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เช•เชธเซเชŸเชฎ เชธเชฐเซเชตเชฟเชธ เชเช•เชพเช‰เชจเซเชŸ เชฌเชจเชพเชตเซ‹ [ััั‹ะปะบะฐ].

kubectl apply -f - <<EOF
apiVersion: v1
kind: ServiceAccount
metadata:
 name: custom-sa
EOF

  • เชชเซ‹เชก เชฎเชพเชŸเซ‡ เชจเชตเซ€ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ เชซเชพเชˆเชฒ เชฌเชจเชพเชตเซ‹. เชฎเชนเซ‡เชฐเชฌเชพเชจเซ€ เช•เชฐเซ€เชจเซ‡ เชจเซ‹เช‚เชง เช•เชฐเซ‹ เช•เซ‡ เชฎเซ‡เช‚ เชถเซเชฐเชฎ เชฌเชšเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เช•เชฐเซเชฒ เช‡เชจเซเชธเซเชŸเซ‹เชฒเซ‡เชถเชจเชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เช•เชฐเซเชฏเซ‹ เช›เซ‡ :)

###poc-ubuntu-custom-sa.yaml
apiVersion: v1
kind: Pod
metadata:
 name: poc-ubuntu-custom-sa
 namespace: default
spec:
 serviceAccountName: custom-sa
 containers:
 - name: poc-ubuntu-custom-sa
   image: ubuntu
   command: ["/bin/bash","-ec"]
   args: ["apt-get update && apt-get install curl -y; sleep infinity"]
 restartPolicy: Never

  • เชคเซ‡ เชชเช›เซ€, เช•เชจเซเชŸเซ‡เชจเชฐเชจเซ€ เช…เช‚เชฆเชฐ เชถเซ‡เชฒ เชšเชฒเชพเชตเซ‹.

kubectl exec -it poc-ubuntu-custom-sa /bin/bash

  • เชชเซเชฐเชตเซ‡เชถ เช•เชฐเซ‹!

echo "{ 
"AuthMethod": "auth-method-skywiz-consul-poc", 
"BearerToken": "$(cat /run/secrets/kubernetes.io/serviceaccount/token)" 
}" 
| curl 
--request POST 
--data @- 
consul-ds-client.default.svc.cluster.local/v1/acl/login

  • เชชเชฐเชตเชพเชจเช—เซ€ เชจเช•เชพเชฐเซ€. เช“เชน, เช…เชฎเซ‡ เชฏเซ‹เช—เซเชฏ เชชเชฐเชตเชพเชจเช—เซ€เช“ เชธเชพเชฅเซ‡ เชฌเช‚เชงเชจเช•เชฐเซเชคเชพ เชจเชตเชพ เชจเชฟเชฏเชฎเซ‹ เช‰เชฎเซ‡เชฐเชตเชพเชจเซเช‚ เชญเซ‚เชฒเซ€ เช—เชฏเชพ, เชšเชพเชฒเซ‹ เชนเชตเซ‡ เชคเซ‡ เช•เชฐเซ€เช.

เช‰เชชเชฐเชจเชพ เชชเชพเช›เชฒเชพ เชชเช—เชฒเชพเช“เชจเซเช‚ เชชเซเชจเชฐเชพเชตเชฐเซเชคเชจ เช•เชฐเซ‹:
a) "เช•เชธเซเชŸเชฎ-เชธเชพ/" เช‰เชชเชธเชฐเซเช— เชฎเชพเชŸเซ‡ เชเช• เชธเชฎเชพเชจ เชจเซ€เชคเชฟ เชฌเชจเชพเชตเซ‹.
b) เชเช• เชญเซ‚เชฎเชฟเช•เชพ เชฌเชจเชพเชตเซ‹, เชคเซ‡เชจเซ‡ "เช•เชธเซเชŸเชฎ-เชธเชพ-เชฐเซ‹เชฒ" เช•เชนเซ‹
c) เชจเซ€เชคเชฟเชจเซ‡ เชญเซ‚เชฎเชฟเช•เชพ เชธเชพเชฅเซ‡ เชœเซ‹เชกเซ‹.

  • เชจเชฟเชฏเชฎ-เชฌเช‚เชงเชจเช•เชฐเซเชคเชพ เชฌเชจเชพเชตเซ‹ (เชฎเชพเชคเซเชฐ cli/api เชฅเซ€ เชถเช•เซเชฏ เช›เซ‡). เชชเชธเช‚เชฆเช—เซ€เช•เชพเชฐ เชงเซเชตเชœเชจเชพ เชตเชฟเชตเชฟเชง เช…เชฐเซเชฅเชจเซ€ เชจเซ‹เช‚เชง เชฒเซ‹.

consul acl binding-rule create 
-method=auth-method-skywiz-consul-poc 
-bind-type=role 
-bind-name='custom-sa-role' 
-selector='serviceaccount.name=="custom-sa"'

  • "poc-ubuntu-custom-sa" เช•เชจเซเชŸเซ‡เชจเชฐเชฎเชพเช‚เชฅเซ€ เชซเชฐเซ€ เชฒเซ‹เช—เชฟเชจ เช•เชฐเซ‹. เชธเชซเชณเชคเชพ!
  • เช•เชธเซเชŸเชฎ-เชธเชพ/ เช•เซ€ เชชเชพเชฅเชจเซ€ เช…เชฎเชพเชฐเซ€ เชเช•เซเชธเซ‡เชธ เชคเชชเชพเชธเซ‹.

curl 
consul-ds-client.default.svc.cluster.local/v1/kv/custom-sa/test_key --header โ€œX-Consul-Token: <SecretID>โ€

  • เชคเชฎเซ‡ เช เชชเชฃ เชธเซเชจเชฟเชถเซเชšเชฟเชค เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ เช•เซ‡ เช† เชŸเซ‹เช•เชจ "custom-ns/" เชฎเชพเช‚ kv เชจเซ‡ เชเช•เซเชธเซ‡เชธ เช†เชชเชคเซเช‚ เชจเชฅเซ€. "เช•เชธเซเชŸเชฎ-เชธเชพ" เชจเซ‡ เช‰เชชเชธเชฐเซเช— "เช•เชธเซเชŸเชฎ-เชเชจเชเชธ" เชธเชพเชฅเซ‡ เชฌเชฆเชฒเซเชฏเชพ เชชเช›เซ€ เชซเช•เซเชค เช‰เชชเชฐเชจเชพ เช†เชฆเซ‡เชถเชจเซเช‚ เชชเซเชจเชฐเชพเชตเชฐเซเชคเชจ เช•เชฐเซ‹.
    เชชเชฐเชตเชพเชจเช—เซ€ เชจเช•เชพเชฐเซ€.

เช“เชตเชฐเชฒเซ‡ เช‰เชฆเชพเชนเชฐเชฃ:

  • เช เชจเซ‹เช‚เชงเชตเซเช‚ เชฏเซ‹เช—เซเชฏ เช›เซ‡ เช•เซ‡ เชคเชฎเชพเชฎ เชจเชฟเชฏเชฎ-เชฌเช‚เชงเชจเช•เชฐเซเชคเชพ เชฎเซ‡เชชเชฟเช‚เช—เซเชธ เช† เช…เชงเชฟเช•เชพเชฐเซ‹ เชธเชพเชฅเซ‡ เชŸเซ‹เช•เชจเชฎเชพเช‚ เช‰เชฎเซ‡เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡.
  • เช…เชฎเชพเชฐเซเช‚ เช•เชจเซเชŸเซ‡เชจเชฐ "poc-ubuntu-custom-sa" เชกเชฟเชซเซ‹เชฒเซเชŸ เชจเซ‡เชฎเชธเซเชชเซ‡เชธเชฎเชพเช‚ เช›เซ‡ - เชคเซ‹ เชšเชพเชฒเซ‹ เชคเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช…เชฒเช— เชจเชฟเชฏเชฎ-เชฌเช‚เชงเชจ เชฎเชพเชŸเซ‡ เช•เชฐเซ€เช.
  • เชชเชพเช›เชฒเชพ เชชเช—เชฒเชพเช‚เช“เชจเซเช‚ เชชเซเชจเชฐเชพเชตเชฐเซเชคเชจ เช•เชฐเซ‹:
    a) โ€œเชกเชฟเชซเซ‹เชฒเซเชŸ/โ€ เช•เซ€ เช‰เชชเชธเชฐเซเช— เชฎเชพเชŸเซ‡ เชเช• เชธเชฐเช–เซ€ เชจเซ€เชคเชฟ เชฌเชจเชพเชตเซ‹.
    b) เชเช• เชญเซ‚เชฎเชฟเช•เชพ เชฌเชจเชพเชตเซ‹, เชคเซ‡เชจเซ‡ "default-ns-role" เชจเชพเชฎ เช†เชชเซ‹
    c) เชจเซ€เชคเชฟเชจเซ‡ เชญเซ‚เชฎเชฟเช•เชพ เชธเชพเชฅเซ‡ เชœเซ‹เชกเซ‹.
  • เชเช• เชจเชฟเชฏเชฎ-เชฌเช‚เชงเชจเช•เชฐเซเชคเชพ เชฌเชจเชพเชตเซ‹ (เชฎเชพเชคเซเชฐ cli/api เชฅเซ€ เชœ เชถเช•เซเชฏ เช›เซ‡)

consul acl binding-rule create 
-method=auth-method-skywiz-consul-poc 
-bind-type=role 
-bind-name='default-ns-role' 
-selector='serviceaccount.namespace=="default"'

  • เช…เชฎเชพเชฐเชพ "poc-ubuntu-custom-sa" เช•เชจเซเชŸเซ‡เชจเชฐ เชชเชฐ เชชเชพเช›เชพ เชœเชพเช“ เช…เชจเซ‡ "default/" kv เชชเชพเชฅเชจเซ‡ เชเช•เซเชธเซ‡เชธ เช•เชฐเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซ‹.
  • เชชเชฐเชตเชพเชจเช—เซ€ เชจเช•เชพเชฐเซ€.
    เชคเชฎเซ‡ ACL > เชŸเซ‹เช•เชจเซเชธ เชนเซ‡เช เชณ UI เชฎเชพเช‚ เชฆเชฐเซ‡เช• เชŸเซ‹เช•เชจ เชฎเชพเชŸเซ‡ เช‰เชฒเซเชฒเซ‡เช–เชฟเชค เช“เชณเช–เชชเชคเซเชฐเซ‹ เชœเซ‹เชˆ เชถเช•เซ‹ เช›เซ‹. เชœเซ‡เชฎ เชคเชฎเซ‡ เชœเซ‹เชˆ เชถเช•เซ‹ เช›เซ‹, เช…เชฎเชพเชฐเชพ เชตเชฐเซเชคเชฎเชพเชจ เชŸเซ‹เช•เชจ เชธเชพเชฅเซ‡ เชซเช•เซเชค เชเช• "เช•เชธเซเชŸเชฎ-เชธเชพ-เชฐเซ‹เชฒ" เชœเซ‹เชกเชพเชฏเซ‡เชฒ เช›เซ‡. เช…เชฎเซ‡ เชนเชพเชฒเชฎเชพเช‚ เชœเซ‡ เชŸเซ‹เช•เชจเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช เชคเซ‡ เชœเซเชฏเชพเชฐเซ‡ เช…เชฎเซ‡ เชฒเซ‰เช— เช‡เชจ เช•เชฐเซเชฏเซเช‚ เชคเซเชฏเชพเชฐเซ‡ เชœเชจเชฐเซ‡เชŸ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚ เช…เชจเซ‡ เชคเซ‡ เชธเชฎเชฏเซ‡ เชฎเซ‡เชณ เช–เชพเชคเซ€ เชฎเชพเชคเซเชฐ เชเช• เชœ เชจเชฟเชฏเชฎ-เชฌเช‚เชงเชจเช•เชฐเซเชคเชพ เชนเชคเซ€. เช…เชฎเชพเชฐเซ‡ เชซเชฐเซ€เชฅเซ€ เชฒเซ‹เช—เชฟเชจ เช•เชฐเชตเชพเชจเซ€ เช…เชจเซ‡ เชจเชตเชพ เชŸเซ‹เช•เชจเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡.
  • เช–เชพเชคเชฐเซ€ เช•เชฐเซ‹ เช•เซ‡ เชคเชฎเซ‡ เชฌเช‚เชจเซ‡ "เช•เชธเซเชŸเชฎ-เชธเชพ/" เช…เชจเซ‡ "เชกเชฟเชซเซ‹เชฒเซเชŸ/" kv เชชเชพเชฅเชฎเชพเช‚เชฅเซ€ เชตเชพเช‚เชšเซ€ เชถเช•เซ‹ เช›เซ‹.
    เชธเชซเชณเชคเชพ!
    เช† เชเชŸเชฒเชพ เชฎเชพเชŸเซ‡ เช›เซ‡ เช•เชพเชฐเชฃ เช•เซ‡ เช…เชฎเชพเชฐเซเช‚ โ€œpoc-ubuntu-custom-saโ€ โ€œเช•เชธเซเชŸเชฎ-saโ€ เช…เชจเซ‡ โ€œdefault-nsโ€ เชจเชฟเชฏเชฎ เชฌเช‚เชงเชจ เชธเชพเชฅเซ‡ เชฎเซ‡เชณ เช–เชพเชฏ เช›เซ‡.

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

TTL เชŸเซ‹เช•เชจ mgmt?

เช† เชฒเซ‡เช–เชจ เชธเชฎเชฏเซ‡, เช† เช…เชงเชฟเช•เซƒเชคเชคเชพ เชชเชฆเซเชงเชคเชฟ เชฆเซเชตเชพเชฐเชพ เชœเชจเชฐเซ‡เชŸ เชฅเชฏเซ‡เชฒเชพ เชŸเซ‹เช•เชจเซเชธ เชฎเชพเชŸเซ‡ TTL เชจเช•เซเช•เซ€ เช•เชฐเชตเชพเชจเซ€ เช•เซ‹เชˆ เชธเช‚เช•เชฒเชฟเชค เชฐเซ€เชค เชจเชฅเซ€. เช•เซ‹เชจเซเชธเซเชฏเซเชฒ เช…เชงเชฟเช•เซƒเชคเชคเชพเชจเซเช‚ เชธเซเชฐเช•เซเชทเชฟเชค เช“เชŸเซ‹เชฎเซ‡เชถเชจ เชชเซเชฐเชฆเชพเชจ เช•เชฐเชตเชพเชจเซ€ เช† เชเช• เช…เชฆเซเชญเซเชค เชคเช• เชนเชถเซ‡.

TTL เชธเชพเชฅเซ‡ เชฎเซ‡เชจเซเชฏเซเช…เชฒเซ€ เชŸเซ‹เช•เชจ เชฌเชจเชพเชตเชตเชพเชจเซ‹ เชตเชฟเช•เชฒเซเชช เช›เซ‡:

  • https://www.consul.io/docs/acl/acl-system.html#acl-tokens
    เชธเชฎเชพเชชเซเชคเชฟ เชธเชฎเชฏ - เชœเซ‡ เชธเชฎเชฏเซ‡ เช† เชŸเซ‹เช•เชจ เชฐเชฆ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡. (เชตเซˆเช•เชฒเซเชชเชฟเช•; เช•เซ‹เชจเซเชธเชฒ 1.5.0 เชฎเชพเช‚ เช‰เชฎเซ‡เชฐเชพเชฏเซ‡เชฒ)
  • เชซเช•เซเชค เชฎเซ‡เชจเซเชฏเซเช…เชฒ เชธเชฐเซเชœเชจ/เช…เชชเชกเซ‡เชŸ เชฎเชพเชŸเซ‡ เชœ เช…เชธเซเชคเชฟเชคเซเชตเชฎเชพเช‚ เช›เซ‡ https://www.consul.io/api/acl/tokens.html#expirationtime

เช†เชถเชพ เช›เซ‡ เช•เซ‡ เชจเชœเซ€เช•เชจเชพ เชญเชตเชฟเชทเซเชฏเชฎเชพเช‚ เช…เชฎเซ‡ เชŸเซ‹เช•เชจเซเชธ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชœเชจเชฐเซ‡เชŸ เชฅเชพเชฏ เช›เซ‡ เชคเซ‡ เชจเชฟเชฏเช‚เชคเซเชฐเชฟเชค เช•เชฐเซ€ เชถเช•เซ€เชถเซเช‚ (เชจเชฟเชฏเชฎ เช…เชฅเชตเชพ เช…เชงเชฟเช•เซƒเชคเชคเชพ เชชเชฆเซเชงเชคเชฟ เชฆเซ€เช ) เช…เชจเซ‡ TTL เช‰เชฎเซ‡เชฐเซ€เชถเซเช‚.

เชคเซเชฏเชพเช‚ เชธเซเชงเซ€, เชเชตเซเช‚ เชธเซ‚เชšเชจ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เช•เซ‡ เชคเชฎเซ‡ เชคเชฎเชพเชฐเชพ เชคเชฐเซเช•เชฎเชพเช‚ เชฒเซ‹เช—เช†เช‰เชŸ เชเชจเซเชกเชชเซ‹เช‡เชจเซเชŸเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹.

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

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

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