Kubernetes 'เจคเฉ‡ Camunda BPM เจšเฉฑเจฒ เจฐเจฟเจนเจพ เจนเฉˆ

Kubernetes 'เจคเฉ‡ Camunda BPM เจšเฉฑเจฒ เจฐเจฟเจนเจพ เจนเฉˆ

เจ•เฉ€ เจคเฉเจธเฉ€เจ‚ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐ เจฐเจนเฉ‡ เจนเฉ‹? เจคเฉเจนเจพเจกเฉ€เจ†เจ‚ เจ•เฉˆเจฎเฉเฉฐเจกเจพ เจฌเฉ€เจชเฉ€เจเจฎ เจ‰เจฆเจพเจนเจฐเจจเจพเจ‚ เจจเฉ‚เฉฐ เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจเจพเจ‚ เจคเฉ‹เจ‚ เจฌเจพเจนเจฐ เจฒเจฟเจœเจพเจฃ เจฒเจˆ เจคเจฟเจ†เจฐ เจนเฉ‹, เจœเจพเจ‚ เจนเฉ‹ เจธเจ•เจฆเจพ เจนเฉˆ เจ•เจฟ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ 'เจคเฉ‡ เจšเจฒเจพเจ‰เจฃ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเฉ‹? เจ†เจ‰ เจ•เฉเจ เจ†เจฎ เจธเฉฐเจฐเจšเจจเจพเจตเจพเจ‚ เจ…เจคเฉ‡ เจตเจฟเจ…เจ•เจคเฉ€เจ—เจค เจ†เจˆเจŸเจฎเจพเจ‚ 'เจคเฉ‡ เจจเจœเจผเจฐ เจฎเจพเจฐเฉ€เจ เจœเฉ‹ เจคเฉเจนเจพเจกเฉ€เจ†เจ‚ เจ–เจพเจธ เจฒเฉ‹เฉœเจพเจ‚ เจฆเฉ‡ เจฎเฉเจคเจพเจฌเจ• เจฌเจฃเจพเจˆเจ†เจ‚ เจœเจพ เจธเจ•เจฆเฉ€เจ†เจ‚ เจนเจจเฅค

เจ‡เจน เจฎเฉฐเจจเจฆเจพ เจนเฉˆ เจ•เจฟ เจคเฉเจธเฉ€เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เฉ€เจคเฉ€ เจนเฉˆ. เจœเฉ‡ เจจเจนเฉ€เจ‚, เจคเจพเจ‚ เจ•เจฟเจ‰เจ‚ เจจเจพ เจ‡เฉฑเจ• เจจเจœเจผเจฐ เจฎเจพเจฐเฉ‹ เจ…เจ—เจตเจพเจˆ เจ…เจคเฉ‡ เจ†เจชเจฃเจพ เจชเจนเจฟเจฒเจพ เจ•เจฒเฉฑเจธเจŸเจฐ เจธเจผเฉเจฐเฉ‚ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเฉ‡?

เจฒเฉ‡เจ–เจ•

  • เจเจฒเจธเจŸเฉ‡เจ…เจฐ เจซเจฐเจฅ (เจ…เจฒเจฟเจธเจŸเฉ‡เจ…เจฐ เจซเจฐเจฅ) - เจ•เฉˆเจฎเฉเฉฐเจกเจพ เจ•เจฒเจพเจ‰เจก เจŸเฉ€เจฎ 'เจคเฉ‡ เจธเฉ€เจจเฉ€เจ…เจฐ เจธเจพเจˆเจŸ เจญเจฐเฉ‹เจธเฉ‡เจฏเฉ‹เจ—เจคเจพ เจ‡เฉฐเจœเฉ€เจจเฉ€เจ…เจฐ;
  • เจฒเจพเจฐเจธ เจฒเฉˆเจ‚เจ— (เจฒเจพเจฐเจธ เจฒเฉˆเจ‚เจœ) - เจ•เฉˆเจฎเฉเฉฐเจกเจพ เจตเจฟเจ–เฉ‡ เจฆเฉ‡เจตเจ“เจชเจธ เจ‡เฉฐเจœเฉ€เจจเฉ€เจ…เจฐ.

เจธเฉฐเจ–เฉ‡เจช เจตเจฟเฉฑเจš:

git clone https://github.com/camunda-cloud/camunda-examples.git
cd camunda-examples/camunda-bpm-demo
make skaffold

เจ เฉ€เจ• เจนเฉˆ, เจ‡เจน เจธเจผเจพเจ‡เจฆ เจ•เฉฐเจฎ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ เจ•เจฟเจ‰เจ‚เจ•เจฟ เจคเฉเจนเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจธเจ•เฉˆเจซเฉ‹เจฒเจก เจ…เจคเฉ‡ เจ•เจธเจŸเจฎเจพเจˆเจœเจผ เจธเจฅเจพเจชเจค เจจเจนเฉ€เจ‚ เจนเฉˆเฅค เจ เฉ€เจ• เจนเฉˆ, เจซเจฟเจฐ เจชเฉœเฉเจนเฉ‹!

เจ•เฉˆเจฎเฉเฉฐเจกเจพ เจฌเฉ€เจชเฉ€เจเจฎ เจ•เฉ€ เจนเฉˆ?

Camunda BPM เจ‡เฉฑเจ• เจ“เจชเจจ เจธเฉ‹เจฐเจธ เจฌเจฟเจœเจผเจจเจธ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจชเฉเจฐเจฌเฉฐเจงเจจ เจ…เจคเฉ‡ เจซเฉˆเจธเจฒเฉ‡ เจ†เจŸเฉ‹เจฎเฉ‡เจธเจผเจจ เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎ เจนเฉˆ เจœเฉ‹ เจตเจชเจพเจฐเจ• เจ‰เจชเจญเฉ‹เจ—เจคเจพเจตเจพเจ‚ เจ…เจคเฉ‡ เจธเจพเจซเจŸเจตเฉ‡เจ…เจฐ เจกเจฟเจตเฉˆเจฒเจชเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจœเฉ‹เฉœเจฆเจพ เจนเฉˆเฅค เจ‡เจน เจฒเฉ‹เจ•เจพเจ‚, (เจฎเจพเจˆเจ•เจฐเฉ‹) เจธเฉ‡เจตเจพเจตเจพเจ‚ เจœเจพเจ‚ เจ‡เฉฑเจฅเฉ‹เจ‚ เจคเฉฑเจ• เจ•เจฟ เจฌเฉ‹เจŸเจพเจ‚ เจจเฉ‚เฉฐ เจคเจพเจฒเจฎเฉ‡เจฒ เจ•เจฐเจจ เจ…เจคเฉ‡ เจœเฉ‹เฉœเจจ เจฒเจˆ เจ†เจฆเจฐเจธเจผ เจนเฉˆ! เจคเฉเจธเฉ€เจ‚ 'เจคเฉ‡ เจตเฉฑเจ–-เจตเฉฑเจ– เจตเจฐเจคเฉ‹เจ‚ เจฆเฉ‡ เจฎเจพเจฎเจฒเจฟเจ†เจ‚ เจฌเจพเจฐเฉ‡ เจนเฉ‹เจฐ เจชเฉœเฉเจน เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจฒเจฟเฉฐเจ• เจจเฉ‚เฉฐ.

เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฟเจ‰เจ‚ เจ•เจฐเฉ‹

เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจฒเฉ€เจจเจ•เจธ เจ‰เฉฑเจคเฉ‡ เจ†เจงเฉเจจเจฟเจ• เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจฃ เจฒเจˆ เจกเฉ€ เจซเฉˆเจ•เจŸเฉ‹ เจธเจŸเฉˆเจ‚เจกเจฐเจก เจฌเจฃ เจ—เจฟเจ† เจนเฉˆเฅค เจนเจพเจฐเจกเจตเฉ‡เจ…เจฐ เจ‡เจฎเฉ‚เจฒเฉ‡เจธเจผเจจ เจฆเฉ€ เจฌเจœเจพเจ เจธเจฟเจธเจŸเจฎ เจ•เจพเจฒเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจ…เจคเฉ‡ เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจ…เจคเฉ‡ เจŸเจพเจธเจ• เจธเจตเจฟเจšเจฟเฉฐเจ— เจฆเจพ เจชเฉเจฐเจฌเฉฐเจงเจจ เจ•เจฐเจจ เจฆเฉ€ เจ•เจฐเจจเจฒ เจฆเฉ€ เจฏเฉ‹เจ—เจคเจพ, เจฌเฉ‚เจŸ เจธเจฎเจพเจ‚ เจ…เจคเฉ‡ เจธเจผเฉเจฐเฉ‚เจ†เจคเฉ€ เจธเจฎเจพเจ‚ เจ˜เฉฑเจŸเฉ‹ เจ˜เฉฑเจŸ เจฐเฉฑเจ–เจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจนเจพเจฒเจพเจ‚เจ•เจฟ, เจธเจญ เจคเฉ‹เจ‚ เจตเฉฑเจกเจพ เจฒเจพเจญ เจฎเจฟเจ†เจฐเฉ€ API เจคเฉ‹เจ‚ เจ† เจธเจ•เจฆเจพ เจนเฉˆ เจœเฉ‹ เจ•เจฟ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจธเจพเจฐเฉ€เจ†เจ‚ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจฒเจˆ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ‡ เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจขเจพเจ‚เจšเฉ‡ เจจเฉ‚เฉฐ เจธเฉฐเจฐเจšเจฟเจค เจ•เจฐเจจ เจฒเจˆ เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจฆเจพ เจนเฉˆ: เจธเจŸเฉ‹เจฐเฉ‡เจœ, เจจเฉˆเฉฑเจŸเจตเจฐเจ•เจฟเฉฐเจ—, เจ…เจคเฉ‡ เจจเจฟเจ—เจฐเจพเจจเฉ€เฅค เจ‡เจน เจœเฉ‚เจจ 2020 เจตเจฟเฉฑเจš 6 เจธเจพเจฒ เจฆเจพ เจนเฉ‹ เจ—เจฟเจ† เจนเฉˆ เจ…เจคเฉ‡ เจ‡เจน เจธเจผเจพเจ‡เจฆ เจฆเฉ‚เจœเจพ เจธเจญ เจคเฉ‹เจ‚ เจตเฉฑเจกเจพ เจ“เจชเจจ เจธเฉ‹เจฐเจธ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจนเฉˆ (เจฒเฉ€เจจเจ•เจธ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ)เฅค เจ‡เจน เจนเจพเจฒ เจนเฉ€ เจตเจฟเฉฑเจš เจชเจฟเจ›เจฒเฉ‡ เจ•เฉเจ เจธเจพเจฒเจพเจ‚ เจตเจฟเฉฑเจš เจคเฉ‡เจœเจผเฉ€ เจจเจพเจฒ เจฆเฉเจนเจฐเจพเจ‰เจฃ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจ†เจชเจฃเฉ€ เจ•เจพเจฐเจœเจ•เฉเจธเจผเจฒเจคเจพ เจจเฉ‚เฉฐ เจธเจฐเจ—เจฐเจฎเฉ€ เจจเจพเจฒ เจธเจฅเจฟเจฐ เจ•เจฐ เจฐเจฟเจนเจพ เจนเฉˆ เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‡เจน เจตเจฟเจธเจผเจต เจญเจฐ เจตเจฟเฉฑเจš เจ‰เจคเจชเจพเจฆเจจ เจฆเฉ‡ เจ•เฉฐเจฎ เจฆเฉ‡ เจฌเฉ‹เจ เจฒเจˆ เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจฌเจฃ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค

เจ•เฉˆเจฎเฉเฉฐเจกเจพ เจฌเฉ€เจชเฉ€เจเจฎ เจ‡เฉฐเจœเจฃ เจ‰เจธเฉ‡ เจ•เจฒเฉฑเจธเจŸเจฐ 'เจคเฉ‡ เจšเฉฑเจฒ เจฐเจนเฉ‡ เจนเฉ‹เจฐ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจจเจพเจฒ เจ†เจธเจพเจจเฉ€ เจจเจพเจฒ เจœเฉเฉœ เจธเจ•เจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจธเจผเจพเจจเจฆเจพเจฐ เจฎเจพเจชเจฏเฉ‹เจ—เจคเจพ เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจฆเจพ เจนเฉˆ, เจœเจฟเจธ เจจเจพเจฒ เจคเฉเจธเฉ€เจ‚ เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจขเจพเจ‚เจšเฉ‡ เจฆเฉ‡ เจ–เจฐเจšเจฟเจ†เจ‚ เจจเฉ‚เฉฐ เจธเจฟเจฐเจซเจผ เจ‰เจฆเฉ‹เจ‚ เจนเฉ€ เจตเจงเจพ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจœเจฆเฉ‹เจ‚ เจ…เจธเจฒ เจตเจฟเฉฑเจš เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ (เจ…เจคเฉ‡ เจฒเฉ‹เฉœ เจ…เจจเฉเจธเจพเจฐ เจ†เจธเจพเจจเฉ€ เจจเจพเจฒ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ˜เจŸเจพเจ“)เฅค

เจชเฉเจฐเฉ‹เจฎเฉ€เจฅเฉ€เจ…เจธ, เจ—เฉเจฐเจพเจซเจพเจจเจพ, เจฒเฉ‹เจ•เฉ€, เจซเจฒเฉ‚เจเจ‚เจŸเจก เจ…เจคเฉ‡ เจ‡เจฒเจพเจธเจŸเจฟเจ• เจธเจฐเจš เจตเจฐเจ—เฉ‡ เจŸเฉ‚เจฒเจธ เจจเจพเจฒ เจจเจฟเจ—เจฐเจพเจจเฉ€ เจฆเฉ€ เจ—เฉเจฃเจตเฉฑเจคเจพ เจตเจฟเฉฑเจš เจตเฉ€ เจฌเจนเฉเจค เจธเฉเจงเจพเจฐ เจนเฉ‹เจ‡เจ† เจนเฉˆ, เจœเจฟเจธ เจจเจพเจฒ เจคเฉเจธเฉ€เจ‚ เจ‡เฉฑเจ• เจ•เจฒเฉฑเจธเจŸเจฐ เจตเจฟเฉฑเจš เจธเจพเจฐเฉ‡ เจตเจฐเจ•เจฒเฉ‹เจกเจพเจ‚ เจจเฉ‚เฉฐ เจ•เฉ‡เจ‚เจฆเจฐเฉ€ เจคเฉŒเจฐ 'เจคเฉ‡ เจฆเฉ‡เจ– เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค เจ…เฉฑเจœ เจ…เจธเฉ€เจ‚ เจฆเฉ‡เจ–เจพเจ‚เจ—เฉ‡ เจ•เจฟ เจœเจพเจตเจพ เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจ (JVM) เจตเจฟเฉฑเจš เจชเฉเจฐเฉ‹เจฎเฉ€เจฅเฉ€เจ…เจธ เจเจ•เจธเจชเฉ‹เจฐเจŸเจฐ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจเจพ เจนเฉˆเฅค

เจ‰เจฆเฉ‡เจธเจผ

เจ†เจ“ เจ•เฉเจ เจ–เฉ‡เจคเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจตเฉ‡เจ–เฉ€เจ เจœเจฟเฉฑเจฅเฉ‡ เจ…เจธเฉ€เจ‚ เจ•เฉˆเจฎเฉเฉฐเจกเจพ เจฌเฉ€เจชเฉ€เจเจฎ เจกเฉŒเจ•เจฐ เจšเจฟเฉฑเจคเจฐ เจจเฉ‚เฉฐ เจ…เจจเฉเจ•เฉ‚เจฒเจฟเจค เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเจพเจ‚ (GitHub) เจคเจพเจ‚ เจœเฉ‹ เจ‡เจน เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจจเจพเจฒ เจšเฉฐเจ—เฉ€ เจคเจฐเฉเจนเจพเจ‚ เจ…เฉฐเจคเจฐเจ•เจฟเจฐเจฟเจ† เจ•เจฐเฉ‡เฅค

  1. เจฒเฉŒเจ—เจธ เจ…เจคเฉ‡ เจฎเฉˆเจŸเฉเจฐเจฟเจ•เจธ;
  2. เจกเจพเจŸเจพเจฌเฉ‡เจธ เจ•เจจเฉˆเจ•เจธเจผเจจ;
  3. เจชเฉเจฐเจฎเจพเจฃเจฟเจ•เจคเจพ;
  4. เจธเฉˆเจธเจผเจจ เจชเฉเจฐเจฌเฉฐเจงเจจ.

เจ…เจธเฉ€เจ‚ เจ‡เจนเจจเจพเจ‚ เจŸเฉ€เจšเจฟเจ†เจ‚ เจจเฉ‚เฉฐ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจฆเฉ‡ เจ•เจˆ เจคเจฐเฉ€เจ•เจฟเจ†เจ‚ เจจเฉ‚เฉฐ เจฆเฉ‡เจ–เจพเจ‚เจ—เฉ‡ เจ…เจคเฉ‡ เจชเฉ‚เจฐเฉ€ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจจเฉ‚เฉฐ เจธเจชเจธเจผเจŸ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจฆเจฟเจ–เจพเจตเจพเจ‚เจ—เฉ‡เฅค

เจŸเจฟเฉฑเจชเจฃเฉ€: เจ•เฉ€ เจคเฉเจธเฉ€เจ‚ เจเจ‚เจŸเจฐเจชเฉเจฐเจพเจˆเจœเจผ เจธเฉฐเจธเจ•เจฐเจฃ เจตเจฐเจค เจฐเจนเฉ‡ เจนเฉ‹? เจฆเฉ‡เจ–เฉ‹ เจ‡เฉฑเจฅเฉ‡ เจ…เจคเฉ‡ เจฒเฉ‹เฉœ เจ…เจจเฉเจธเจพเจฐ เจšเจฟเฉฑเจคเจฐ เจฒเจฟเฉฐเจ• เจ…เฉฑเจชเจกเฉ‡เจŸ เจ•เจฐเฉ‹เฅค

เจตเจฐเจ•เจซเจฒเฉ‹ เจตเจฟเจ•เจพเจธ

เจ‡เจธ เจกเฉˆเจฎเฉ‹ เจตเจฟเฉฑเจš, เจ…เจธเฉ€เจ‚ เจ—เฉ‚เจ—เจฒ เจ•เจฒเจพเจ‰เจก เจฌเจฟเจฒเจก เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจกเฉŒเจ•เจฐ เจšเจฟเฉฑเจคเจฐ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจธเจ•เฉˆเจซเฉ‹เจฒเจก เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจพเจ‚เจ—เฉ‡เฅค เจ‡เจธ เจตเจฟเฉฑเจš เจตเฉฑเจ–-เจตเฉฑเจ– เจธเจพเจงเจจเจพเจ‚ (เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจ•เจธเจŸเจฎเจพเจˆเจœเจผ เจ…เจคเฉ‡ เจนเฉˆเจฒเจฎ), เจธเฉ€เจ†เจˆ เจ…เจคเฉ‡ เจฌเจฟเจฒเจก เจŸเฉ‚เจฒเจธ, เจ…เจคเฉ‡ เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจขเจพเจ‚เจšเจพ เจชเฉเจฐเจฆเจพเจคเจพเจตเจพเจ‚ เจฒเจˆ เจšเฉฐเจ—เจพ เจธเจฎเจฐเจฅเจจ เจนเฉˆเฅค เจซเจพเจˆเจฒ skaffold.yaml.tmpl Google เจ•เจฒเจพเจ‰เจก เจฌเจฟเจฒเจก เจ…เจคเฉ‡ GKE เจฒเจˆ เจธเฉˆเจŸเจฟเฉฐเจ—เจพเจ‚ เจธเจผเจพเจฎเจฒ เจ•เจฐเจฆเจพ เจนเฉˆ, เจ‰เจคเจชเจพเจฆเจจ-เจ—เจฐเฉ‡เจก เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจขเจพเจ‚เจšเฉ‡ เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจฃ เจฆเจพ เจ‡เฉฑเจ• เจฌเจนเฉเจค เจนเฉ€ เจธเจฐเจฒ เจคเจฐเฉ€เจ•เจพ เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจฆเจพ เจนเฉˆเฅค

make skaffold เจกเฉŒเจ•เจฐเจซเจพเจˆเจฒ เจธเฉฐเจฆเจฐเจญ เจจเฉ‚เฉฐ เจ•เจฒเจพเจ‰เจก เจฌเจฟเจฒเจก เจตเจฟเฉฑเจš เจฒเฉ‹เจก เจ•เจฐเฉ‡เจ—เจพ, เจšเจฟเฉฑเจคเจฐ เจฌเจฃเจพเจตเฉ‡เจ—เจพ เจ…เจคเฉ‡ เจ‡เจธเจจเฉ‚เฉฐ GCR เจตเจฟเฉฑเจš เจธเจŸเฉ‹เจฐ เจ•เจฐเฉ‡เจ—เจพ, เจ…เจคเฉ‡ เจซเจฟเจฐ เจคเฉเจนเจพเจกเฉ‡ เจ•เจฒเฉฑเจธเจŸเจฐ เจตเจฟเฉฑเจš เจฎเฉˆเจจเฉ€เจซเฉˆเจธเจŸ เจฒเจพเจ—เฉ‚ เจ•เจฐเฉ‡เจ—เจพเฅค เจ‡เจน เจ‰เจนเฉ€ เจนเฉˆ เจœเฉ‹ เจ‡เจน เจ•เจฐเจฆเจพ เจนเฉˆ make skaffold, เจชเจฐ เจธเจ•เฉˆเจซเฉ‹เจฒเจก เจฆเฉ€เจ†เจ‚ เจ•เจˆ เจนเฉ‹เจฐ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจนเจจเฅค

Kubernetes เจตเจฟเฉฑเจš yaml เจŸเฉˆเจ‚เจชเจฒเฉ‡เจŸเจพเจ‚ เจฒเจˆ, เจ…เจธเฉ€เจ‚ เจชเฉ‚เจฐเฉ‡ เจฎเฉˆเจจเฉ€เจซเฉˆเจธเจŸ เจจเฉ‚เฉฐ เจซเฉ‹เจฐเจ• เจ•เฉ€เจคเฉ‡ เจฌเจฟเจจเจพเจ‚ yaml เจ“เจตเจฐเจฒเฉ‡ เจฆเจพ เจชเฉเจฐเจฌเฉฐเจงเจจ เจ•เจฐเจจ เจฒเจˆ kustomize เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจตเจฐเจคเจฃ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฆเจฟเฉฐเจฆเฉ‡ เจนเฉ‹เจ git pull --rebase เจนเฉ‹เจฐ เจธเฉเจงเจพเจฐเจพเจ‚ เจฒเจˆเฅค เจนเฉเจฃ เจ‡เจน kubectl เจตเจฟเฉฑเจš เจนเฉˆ เจ…เจคเฉ‡ เจ‡เจน เจ…เจœเจฟเจนเฉ€เจ†เจ‚ เจšเฉ€เจœเจผเจพเจ‚ เจฒเจˆ เจฌเจนเฉเจค เจตเจงเฉ€เจ† เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆเฅค

เจ…เจธเฉ€เจ‚ *.yaml.tmpl เจซเจพเจˆเจฒเจพเจ‚ เจตเจฟเฉฑเจš เจนเฉ‹เจธเจŸ-เจจเจพเจ‚ เจ…เจคเฉ‡ GCP เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ ID เจจเฉ‚เฉฐ เจคเจฟเจ†เจฐ เจ•เจฐเจจ เจฒเจˆ envsubst เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจตเฉ€ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚เฅค เจคเฉเจธเฉ€เจ‚ เจฆเฉ‡เจ– เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ•เจฟ เจ‡เจน เจ•เจฟเจตเฉ‡เจ‚ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ makefile เจœเจพเจ‚ เจธเจฟเจฐเจซเจผ เจ…เฉฑเจ—เฉ‡ เจœเจพเจฐเฉ€ เจฐเฉฑเจ–เฉ‹เฅค

เจœเจผเจฐเฉ‚เจฐเฉ€ เจธเจผเจฐเจคเจพเจ‚

เจฎเฉˆเจจเฉ€เจซเฉˆเจธเจŸ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ เจตเจฐเจ•เจซเจฒเฉ‹

เจœเฉ‡ เจคเฉเจธเฉ€เจ‚ เจ•เจธเจŸเจฎเจพเจˆเจœเจผ เจœเจพเจ‚ เจธเจ•เฉˆเจซเฉ‹เจฒเจก เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจจเจนเฉ€เจ‚ เจ•เจฐเจจเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจ‡เจธ เจตเจฟเฉฑเจš เจฎเฉˆเจจเฉ€เจซเฉˆเจธเจŸ เจฆเจพ เจนเจตเจพเจฒเจพ เจฆเฉ‡ เจธเจ•เจฆเฉ‡ เจนเฉ‹ generated-manifest.yaml เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ†เจชเจฃเฉ€ เจชเจธเฉฐเจฆ เจฆเฉ‡ เจตเจฐเจ•เจซเจฒเฉ‹ เจฆเฉ‡ เจ…เจจเฉเจ•เฉ‚เจฒ เจฌเจฃเจพเจ“เฅค

เจฒเฉŒเจ—เจธ เจ…เจคเฉ‡ เจฎเฉˆเจŸเฉเจฐเจฟเจ•เจธ

เจชเฉเจฐเฉ‹เจฎเฉ€เจฅเฉ€เจ…เจธ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจตเจฟเฉฑเจš เจฎเฉˆเจŸเฉเจฐเจฟเจ•เจธ เจ‡เจ•เฉฑเจคเจฐ เจ•เจฐเจจ เจฆเจพ เจฎเจฟเจ†เจฐ เจฌเจฃ เจ—เจฟเจ† เจนเฉˆเฅค เจ‡เจน AWS Cloudwatch Metrics, Cloudwatch เจšเฉ‡เจคเจพเจตเจจเฉ€เจ†เจ‚, Stackdriver Metrics, StatsD, Datadog, Nagios, vSphere Metrics เจ…เจคเฉ‡ เจนเฉ‹เจฐเจพเจ‚ เจตเจพเจ‚เจ— เจนเฉ€ เจธเจฅเจพเจจ เจฐเฉฑเจ–เจฆเจพ เจนเฉˆเฅค เจ‡เจน เจ“เจชเจจ เจธเฉ‹เจฐเจธ เจนเฉˆ เจ…เจคเฉ‡ เจ‡เจธเจฆเฉ€ เจ‡เฉฑเจ• เจธเจผเจ•เจคเฉ€เจธเจผเจพเจฒเฉ€ เจชเฉเฉฑเจ›เจ—เจฟเฉฑเจ› เจญเจพเจธเจผเจพ เจนเฉˆเฅค เจ…เจธเฉ€เจ‚ เจ—เฉเจฐเจพเจซเจพเจจเจพ เจจเฉ‚เฉฐ เจตเจฟเจœเจผเฉ‚เจ…เจฒเจพเจˆเจœเจผเฉ‡เจธเจผเจจ เจธเฉŒเจ‚เจชเจพเจ‚เจ—เฉ‡ - เจ‡เจน เจฌเจพเจ•เจธ เจคเฉ‹เจ‚ เจฌเจพเจนเจฐ เจตเฉฑเจกเฉ€ เจ—เจฟเจฃเจคเฉ€ เจตเจฟเฉฑเจš เจ‰เจชเจฒเจฌเจง เจกเฉˆเจธเจผเจฌเฉ‹เจฐเจกเจพเจ‚ เจฆเฉ‡ เจจเจพเจฒ เจ†เจ‰เจ‚เจฆเจพ เจนเฉˆเฅค เจ‰เจน เจ‡เฉฑเจ• เจฆเฉ‚เจœเฉ‡ เจจเจพเจฒ เจœเฉเฉœเฉ‡ เจนเฉ‹เจ เจนเจจ เจ…เจคเฉ‡ เจ‡เฉฐเจธเจŸเจพเจฒ เจ•เจฐเจจ เจฒเจˆ เจฎเฉเจ•เจพเจฌเจฒเจคเจจ เจ†เจธเจพเจจ เจนเจจ prometheus-เจ†เจชเจฐเฉ‡เจŸเจฐ.

เจฎเฉ‚เจฒ เจฐเฉ‚เจช เจตเจฟเฉฑเจš, เจชเฉเจฐเฉ‹เจฎเฉ€เจฅเฉ€เจ…เจธ เจเจ•เจธเจŸเจฐเฉˆเจ•เจธเจผเจจ เจฎเจพเจกเจฒ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเจพ เจนเฉˆ <service>/metrics, เจ…เจคเฉ‡ เจ‡เจธเจฆเฉ‡ เจฒเจˆ เจธเจพเจˆเจกเจ•เจพเจฐ เจ•เฉฐเจŸเฉ‡เจจเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจœเฉ‹เฉœเจจเจพ เจ†เจฎ เจ—เฉฑเจฒ เจนเฉˆเฅค เจฌเจฆเจ•เจฟเจธเจฎเจคเฉ€ เจจเจพเจฒ, JMX เจฎเฉˆเจŸเฉเจฐเจฟเจ•เจธ JVM เจฆเฉ‡ เจ…เฉฐเจฆเจฐ เจธเจญ เจคเฉ‹เจ‚ เจตเจงเฉ€เจ† เจฒเฉŒเจ— เจ•เฉ€เจคเฉ‡ เจœเจพเจ‚เจฆเฉ‡ เจนเจจ, เจ‡เจธเจฒเจˆ เจธเจพเจˆเจกเจ•เจพเจฐ เจ•เฉฐเจŸเฉ‡เจจเจฐ เจ‡เฉฐเจจเฉ‡ เจ•เฉเจธเจผเจฒ เจจเจนเฉ€เจ‚ เจนเจจเฅค เจ†เจ“ เจœเฉเฉœเฉ€เจ jmx_exporter เจ‡เจธ เจจเฉ‚เฉฐ เจ•เฉฐเจŸเฉ‡เจจเจฐ เจšเจฟเฉฑเจคเจฐ เจตเจฟเฉฑเจš เจœเฉ‹เฉœ เจ•เฉ‡ เจชเฉเจฐเฉ‹เจฎเฉ€เจฅเฉ€เจ…เจธ เจคเฉ‹เจ‚ JVM เจคเฉฑเจ• เจ“เจชเจจ เจธเฉ‹เจฐเจธ เจœเฉ‹ เจฎเจพเจฐเจ— เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเฉ‡เจ—เจพ /metrics เจ‡เฉฑเจ• เจตเฉฑเจ–เจฐเฉ‡ เจชเฉ‹เจฐเจŸ 'เจคเฉ‡.

Prometheus jmx_exporter เจจเฉ‚เฉฐ เจ•เฉฐเจŸเฉ‡เจจเจฐ เจตเจฟเฉฑเจš เจธเจผเจพเจฎเจฒ เจ•เจฐเฉ‹

-- images/camunda-bpm/Dockerfile
FROM camunda/camunda-bpm-platform:tomcat-7.11.0

## Add prometheus exporter
RUN wget https://repo1.maven.org/maven2/io/prometheus/jmx/
jmx_prometheus_javaagent/0.11.0/jmx_prometheus_javaagent-0.11.0.jar -P lib/
#9404 is the reserved prometheus-jmx port
ENV CATALINA_OPTS -javaagent:lib/
jmx_prometheus_javaagent-0.11.0.jar=9404:/etc/config/prometheus-jmx.yaml

เจ–เฉˆเจฐ, เจ‡เจน เจ†เจธเจพเจจ เจธเฉ€. เจจเจฟเจฐเจฏเจพเจคเจ•เจฐเจคเจพ เจŸเฉ‹เจฎเจ•เฉˆเจŸ เจฆเฉ€ เจจเจฟเจ—เจฐเจพเจจเฉ€ เจ•เจฐเฉ‡เจ—เจพ เจ…เจคเฉ‡ เจ‡เจธ เจฆเฉ‡ เจฎเฉˆเจŸเฉเจฐเจฟเจ•เจธ เจจเฉ‚เฉฐ เจชเฉเจฐเฉ‹เจฎเฉ€เจฅเฉ€เจ…เจธ เจซเจพเจฐเจฎเฉˆเจŸ เจตเจฟเฉฑเจš เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจ•เจฐเฉ‡เจ—เจพ <svc>:9404/metrics

เจจเจฟเจฐเจฏเจพเจคเจ• เจธเฉˆเฉฑเจŸเจ…เฉฑเจช

เจงเจฟเจ†เจจ เจฆเฉ‡เจฃ เจตเจพเจฒเจพ เจชเจพเจ เจ• เจนเฉˆเจฐเจพเจจ เจนเฉ‹ เจธเจ•เจฆเจพ เจนเฉˆ เจ•เจฟ เจ‡เจน เจ•เจฟเฉฑเจฅเฉ‹เจ‚ เจ†เจ‡เจ† เจนเฉˆ prometheus-jmx.yaml? เจ‡เฉฑเจฅเฉ‡ เจฌเจนเฉเจค เจธเจพเจฐเฉ€เจ†เจ‚ เจตเฉฑเจ–เจฐเฉ€เจ†เจ‚ เจšเฉ€เจœเจผเจพเจ‚ เจนเจจ เจœเฉ‹ JVM เจตเจฟเฉฑเจš เจšเฉฑเจฒ เจธเจ•เจฆเฉ€เจ†เจ‚ เจนเจจ, เจ…เจคเฉ‡ เจŸเฉ‹เจฎเจ•เฉˆเจŸ เจ‰เจนเจจเจพเจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจธเจฟเจฐเจซ เจ‡เฉฑเจ• เจนเฉˆ, เจ‡เจธเจฒเจˆ เจจเจฟเจฐเจฏเจพเจคเจ•เจฐเจคเจพ เจจเฉ‚เฉฐ เจ•เฉเจ เจตเจพเจงเฉ‚ เจธเฉฐเจฐเจšเจจเจพ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค เจŸเฉ‹เจฎเจ•เฉˆเจŸ, เจตเจพเจˆเจฒเจกเจซเจฒเจพเจˆ, เจ•เจพเจซเจ•เจพ เจ†เจฆเจฟ เจฒเจˆ เจฎเจฟเจ†เจฐเฉ€ เจธเฉฐเจฐเจšเจจเจพ เจ‰เจชเจฒเจฌเจง เจนเจจ เจ‡เฉฑเจฅเฉ‡. เจ…เจธเฉ€เจ‚ เจŸเฉ‹เจฎเจ•เฉˆเจŸ เจจเฉ‚เฉฐ เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจœเฉ‹เฉœเจพเจ‚เจ—เฉ‡ ConfigMap เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจตเจฟเฉฑเจš เจ…เจคเฉ‡ เจซเจฟเจฐ เจ‡เจธเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจตเจพเจฒเฉ€เจ…เจฎ เจฆเฉ‡ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจฎเจพเจŠเจ‚เจŸ เจ•เจฐเฉ‹เฅค

เจชเจนเจฟเจฒเจพเจ‚, เจ…เจธเฉ€เจ‚ เจจเจฟเจฐเจฏเจพเจคเจ• เจธเฉฐเจฐเจšเจจเจพ เจซเจพเจˆเจฒ เจจเฉ‚เฉฐ เจธเจพเจกเฉ€ เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎ/config/ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจตเจฟเฉฑเจš เจœเฉ‹เฉœเจฆเฉ‡ เจนเจพเจ‚

platform/config
โ””โ”€โ”€ prometheus-jmx.yaml

เจซเจฟเจฐ เจ…เจธเฉ€เจ‚ เจœเฉ‹เฉœเจฆเฉ‡ เจนเจพเจ‚ ConfigMapGenerator ะฒ kustomization.yaml.tmpl:

-- platform/kustomization.yaml.tmpl
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
[...] configMapGenerator:
- name: config
files:
- config/prometheus-jmx.yaml

เจ‡เจน เจนเจฐเฉ‡เจ• เจคเฉฑเจค เจจเฉ‚เฉฐ เจœเฉ‹เฉœ เจฆเฉ‡เจตเฉ‡เจ—เจพ files[] เจ‡เฉฑเจ• ConfigMap เจธเฉฐเจฐเจšเจจเจพ เจคเฉฑเจค เจฆเฉ‡ เจฐเฉ‚เจช เจตเจฟเฉฑเจšเฅค ConfigMapGenerators เจฌเจนเฉเจค เจตเจงเฉ€เจ† เจนเจจ เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‰เจน เจธเฉฐเจฐเจšเจจเจพ เจกเฉ‡เจŸเจพ เจจเฉ‚เฉฐ เจนเฉˆเจธเจผ เจ•เจฐเจฆเฉ‡ เจนเจจ เจ…เจคเฉ‡ เจœเฉ‡เจ•เจฐ เจ‡เจน เจฌเจฆเจฒเจฆเจพ เจนเฉˆ เจคเจพเจ‚ เจ‡เฉฑเจ• เจชเฉŒเจก เจจเฉ‚เฉฐ เจฎเฉเฉœ เจšเจพเจฒเฉ‚ เจ•เจฐเจจ เจฒเจˆ เจฎเจœเจฌเฉ‚เจฐ เจ•เจฐเจฆเฉ‡ เจนเจจเฅค เจ‰เจน เจคเฉˆเจจเจพเจคเฉ€ เจตเจฟเฉฑเจš เจธเฉฐเจฐเจšเจจเจพ เจฆเฉ€ เจฎเจพเจคเจฐเจพ เจจเฉ‚เฉฐ เจตเฉ€ เจ˜เจŸเจพเจ‰เจ‚เจฆเฉ‡ เจนเจจ เจ•เจฟเจ‰เจ‚เจ•เจฟ เจคเฉเจธเฉ€เจ‚ เจ‡เฉฑเจ• เจตเจพเจฒเฉ€เจ…เจฎ เจฎเจพเจ‰เจ‚เจŸ เจตเจฟเฉฑเจš เจธเฉฐเจฐเจšเจจเจพ เจซเจพเจˆเจฒเจพเจ‚ เจฆเฉ‡ เจ‡เฉฑเจ• เจชเฉ‚เจฐเฉ‡ "เจซเฉ‹เจฒเจกเจฐ" เจจเฉ‚เฉฐ เจฎเจพเจŠเจ‚เจŸ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค

เจ…เฉฐเจค เจตเจฟเฉฑเจš, เจธเจพเจจเฉ‚เฉฐ เจ•เฉŒเจจเจซเจฟเจ—เจฎเฉˆเจช เจจเฉ‚เฉฐ เจชเฉŒเจก เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจตเจพเจฒเฉ€เจ…เจฎ เจตเจœเฉ‹เจ‚ เจฎเจพเจŠเจ‚เจŸ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ:

-- platform/deployment.yaml
apiVersion: apps/v1
kind: Deployment
[...] spec:
template:
spec:
[...] volumes:
- name: config
configMap:
name: config
defaultMode: 0744
containers:
- name: camunda-bpm
volumeMounts:
- mountPath: /etc/config/
name: config
[...]

เจธเจผเจพเจจเจฆเจพเจฐ. เจœเฉ‡เจ•เจฐ เจชเฉเจฐเฉ‹เจฎเฉ€เจฅเฉ€เจ…เจธ เจจเฉ‚เฉฐ เจชเฉ‚เจฐเฉ€ เจธเจซเจพเจˆ เจ•เจฐเจจ เจฒเจˆ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ, เจคเจพเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจธเจจเฉ‚เฉฐ เจชเฉŒเจกเจพเจ‚ เจจเฉ‚เฉฐ เจธเจพเจซเจผ เจ•เจฐเจจ เจฒเจˆ เจฆเฉฑเจธเจฃเจพ เจชเฉˆ เจธเจ•เจฆเจพ เจนเฉˆเฅค เจชเฉเจฐเฉ‹เจฎเฉ€เจฅเฉ€เจ…เจธ เจ†เจชเจฐเฉ‡เจŸเจฐ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจตเจฐเจค เจธเจ•เจฆเฉ‡ เจนเจจ service-monitor.yaml เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจจ เจฒเจˆ. เจชเฉœเจšเฉ‹เจฒ เจ•เจฐเฉ‹ Service-monitor.yaml, เจ†เจชเจฐเฉ‡เจŸเจฐ เจกเจฟเจœเจผเจพเจˆเจจ ะธ เจธเจฐเจตเจฟเจธ เจฎเจพเจจเฉ€เจŸเจฐ เจธเจชเฉ‡เจ• เจคเฉเจนเจพเจกเฉ‡ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจจ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚เฅค

เจ‡เจธ เจชเฉˆเจŸเจฐเจจ เจจเฉ‚เฉฐ เจนเฉ‹เจฐ เจตเจฐเจคเฉ‹เจ‚ เจฆเฉ‡ เจฎเจพเจฎเจฒเจฟเจ†เจ‚ เจตเจฟเฉฑเจš เจตเจฟเจธเจคเจพเจฐ เจ•เจฐเจจเจพ

เจธเจพเจฐเฉ€เจ†เจ‚ เจซเจพเจˆเจฒเจพเจ‚ เจœเฉ‹ เจ…เจธเฉ€เจ‚ ConfigMapGenerator เจตเจฟเฉฑเจš เจœเฉ‹เฉœเจฆเฉ‡ เจนเจพเจ‚ เจ‰เจน เจจเจตเฉ€เจ‚ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจตเจฟเฉฑเจš เจ‰เจชเจฒเจฌเจง เจนเฉ‹เจฃเจ—เฉ€เจ†เจ‚ /etc/config. เจคเฉเจธเฉ€เจ‚ เจ‡เจธ เจŸเฉˆเจ‚เจชเจฒเฉ‡เจŸ เจจเฉ‚เฉฐ เจ•เจฟเจธเฉ‡ เจนเฉ‹เจฐ เจธเฉฐเจฐเจšเจจเจพ เจซเจพเจˆเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจฎเจพเจŠเจ‚เจŸ เจ•เจฐเจจ เจฒเจˆ เจตเจงเจพ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจœเจฟเจธเจฆเฉ€ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจฒเฉ‹เฉœ เจนเฉˆเฅค เจคเฉเจธเฉ€เจ‚ เจ‡เฉฑเจ• เจจเจตเฉ€เจ‚ เจธเจผเฉเจฐเฉ‚เจ†เจคเฉ€ เจธเจ•เฉเจฐเจฟเจชเจŸ เจตเฉ€ เจฎเจพเจŠเจ‚เจŸ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค เจคเฉเจธเฉ€เจ‚ เจตเจฐเจค เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจธเจฌเจชเจพเจฅ เจตเจฟเจ…เจ•เจคเฉ€เจ—เจค เจซเจพเจˆเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจฎเจพเจŠเจ‚เจŸ เจ•เจฐเจจ เจฒเจˆ. xml เจซเจพเจˆเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจ…เฉฑเจชเจกเฉ‡เจŸ เจ•เจฐเจจ เจฒเจˆ, เจตเจฐเจคเจฃ เจฌเจพเจฐเฉ‡ เจตเจฟเจšเจพเจฐ เจ•เจฐเฉ‹ xmlstarlet sed เจฆเฉ€ เจฌเจœเจพเจ. เจ‡เจน เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจšเจฟเฉฑเจคเจฐ เจตเจฟเฉฑเจš เจธเจผเจพเจฎเจฒ เจนเฉˆเฅค

เจฐเจธเจพเจฒเจฟเจ†เจ‚

เจตเฉฑเจกเฉ€ เจ–เจผเจฌเจฐ! เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจฒเฉŒเจ— เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ stdout 'เจคเฉ‡ เจ‰เจชเจฒเจฌเจง เจนเจจ, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ เจ‡เจธ เจฆเฉ‡ เจจเจพเจฒ kubectl logs. Fluentd (GKE เจตเจฟเฉฑเจš เจฎเฉ‚เจฒ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจธเจฅเจพเจชเจฟเจค) เจคเฉเจนเจพเจกเฉ‡ เจฒเฉŒเจ—เจพเจ‚ เจจเฉ‚เฉฐ Elasticsearch, Loki, เจœเจพเจ‚ เจคเฉเจนเจพเจกเฉ‡ เจเจ‚เจŸเจฐเจชเฉเจฐเจพเจˆเจœเจผ เจฒเฉŒเจ—เจฟเฉฐเจ— เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎ 'เจคเฉ‡ เจ…เฉฑเจ—เฉ‡ เจญเฉ‡เจœ เจฆเฉ‡เจตเฉ‡เจ—เจพเฅค เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจฒเฉŒเจ—เจธ เจฒเจˆ jsonify เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹ เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจ‡เฉฐเจธเจŸเจพเจฒ เจ•เจฐเจจ เจฒเจˆ เจ‰เจชเจฐเฉ‹เจ•เจค เจŸเฉˆเจชเจฒเฉ‡เจŸ เจฆเฉ€ เจชเจพเจฒเจฃเจพ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจฒเฉŒเจ—เจฌเฉˆเจ•.

เจกเจพเจŸเจพเจฌเฉ‡เจธ

เจฎเฉ‚เจฒ เจฐเฉ‚เจช เจตเจฟเฉฑเจš, เจšเจฟเฉฑเจคเจฐ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• H2 เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจนเฉ‹เจตเฉ‡เจ—เจพเฅค เจ‡เจน เจธเจพเจกเฉ‡ เจฒเจˆ เจขเฉเจ•เจตเจพเจ‚ เจจเจนเฉ€เจ‚ เจนเฉˆ, เจ…เจคเฉ‡ เจ…เจธเฉ€เจ‚ Cloud SQL เจชเฉเจฐเฉŒเจ•เจธเฉ€ เจฆเฉ‡ เจจเจพเจฒ Google Cloud SQL เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจพเจ‚เจ—เฉ‡ - เจ…เฉฐเจฆเจฐเฉ‚เจจเฉ€ เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚ เจจเฉ‚เฉฐ เจนเฉฑเจฒ เจ•เจฐเจจ เจฒเจˆ เจฌเจพเจ…เจฆ เจตเจฟเฉฑเจš เจ‡เจธเจฆเฉ€ เจฒเฉ‹เฉœ เจชเจตเฉ‡เจ—เฉ€เฅค เจ‡เจน เจ‡เฉฑเจ• เจธเจงเจพเจฐเจจ เจ…เจคเฉ‡ เจญเจฐเฉ‹เจธเฉ‡เจฎเฉฐเจฆ เจตเจฟเจ•เจฒเจช เจนเฉˆ เจœเฉ‡เจ•เจฐ เจคเฉเจนเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจธเจฅเจพเจชเจค เจ•เจฐเจจ เจตเจฟเฉฑเจš เจคเฉเจนเจพเจกเฉ€เจ†เจ‚ เจคเจฐเจœเฉ€เจนเจพเจ‚ เจจเจนเฉ€เจ‚ เจนเจจเฅค AWS RDS เจ‡เฉฑเจ• เจธเจฎเจพเจจ เจธเฉ‡เจตเจพ เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจฆเจพ เจนเฉˆเฅค

เจคเฉเจนเจพเจกเฉ‡ เจฆเฉเจ†เจฐเจพ เจšเฉเจฃเฉ‡ เจ—เจ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจฆเฉ€ เจชเจฐเจตเจพเจน เจ•เฉ€เจคเฉ‡ เจฌเจฟเจจเจพเจ‚, เจœเจฆเฉ‹เจ‚ เจคเฉฑเจ• เจ‡เจน H2 เจจเจพ เจนเฉ‹เจตเฉ‡, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจธ เจตเจฟเฉฑเจš เจขเฉเจ•เจตเฉ‡เจ‚ เจตเจพเจคเจพเจตเจฐเจฃ เจตเฉ‡เจฐเฉ€เจเจฌเจฒ เจธเฉˆเฉฑเจŸ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจชเจตเฉ‡เจ—เฉ€ platform/deploy.yaml. เจ‡เจน เจ•เฉเจ เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจฆเจฟเจ–เจพเจˆ เจฆเจฟเฉฐเจฆเจพ เจนเฉˆ:

-- platform/deployment.yaml
apiVersion: apps/v1
kind: Deployment
[...] spec:
template:
spec:
[...] containers:
- name: camunda-bpm
env:
- name: DB_DRIVER
value: org.postgresql.Driver
- name: DB_URL
value: jdbc:postgresql://postgres-proxy.db:5432/process-engine
- name: DB_USERNAME
valueFrom:
secretKeyRef:
name: cambpm-db-credentials
key: db_username
- name: DB_PASSWORD
valueFrom:
secretKeyRef:
name: cambpm-db-credentials
key: db_password
[...]

เจŸเจฟเฉฑเจชเจฃเฉ€: เจคเฉเจธเฉ€เจ‚ เจ‡เฉฑเจ• เจ“เจตเจฐเจฒเฉ‡เจ… เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจตเฉฑเจ–-เจตเฉฑเจ– เจตเจพเจคเจพเจตเจฐเจฃเจพเจ‚ เจตเจฟเฉฑเจš เจคเฉˆเจจเจพเจค เจ•เจฐเจจ เจฒเจˆ เจ•เจธเจŸเจฎเจพเจˆเจœเจผ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹: เจ‰เจฆเจพเจนเจฐเจจ.

เจŸเจฟเฉฑเจชเจฃเฉ€: เจตเจฐเจคเฉ‹เจ‚ valueFrom: secretKeyRef. เจ•เจฟเจฐเจชเจพ เจ•เจฐเจ•เฉ‡, เจตเจฐเจคเฉ‹ เจ‡เจน Kubernetes เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ เจตเจฟเจ•เจพเจธ เจฆเฉ‡ เจฆเฉŒเจฐเจพเจจ เจตเฉ€ เจคเฉเจนเจพเจกเฉ‡ เจญเฉ‡เจฆ เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจฐเฉฑเจ–เจฃ เจฒเจˆเฅค

เจ‡เจน เจธเฉฐเจญเจพเจตเจจเจพ เจนเฉˆ เจ•เจฟ เจคเฉเจนเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจฆเฉ‡ เจญเฉ‡เจฆ เจชเฉเจฐเจฌเฉฐเจงเจจ เจฒเจˆ เจ‡เฉฑเจ• เจคเจฐเจœเฉ€เจนเฉ€ เจธเจฟเจธเจŸเจฎ เจนเฉˆเฅค เจœเฉ‡เจ•เจฐ เจจเจนเฉ€เจ‚, เจคเจพเจ‚ เจ‡เฉฑเจฅเฉ‡ เจ•เฉเจ เจตเจฟเจ•เจฒเจช เจนเจจ: เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ†เจชเจฃเฉ‡ เจ•เจฒเจพเจ‰เจก เจชเฉเจฐเจฆเจพเจคเจพ เจฆเฉ‡ KMS เจจเจพเจฒ เจเจจเจ•เฉเจฐเจฟเจชเจŸ เจ•เจฐเจจเจพ เจ…เจคเฉ‡ เจซเจฟเจฐ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ K8S เจตเจฟเฉฑเจš CD เจชเจพเจˆเจชเจฒเจพเจˆเจจ เจฐเจพเจนเฉ€เจ‚ เจ—เฉเจชเจค เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจ‡เฉฐเจœเฉˆเจ•เจŸ เจ•เจฐเจจเจพ - เจฎเฉ‹เจœเจผเฉ€เจฒเจพ SOPS - เจ•เจธเจŸเจฎเจพเจˆเจœเจผ เจฐเจนเฉฑเจธเจพเจ‚ เจฆเฉ‡ เจธเฉเจฎเฉ‡เจฒ เจตเจฟเฉฑเจš เจฌเจนเฉเจค เจตเจงเฉ€เจ† เจ•เฉฐเจฎ เจ•เจฐเฉ‡เจ—เจพ. เจนเฉ‹เจฐ เจŸเฉ‚เจฒ เจนเจจ, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ dotGPG, เจœเฉ‹ เจธเจฎเจพเจจ เจซเฉฐเจ•เจธเจผเจจ เจ•เจฐเจฆเฉ‡ เจนเจจ: HashiCorp เจตเจพเจฒเจŸ, เจ—เฉเจชเจค เจฎเฉเฉฑเจฒ เจชเจฒเฉฑเจ—เจ‡เจจ เจจเฉ‚เฉฐ เจ…เจจเฉเจ•เฉ‚เจฒเจฟเจค เจ•เจฐเฉ‹.

เจฆเจพเจ–เจฒ

เจœเจฆเฉ‹เจ‚ เจคเฉฑเจ• เจคเฉเจธเฉ€เจ‚ เจฒเฉ‹เจ•เจฒ เจชเฉ‹เจฐเจŸ เจซเจพเจฐเจตเจฐเจกเจฟเฉฐเจ— เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจฆเฉ€ เจšเฉ‹เจฃ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเฉ‡, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจ•เฉŒเจ‚เจซเจฟเจ—เจฐ เจ•เฉ€เจคเฉ‡ เจ‡เฉฐเจ—เจฐเฉˆเจธ เจ•เฉฐเจŸเจฐเฉ‹เจฒเจฐ เจฆเฉ€ เจฒเฉ‹เฉœ เจชเจตเฉ‡เจ—เฉ€เฅค เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจจเจนเฉ€เจ‚ เจตเจฐเจคเจฆเฉ‡ ingress-nginx (เจนเฉˆเจฒเจฎ เจšเจพเจฐเจŸ) เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจธเฉฐเจญเจพเจตเจค เจคเฉŒเจฐ 'เจคเฉ‡ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจœเจพเจฃเจฆเฉ‡ เจนเฉ‹เจตเฉ‹เจ—เฉ‡ เจ•เจฟ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ‡ เจเจจเฉ‹เจŸเฉ‡เจธเจผเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ‡เฉฐเจธเจŸเจพเจฒ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ ingress-patch.yaml.tmpl เจœ platform/ingress.yaml. เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ ingress-nginx เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐ เจฐเจนเฉ‡ เจนเฉ‹ เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจฒเฉ‹เจก เจฌเฉˆเจฒเฉˆเจ‚เจธเจฐ เจฆเฉ‡ เจจเจพเจฒ เจ‡เฉฑเจ• nginx เจ‡เฉฐเจ—เฉเจฐเฉ‡เจธ เจ•เจฒเจพเจธ เจตเฉ‡เจ–เจฆเฉ‡ เจนเฉ‹ เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจฌเจพเจนเจฐเฉ€ DNS เจœเจพเจ‚ เจตเจพเจˆเจฒเจกเจ•เจพเจฐเจก DNS เจเจ‚เจŸเจฐเฉ€ เจตเฉ‡เจ–เจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจœเจพเจฃ เจฒเจˆ เจšเฉฐเจ—เฉ‡ เจนเฉ‹เฅค เจจเจนเฉ€เจ‚ เจคเจพเจ‚, เจ‡เจจเจ—เจฐเฉ‡เจธ เจ•เฉฐเจŸเจฐเฉ‹เจฒเจฐ เจ…เจคเฉ‡ DNS เจจเฉ‚เฉฐ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐ เจ•เจฐเฉ‹, เจœเจพเจ‚ เจ‡เจนเจจเจพเจ‚ เจชเฉœเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจ›เฉฑเจกเฉ‹ เจ…เจคเฉ‡ เจชเฉŒเจก เจจเจพเจฒ เจธเจฟเฉฑเจงเจพ เจ•เจจเฉˆเจ•เจธเจผเจจ เจฐเฉฑเจ–เฉ‹เฅค

TLS

เจœเฉ‡ เจคเฉเจธเฉ€เจ‚ เจตเจฐเจค เจฐเจนเฉ‡ เจนเฉ‹ เจธเจฐเจŸเฉ€เจซเจฟเจ•เฉ‡เจŸ เจฎเฉˆเจจเฉ‡เจœเจฐ เจœเจพเจ‚ kube-lego เจ…เจคเฉ‡ letsencrypt - เจจเจตเฉ‡เจ‚ เจฒเฉŒเจ—เจ‡เจจ เจฒเจˆ เจชเฉเจฐเจฎเจพเจฃ-เจชเฉฑเจคเจฐ เจ†เจชเจฃเฉ‡ เจ†เจช เจชเฉเจฐเจพเจชเจค เจ•เฉ€เจคเฉ‡ เจœเจพเจฃเจ—เฉ‡เฅค เจจเจนเฉ€เจ‚ เจคเจพเจ‚, เจ–เฉ‹เจฒเฉเจนเฉ‹ ingress-patch.yaml.tmpl เจ…เจคเฉ‡ เจ‡เจธเจจเฉ‚เฉฐ เจคเฉเจนเจพเจกเฉ€เจ†เจ‚ เจฒเฉ‹เฉœเจพเจ‚ เจฎเฉเจคเจพเจฌเจ• เจ…เจจเฉเจ•เฉ‚เจฒเจฟเจค เจ•เจฐเฉ‹เฅค

เจฒเจพเจ‚เจš เจ•เจฐเฉ‹!

เจœเฉ‡ เจคเฉเจธเฉ€เจ‚ เจ‰เฉฑเจชเจฐ เจฒเจฟเจ–เฉ€ เจนเจฐ เจšเฉ€เจœเจผ เจฆเฉ€ เจชเจพเจฒเจฃเจพ เจ•เจฐเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจ•เจฎเจพเจ‚เจก make skaffold HOSTNAME=<you.example.com> เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจ‰เจชเจฒเจฌเจง เจ‰เจฆเจพเจนเจฐเจฃ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจจเฉ€ เจšเจพเจนเฉ€เจฆเฉ€ เจนเฉˆ <hostname>/camunda

เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจ†เจชเจฃเจพ เจฒเฉŒเจ—เจ‡เจจ เจ‡เฉฑเจ• เจœเจจเจคเจ• URL 'เจคเฉ‡ เจธเฉˆเฉฑเจŸ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ เจนเฉˆ, เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจ‡เจธ เจจเจพเจฒ เจฐเฉ€เจกเจพเจ‡เจฐเฉˆเจ•เจŸ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ localhost: kubectl port-forward -n camunda-bpm-demo svc/camunda-bpm 8080:8080 'เจคเฉ‡ localhost:8080/camunda

เจŸเฉ‹เจฎเจ•เฉˆเจŸ เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจคเจฟเจ†เจฐ เจนเฉ‹เจฃ เจคเฉฑเจ• เจ•เฉเจ เจฎเจฟเฉฐเจŸ เจ‰เจกเฉ€เจ• เจ•เจฐเฉ‹เฅค เจธเจฐเจŸ-เจฎเฉˆเจจเฉ‡เจœเจฐ เจจเฉ‚เฉฐ เจกเฉ‹เจฎเฉ‡เจจ เจจเจพเจฎ เจฆเฉ€ เจชเฉเจธเจผเจŸเฉ€ เจ•เจฐเจจ เจตเจฟเฉฑเจš เจ•เฉเจ เจธเจฎเจพเจ‚ เจฒเฉฑเจ—เฉ‡เจ—เจพเฅค เจคเฉเจธเฉ€เจ‚ เจซเจฟเจฐ เจ‰เจชเจฒเจฌเจง เจŸเฉ‚เจฒ เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ kubetail เจตเจฐเจ—เฉ‡ เจŸเฉ‚เจฒ, เจœเจพเจ‚ เจธเจฟเจฐเจซเจผ kubectl เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจฒเจพเจ—เจพเจ‚ เจฆเฉ€ เจจเจฟเจ—เจฐเจพเจจเฉ€ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹:

kubectl logs -n camunda-bpm-demo $(kubectl get pods -o=name -n camunda-bpm-demo) -f

เจ…เจ—เจฒเฉ‡ เจ•เจฆเจฎ

เจชเฉเจฐเจฎเจพเจฃเฉ€เจ•เจฐเจฃ

เจ‡เจน Kubernetes เจจเจพเจฒเฉ‹เจ‚ Camunda BPM เจจเฉ‚เฉฐ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐ เจ•เจฐเจจ เจฒเจˆ เจตเจงเฉ‡เจฐเฉ‡ เจขเฉเจ•เจตเจพเจ‚ เจนเฉˆ, เจชเจฐ เจ‡เจน เจจเฉ‹เจŸ เจ•เจฐเจจเจพ เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจนเฉˆ เจ•เจฟ เจฎเฉ‚เจฒ เจฐเฉ‚เจช เจตเจฟเฉฑเจš, REST API เจตเจฟเฉฑเจš เจชเฉเจฐเจฎเจพเจฃเฉ€เจ•เจฐเจจ เจ…เจธเจฎเจฐเฉฑเจฅ เจนเฉˆเฅค เจคเฉเจธเฉ€เจ‚ เจ•เจฐ เจธเฉฑเจ•เจฆเฉ‡ เจนเฉ‹ เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจชเฉเจฐเจฎเจพเจฃเจฟเจ•เจคเจพ เจจเฉ‚เฉฐ เจธเจฎเจฐเฉฑเจฅ เจฌเจฃเจพเจ“ เจœเจพเจ‚ เจ•เฉ‹เจˆ เจนเฉ‹เจฐ เจคเจฐเฉ€เจ•เจพ เจตเจฐเจคเฉ‹ เจœเจฟเจตเฉ‡เจ‚ เจœเฉ‡เจกเจฌเจฒเจฏเฉ‚เจŸเฉ€. เจคเฉเจธเฉ€เจ‚ เจšเจฟเฉฑเจคเจฐ เจตเจฟเฉฑเจš เจฎเฉŒเจœเฉ‚เจฆเจพ เจซเจพเจˆเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจธเฉฐเจชเจพเจฆเจฟเจค เจ•เจฐเจจ เจฒเจˆ xml, เจœเจพเจ‚ xmlstarlet (เจ‰เฉฑเจชเจฐ เจฆเฉ‡เจ–เฉ‹) เจฒเฉ‹เจก เจ•เจฐเจจ เจฒเจˆ configmaps เจ…เจคเฉ‡ เจตเจพเจฒเฉ€เจ…เจฎ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจ…เจคเฉ‡ เจœเจพเจ‚ เจคเจพเจ‚ wget เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจœเจพเจ‚ เจ‡เฉฑเจ• init เจ•เฉฐเจŸเฉ‡เจจเจฐ เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจธเจผเฉ‡เจ…เจฐ เจตเจพเจฒเฉ€เจ…เจฎ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจฒเฉ‹เจก เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค

เจธเฉˆเจธเจผเจจ เจชเฉเจฐเจฌเฉฐเจงเจจ

เจ•เจˆ เจนเฉ‹เจฐ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจตเจพเจ‚เจ—, เจ•เฉˆเจฎเฉเฉฐเจกเจพ เจฌเฉ€เจชเฉ€เจเจฎ เจœเฉ‡เจตเฉ€เจเจฎ เจตเจฟเฉฑเจš เจธเฉˆเจธเจผเจจเจพเจ‚ เจจเฉ‚เฉฐ เจนเฉˆเจ‚เจกเจฒ เจ•เจฐเจฆเจพ เจนเฉˆ, เจ‡เจธ เจฒเจˆ เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจ•เจˆ เจชเฉเจฐเจคเฉ€เจ•เฉเจฐเจฟเจคเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจฃเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจธเจŸเจฟเฉฑเจ•เฉ€ เจธเฉˆเจธเจผเจจเจพเจ‚ เจจเฉ‚เฉฐ เจธเจฎเจฐเฉฑเจฅ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ (เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ ingress-nginx เจฒเจˆ), เจœเฉ‹ เจ•เจฟ เจชเฉเจฐเจคเฉ€เจ•เฉเจฐเจฟเจคเฉ€ เจฆเฉ‡ เจ—เจพเจ‡เจฌ เจนเฉ‹เจฃ เจคเฉฑเจ• เจฎเฉŒเจœเฉ‚เจฆ เจฐเจนเฉ‡เจ—เจพ, เจœเจพเจ‚ เจ•เฉ‚เจ•เฉ€เจœเจผ เจฒเจˆ เจ…เจงเจฟเจ•เจคเจฎ-เจ‰เจฎเจฐ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ เจธเฉˆเจŸ เจ•เจฐเฉ‹เฅค เจตเจงเฉ‡เจฐเฉ‡ เจฎเจœเจผเจฌเฉ‚เจค โ€‹โ€‹เจนเฉฑเจฒ เจฒเจˆ, เจคเฉเจธเฉ€เจ‚ เจŸเฉ‹เจฎเจ•เฉˆเจŸ เจตเจฟเฉฑเจš เจธเฉˆเจธเจผเจจ เจฎเฉˆเจจเฉ‡เจœเจฐ เจจเฉ‚เฉฐ เจคเจพเจ‡เจจเจพเจค เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค เจฒเจพเจฐเจธ เจ•เฉ‹เจฒ เจนเฉˆ เจตเฉฑเจ–เจฐเฉ€ เจชเฉ‹เจธเจŸ เจ‡เจธ เจตเจฟเจธเจผเฉ‡ 'เจคเฉ‡, เจชเจฐ เจ•เฉเจ เจ…เจœเจฟเจนเจพ:

wget http://repo1.maven.org/maven2/de/javakaffee/msm/memcached-session-manager/
2.3.2/memcached-session-manager-2.3.2.jar -P lib/ &&
wget http://repo1.maven.org/maven2/de/javakaffee/msm/memcached-session-manager-tc9/
2.3.2/memcached-session-manager-tc9-2.3.2.jar -P lib/ &&

sed -i '/^</Context>/i
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="redis://redis-proxy.db:22121"
sticky="false"
sessionBackupAsync="false"
storageKeyPrefix="context"
lockingMode="auto"
/>' conf/context.xml

เจŸเจฟเฉฑเจชเจฃเฉ€: เจคเฉเจธเฉ€เจ‚ sed เจฆเฉ€ เจฌเจœเจพเจ xmlstarlet เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹

เจ…เจธเฉ€เจ‚ เจตเจฐเจคเจฟเจ† twemproxy เจ—เฉ‚เจ—เจฒ เจ•เจฒเจพเจ‰เจก เจฎเฉˆเจฎเฉ‹เจฐเฉ€เจธเจŸเฉ‹เจฐ เจฆเฉ‡ เจธเจพเจนเจฎเจฃเฉ‡, เจจเจพเจฒ memcached-session-manager (เจฐเฉ‡เจกเจฟเจธ เจฆเจพ เจธเจฎเจฐเจฅเจจ เจ•เจฐเจฆเจพ เจนเฉˆ) เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจฃ เจฒเจˆ.

เจธเจ•เฉ‡เจฒเจฟเฉฐเจ—

เจœเฉ‡ เจคเฉเจธเฉ€เจ‚ เจธเฉˆเจธเจผเจจเจพเจ‚ เจจเฉ‚เฉฐ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจธเจฎเจเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจ•เฉˆเจฎเฉเฉฐเจกเจพ เจฌเฉ€เจชเฉ€เจเจฎ เจจเฉ‚เฉฐ เจธเจ•เฉ‡เจฒเจฟเฉฐเจ— เจ•เจฐเจจ เจฒเจˆ เจชเจนเจฟเจฒเฉ€ (เจ…เจคเฉ‡ เจ…เจ•เจธเจฐ เจ†เจ–เจฐเฉ€) เจธเฉ€เจฎเจพ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจจเจพเจฒ เจ•เฉเจจเฉˆเจ•เจธเจผเจจ เจนเฉ‹ เจธเจ•เจฆเฉ€ เจนเฉˆเฅค เจ…เฉฐเจธเจผเจ• เจ…เจจเฉเจ•เฉ‚เจฒเจคเจพ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจ‰เจชเจฒเจฌเจง เจนเฉˆ"เจฌเจ•เจธเฉ‡ เจคเฉ‹เจ‚" เจšเจฒเฉ‹ settings.xml เจซเจพเจˆเจฒ เจตเจฟเฉฑเจš intialSize เจจเฉ‚เฉฐ เจตเฉ€ เจ…เจฏเฉ‹เจ— เจ•เจฐเฉ€เจเฅค เจธเจผเจพเจฎเจฒ เจ•เจฐเฉ‹ เจนเจฐเฉ€เจœเจผเจŸเจฒ เจชเฉ‹เจก เจ†เจŸเฉ‹เจธเจ•เฉ‡เจฒเจฐ (HPA) เจ…เจคเฉ‡ เจคเฉเจธเฉ€เจ‚ เจ†เจธเจพเจจเฉ€ เจจเจพเจฒ เจชเฉŒเจกเจพเจ‚ เจฆเฉ€ เจ—เจฟเจฃเจคเฉ€ เจจเฉ‚เฉฐ เจ†เจธเจพเจจเฉ€ เจจเจพเจฒ เจธเจ•เฉ‡เจฒ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค

เจฌเฉ‡เจจเจคเฉ€เจ†เจ‚ เจ…เจคเฉ‡ เจชเจพเจฌเฉฐเจฆเฉ€เจ†เจ‚

ะ’ platform/deployment.yaml เจคเฉเจธเฉ€เจ‚ เจฆเฉ‡เจ–เฉ‹เจ—เฉ‡ เจ•เจฟ เจ…เจธเฉ€เจ‚ เจธเจฐเฉ‹เจค เจ–เฉ‡เจคเจฐ เจจเฉ‚เฉฐ เจนเจพเจฐเจก-เจ•เฉ‹เจก เจ•เฉ€เจคเจพ เจนเฉˆเฅค เจ‡เจน HPA เจจเจพเจฒ เจšเฉฐเจ—เฉ€ เจคเจฐเฉเจนเจพเจ‚ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ, เจชเจฐ เจตเจพเจงเฉ‚ เจธเฉฐเจฐเจšเจจเจพ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉ‹ เจธเจ•เจฆเฉ€ เจนเฉˆเฅค เจ•เจธเจŸเจฎเจพเจˆเจœเจผ เจชเฉˆเจš เจ‡เจธ เจฒเจˆ เจขเฉเจ•เจตเจพเจ‚ เจนเฉˆเฅค เจธเฉ€.เจเจฎ. ingress-patch.yaml.tmpl ะธ ./kustomization.yaml.tmpl

เจธเจฟเฉฑเจŸเจพ

เจ‡เจธ เจฒเจˆ เจ…เจธเฉ€เจ‚ เจชเฉเจฐเฉ‹เจฎเฉ€เจฅเฉ€เจ…เจธ เจฎเฉˆเจŸเฉเจฐเจฟเจ•เจธ, เจฒเฉŒเจ—เจธ, H2 เจกเจพเจŸเจพเจฌเฉ‡เจธ, TLS เจ…เจคเฉ‡ เจ‡เฉฐเจ—เจฐเฉˆเจธ เจฆเฉ‡ เจจเจพเจฒ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ 'เจคเฉ‡ เจ•เฉˆเจฎเฉเฉฐเจกเจพ เจฌเฉ€เจชเฉ€เจเจฎ เจธเจฅเจพเจชเจค เจ•เฉ€เจคเจพเฅค เจ…เจธเฉ€เจ‚ ConfigMaps เจ…เจคเฉ‡ Dockerfile เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจœเจพเจฐ เจซเจพเจˆเจฒเจพเจ‚ เจ…เจคเฉ‡ เจธเฉฐเจฐเจšเจจเจพ เจซเจพเจˆเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจœเฉ‹เฉœเจฟเจ† เจนเฉˆเฅค เจ…เจธเฉ€เจ‚ เจญเฉ‡เจฆ เจคเฉ‹เจ‚ เจตเฉŒเจฒเจฏเฉ‚เจฎ เจ…เจคเฉ‡ เจธเจฟเฉฑเจงเฉ‡ เจตเจพเจคเจพเจตเจฐเจฃ เจตเฉ‡เจฐเฉ€เจเจฌเจฒเจพเจ‚ เจตเจฟเฉฑเจš เจกเฉ‡เจŸเจพ เจฆเจพ เจ†เจฆเจพเจจ-เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจจ เจฌเจพเจฐเฉ‡ เจ—เฉฑเจฒ เจ•เฉ€เจคเฉ€เฅค เจ‡เจธ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจ…เจธเฉ€เจ‚ เจ•เจˆ เจชเฉเจฐเจคเฉ€เจ•เฉเจฐเจฟเจคเฉ€เจ†เจ‚ เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจชเฉเจฐเจฎเจพเจฃเจฟเจค API เจฒเจˆ เจ•เฉˆเจฎเฉเฉฐเจกเจพ เจธเจฅเจพเจชเจค เจ•เจฐเจจ เจฆเฉ€ เจ‡เฉฑเจ• เจธเฉฐเจ–เฉ‡เจช เจœเจพเจฃเจ•เจพเจฐเฉ€ เจชเฉเจฐเจฆเจพเจจ เจ•เฉ€เจคเฉ€ เจนเฉˆเฅค

เจนเจตเจพเจฒเฉ‡

github.com/camunda-cloud/camunda-examples/camunda-bpm-kubernetes
โ”‚
โ”œโ”€โ”€ generated-manifest.yaml <- manifest for use without kustomize
โ”œโ”€โ”€ images
โ”‚ โ””โ”€โ”€ camunda-bpm
โ”‚ โ””โ”€โ”€ Dockerfile <- overlay docker image
โ”œโ”€โ”€ ingress-patch.yaml.tmpl <- site-specific ingress configuration
โ”œโ”€โ”€ kustomization.yaml.tmpl <- main Kustomization
โ”œโ”€โ”€ Makefile <- make targets
โ”œโ”€โ”€ namespace.yaml
โ”œโ”€โ”€ platform
โ”‚ โ”œโ”€โ”€ config
โ”‚ โ”‚ โ””โ”€โ”€ prometheus-jmx.yaml <- prometheus exporter config file
โ”‚ โ”œโ”€โ”€ deployment.yaml <- main deployment
โ”‚ โ”œโ”€โ”€ ingress.yaml
โ”‚ โ”œโ”€โ”€ kustomization.yaml <- "base" kustomization
โ”‚ โ”œโ”€โ”€ service-monitor.yaml <- example prometheus-operator config
โ”‚ โ””โ”€โ”€ service.yaml
โ””โ”€โ”€ skaffold.yaml.tmpl <- skaffold directives

05.08.2020/XNUMX/XNUMX, เจ…เจจเฉเจตเจพเจฆ เจฒเฉ‡เจ– เจเจฒเจธเจŸเฉ‡เจ…เจฐ เจซเฉ‡เจฐเจฅ, เจฒเจพเจฐเจธ เจฒเฉˆเจ‚เจœ

เจธเจฐเฉ‹เจค: www.habr.com

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹