Eclipse JKube เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจฒเจˆ เจœเจพเจตเจพ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจฆเจพ เจตเจฟเจ•เจพเจธ เจ•เจฐเจจเจพ

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

Eclipse JKube เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจฒเจˆ เจœเจพเจตเจพ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจฆเจพ เจตเจฟเจ•เจพเจธ เจ•เจฐเจจเจพ

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

เจฐเจตเจพเจ‡เจคเฉ€ เจœเจพเจตเจพ เจตเจฟเจ•เจพเจธ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ†

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

Eclipse JKube เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจฒเจˆ เจœเจพเจตเจพ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจฆเจพ เจตเจฟเจ•เจพเจธ เจ•เจฐเจจเจพ

เจšเฉŒเจฒ. 1. เจฐเจตเจพเจ‡เจคเฉ€ เจœเจพเจตเจพ เจตเจฟเจ•เจพเจธ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ†เฅค

เจ•เจฒเจพเจ‰เจก เจฒเจˆ เจœเจพเจตเจพ เจตเจฟเจ•เจพเจธ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ†

เจ•เจฒเจพเจ‰เจก เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ 'เจคเฉ‡ เจœเจพเจฃ เจตเฉ‡เจฒเฉ‡, เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจ…เจคเฉ‡ เจกเฉฑเจฌเฉ‡. เจ‡เจธ เจฒเจˆ, เจนเฉเจฃ เจกเจฟเจตเฉˆเจฒเจชเจฐ เจจเฉ‚เฉฐ เจœเจพเจตเจพ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจจเฉ‚เฉฐ เจชเฉˆเจ•เฉ‡เจœ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ เจ•เฉฐเจŸเฉ‡เจจเจฐ เจšเจฟเฉฑเจคเจฐ เจ…เจคเฉ‡ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจฎเฉˆเจจเฉ€เจซเฉˆเจธเจŸ เจฌเจฃเจพเจ“ เจœเฉ‹ เจ‡เจนเจจเจพเจ‚ เจšเจฟเฉฑเจคเจฐเจพเจ‚ เจฆเจพ เจตเจฐเจฃเจจ เจ•เจฐเจฆเฉ‡ เจนเจจเฅค เจ‡เจน เจฎเฉˆเจจเฉ€เจซเฉˆเจธเจŸ เจซเจฟเจฐ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจšเจฒเจพ เจฐเจนเฉ‡ เจ‰เจคเจชเจพเจฆเจจ เจธเจฐเจตเจฐ 'เจคเฉ‡ เจฒเจพเจ—เฉ‚ เจ•เฉ€เจคเฉ‡ เจœเจพเจ‚เจฆเฉ‡ เจนเจจเฅค เจฌเจฆเจฒเฉ‡ เจตเจฟเฉฑเจš, Kubernetes เจ‡เจนเจจเจพเจ‚ เจšเจฟเฉฑเจคเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจฐเจœเจฟเจธเจŸเจฐเฉ€ เจคเฉ‹เจ‚ เจฒเฉˆเจ‚เจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจธเฉฐเจฐเจšเจจเจพเจตเจพเจ‚ เจฆเฉ‡ เจ…เจจเฉเจธเจพเจฐ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจจเฉ‚เฉฐ เจคเฉˆเจจเจพเจค เจ•เจฐเจฆเจพ เจนเฉˆ เจœเฉ‹ เจ…เจธเฉ€เจ‚ เจฎเฉˆเจจเฉ€เจซเฉˆเจธเจŸ เจตเจฟเฉฑเจš เจฒเจฟเจ–เฉ€เจ†เจ‚ เจนเจจ, เจœเฉ‹ เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ YAML เจซเจพเจˆเจฒเจพเจ‚ เจนเฉเฉฐเจฆเฉ€เจ†เจ‚ เจนเจจเฅค

เจ•เจฒเจพเจ‰เจก เจตเจฟเฉฑเจš เจคเจฌเจฆเฉ€เจฒเฉ€ เจตเจฟเฉฑเจš เจชเจฐเฉฐเจชเจฐเจพเจ—เจค เจœเจพเจตเจพ เจตเจฟเจ•เจพเจธ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจฆเจพ เจฐเฉ‚เจชเจพเจ‚เจคเจฐ เจšเจฟเฉฑเจคเจฐ เจตเจฟเฉฑเจš เจฆเจฟเจ–เจพเจ‡เจ† เจ—เจฟเจ† เจนเฉˆเฅค 2.

Eclipse JKube เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจฒเจˆ เจœเจพเจตเจพ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจฆเจพ เจตเจฟเจ•เจพเจธ เจ•เจฐเจจเจพ

เจšเฉŒเจฒ. 2. เจ•เจฒเจพเจ‰เจก เจฒเจˆ เจœเจพเจตเจพ เจตเจฟเจ•เจพเจธ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ†เฅค

เจ—เฉเจฐเจนเจฟเจฃ JKube

เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจตเจฟเฉฑเจš เจฎเจพเจˆเจ—เจฐเฉ‡เจŸ เจ•เจฐเจจเจพ เจตเจฟเจ•เจพเจธ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจนเฉ‹เจฐ เจธเฉฐเจšเจพเจฒเจจ เจชเจฐเจค เจœเฉ‹เฉœเจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจกเจฟเจตเฉˆเจฒเจชเจฐ เจ‡เจธ เจฌเจพเจฐเฉ‡ เจ˜เจฌเจฐเจพ เจœเจพเจ‚เจฆเฉ‡ เจนเจจ เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‰เจน เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจคเฉˆเจจเจพเจค เจ•เจฐเจจ เจฆเฉ€ เจฌเจœเจพเจ เจ‰เจนเจจเจพเจ‚ เจฆเฉ‡ เจฎเฉเฉฑเจ– เจ•เฉฐเจฎ - เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจคเจฐเจ• - เจ‰เฉฑเจคเฉ‡ เจงเจฟเจ†เจจ เจ•เฉ‡เจ‚เจฆเจฐเจฟเจค เจ•เจฐเจจเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเจจเฅค เจ…เจคเฉ‡ เจ‡เจน เจ‰เจน เจฅเจพเจ‚ เจนเฉˆ เจœเจฟเฉฑเจฅเฉ‡ เจ‡เจน เจ–เฉ‡เจก เจตเจฟเฉฑเจš เจ†เจ‰เจ‚เจฆเจพ เจนเฉˆ. เจ—เฉเจฐเจนเจฟเจฃ JKube, เจœเฉ‹ เจกเจฟเจตเฉˆเจฒเจชเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจ‰เจนเจจเจพเจ‚ เจฆเฉ€เจ†เจ‚ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจ…เจคเฉ‡ เจชเจฒเฉฑเจ—เจ‡เจจเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฆเจฟเฉฐเจฆเจพ เจนเฉˆ (JKube เจ•เจฟเฉฑเจŸ เจ‡เจ•เฉฑเจ เฉ‡ เจฎเจฟเจฒ เจ•เฉ‡ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจฎเจพเจตเฉ‡เจจ เจชเจฒเฉฑเจ—เจ‡เจจ เจœ OpenShift Maven เจชเจฒเฉฑเจ—เจ‡เจจ) เจšเจฟเฉฑเจคเจฐ เจตเจฟเฉฑเจš เจšเจฟเฉฑเจคเจฐ เจฆเฉ€ เจชเจพเจฒเจฃเจพ เจ•เจฐเจ•เฉ‡ เจ•เฉฐเจŸเฉ‡เจจเจฐ เจ…เจคเฉ‡ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ-เจธเจฌเฉฐเจงเจค เจ•เจพเจฐเจตเจพเจˆเจ†เจ‚ เจจเฉ‚เฉฐ เจ…เจธเจพเจจเฉ€ เจจเจพเจฒ เจ•เจฐเจจ เจฒเจˆเฅค 2.

เจ‡เจธ เจฒเฉ‡เจ– เจฆเฉ‡ เจฌเจพเจ•เฉ€ เจนเจฟเฉฑเจธเฉ‡ เจตเจฟเฉฑเจš, เจ…เจธเฉ€เจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจฆเจฟเจ–เจพเจตเจพเจ‚เจ—เฉ‡ เจ•เจฟ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจฎเจพเจตเฉ‡เจจ เจชเจฒเฉฑเจ—เจ‡เจจ เจจเจพเจฒ Eclipse JKube เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจตเจพเจคเจพเจตเจฐเจฃ เจตเจฟเฉฑเจš เจœเจพเจตเจพ เจตเจฟเจ•เจพเจธ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจธเจฐเจฒ เจฌเจฃเจพเจ‡เจ† เจœเจพเจตเฉ‡เฅค

Eclipse JKube เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ เจ•เจฒเจพเจ‰เจก เจตเจฟเจ•เจพเจธ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ†

เจ†เจ‰ เจšเจฟเฉฑเจคเจฐ 2 เจคเฉ‹เจ‚ เจ•เจฒเจพเจ‰เจก เจฒเจˆ เจ‡เฉฑเจ• เจฅเฉ‹เฉœเฉ€ เจธเฉ‹เจงเฉ€ เจœเจพเจตเจพ เจตเจฟเจ•เจพเจธ เจธเจ•เฉ€เจฎ 'เจคเฉ‡ เจตเจฟเจšเจพเจฐ เจ•เจฐเฉ€เจ, เจ‡เจธ เจตเจฟเฉฑเจš Eclipse JKube เจ…เจคเฉ‡ Kubernetes Maven Plugin เจจเฉ‚เฉฐ เจชเฉ‡เจธเจผ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจšเจฟเฉฑเจคเจฐ เจตเจฟเฉฑเจš เจฆเจฟเจ–เจพเจ‡เจ† เจ—เจฟเจ† เจนเฉˆเฅค 3.

Eclipse JKube เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจฒเจˆ เจœเจพเจตเจพ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจฆเจพ เจตเจฟเจ•เจพเจธ เจ•เจฐเจจเจพ

เจšเฉŒเจฒ. 3. Eclipse JKube เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ เจ•เจฒเจพเจ‰เจก เจฒเจˆ เจœเจพเจตเจพ เจตเจฟเจ•เจพเจธ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ†เฅค

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

เจŸเฉ‡เจฌเจฒ 1. Eclipse JKube เจกเจฟเจซเฉŒเจฒเจŸ เจ•เจพเจฐเจœเฅค

เจ‰เจฆเฉ‡เจธเจผ
เจธเจŸเฉ‡เจœ
เจตเฉ‡เจฐเจตเจพ

k8s:เจฌเจฟเจฒเจก
PRE_INTEGRATION_TEST
เจกเฉŒเจ•เจฐ เจšเจฟเฉฑเจคเจฐ เจฌเจฃเจพเจ‰เจฃเจพ

k8s: เจงเฉฑเจ•เจพ
INSTALL
เจฐเจœเจฟเจธเจŸเจฐเฉ€ เจตเจฟเฉฑเจš เจกเฉŒเจ•เจฐ เจšเจฟเฉฑเจคเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจ…เฉฑเจชเจฒเฉ‹เจก เจ•เจฐเจจเจพ

k8s: เจธเจฐเฉ‹เจค
PROCESS_RESOURCES
K8s เจฎเฉˆเจจเฉ€เจซเฉˆเจธเจŸ เจฌเจฃเจพเจ‰เจฃเจพ

k8s: เจฒเจพเจ—เฉ‚ เจ•เจฐเฉ‹
เจ•เฉฐเจชเจพเจ‡เจฒ เจ•เจฐเฉ‹
K8s 'เจคเฉ‡ เจคเจฟเจ†เจฐ เจ•เฉ€เจคเฉ‡ เจฎเฉˆเจจเฉ€เจซเฉˆเจธเจŸเจพเจ‚ เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจเจพ

k8s: undeploy
เจ…เจฃเจกเจฟเจชเจฒเฉ‹เจ
K8s เจธเจฐเฉ‹เจคเจพเจ‚ เจจเฉ‚เฉฐ เจนเจŸเจพเจ‰เจฃเจพ เจœเฉ‹ k8s:apply เจ…เจคเฉ‡ k8s:deploy เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจคเฉˆเจจเจพเจค เจ•เฉ€เจคเฉ‡ เจ—เจ เจธเจจ

เจจเฉ‹เจŸ: เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจจเจนเฉ€เจ‚ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจ•เจฟ เจ•เฉฐเจฎ เจ‡เจนเจจเจพเจ‚ เจตเจฟเจšเจพเจฐเจงเจพเจฐเจ• เจกเจฟเจซเฉŒเจฒเจŸเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ, เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจ†เจชเจฃเฉ‡ เจฒเจˆ เจ‡เจ•เจฒเจฟเจชเจธ เจœเฉ‡เจ•เจฟเจŠเจฌ เจจเฉ‚เฉฐ เจนเฉฑเจฅเฉ€เจ‚ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‡เจน เจ‡เจธ เจฆเฉเจ†เจฐเจพ เจธเฉฐเจฐเจšเจจเจพ เจฆเจพ เจธเจฎเจฐเจฅเจจ เจ•เจฐเจฆเจพ เจนเฉˆ XML ะธ เจธเจฐเฉ‹เจค.

เจ†เจ‰ เจนเฉเจฃ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจฆเฉ‡ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจฆเฉ‡ เจธเจฎเฉ‡เจ‚ Eclipse JKube เจ…เจคเฉ‡ Kubernetes Maven Plugin เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจฆเฉ€เจ†เจ‚ เจ‰เจฆเจพเจนเจฐเจจเจพเจ‚ เจฆเฉ‡เจ–เฉ€เจเฅค

Eclipse JKube เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ Kubernetes 'เจคเฉ‡ เจ‡เฉฑเจ• Java เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจจเฉ‚เฉฐ เจคเฉˆเจจเจพเจค เจ•เจฐเจจเจพ

เจ‡เจธ เจ‰เจฆเจพเจนเจฐเจจ เจตเจฟเฉฑเจš เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจธเจงเจพเจฐเจจ เจœเจพเจตเจพ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจ•เจฒเฉฑเจธเจŸเจฐ 'เจคเฉ‡ เจคเจพเจ‡เจจเจพเจค เจ•เจฐเจพเจ‚เจ—เฉ‡ เจฎเจฟเจจเฉ€เจ•เฉ‚เจฌเฉ‡ Eclipse JKube เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ. Kubernetes Maven เจชเจฒเฉฑเจ—เจ‡เจจ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ, เจ…เจธเฉ€เจ‚ เจฌเจฟเจจเจพเจ‚ เจ•เจฟเจธเฉ‡ เจธเฉฐเจฐเจšเจจเจพ เจจเฉ‚เฉฐ เจฒเจฟเจ–เจฃ เจฆเฉ‡ เจคเฉˆเจจเจพเจคเฉ€ เจฎเจพเจชเจฆเฉฐเจก เจธเฉˆเฉฑเจŸ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเจพเจ‚เฅค

เจ‡เฉฑเจ• เจ‰เจฆเจพเจนเจฐเจจ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจตเจœเฉ‹เจ‚ เจ…เจธเฉ€เจ‚ เจตเจฐเจคเจฆเฉ‡ เจนเจพเจ‚ เจธเจงเจพเจฐเจจ เจฌเฉ‡เจคเจฐเจคเฉ€เจฌ เจจเฉฐเจฌเจฐ เจœเจจเจฐเฉ‡เจŸเจฐ, เจœเฉ‹ /เจฐเฉˆเจ‚เจกเจฎ เจเจ‚เจกเจชเฉเจ†เจ‡เฉฐเจŸ 'เจคเฉ‡ JSON เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจชเฉˆเจฆเจพ เจ•เจฐเจฆเจพ เจนเฉˆ:

~/work/repos/eclipse-jkube-demo-project : $ curl localhost:8080/random | jq .
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    45    0    45    0     0    818      0 --:--:-- --:--:-- --:--:--   818
{
  "id": "e80a4d10-c79b-4b9a-aaac-7c286cb37f3c"
}

เจ•เจฆเจฎ 1. Kubernetes Maven เจชเจฒเฉฑเจ—เจ‡เจจ เจจเฉ‚เฉฐ เจกเจพเจŠเจจเจฒเฉ‹เจก เจ•เจฐเฉ‹

Kubernetes Maven เจชเจฒเฉฑเจ—เจ‡เจจ เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€ เจตเจฟเฉฑเจš เจนเฉˆ เจฎเจพเจตเฉ‡เจจ เจธเฉˆเจ‚เจŸเจฐเจฒ เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€. Eclipse JKube เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจฒเจˆ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจฎเจพเจตเฉ‡เจจ เจชเจฒเฉฑเจ—เจ‡เจจ เจจเฉ‚เฉฐ เจ†เจชเจฃเฉ‡ pom.xml เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจจเจฟเจฐเจญเจฐเจคเจพ เจตเจœเฉ‹เจ‚ เจœเฉ‹เฉœเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ:

<plugin>
     <groupId>org.eclipse.jkube</groupId>
     <artifactId>kubernetes-maven-plugin</artifactId>
     <version>${jkube.version}</version>
 </plugin>

เจœเฉ‡เจ•เจฐ เจธเจผเฉเฉฑเจง เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจฆเฉ€ เจฌเจœเจพเจ OpenShift เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ, เจคเจพเจ‚ pom.xml เจจเฉ‚เฉฐ เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจธเฉ‹เจงเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ:

<plugin>
     <groupId>org.eclipse.jkube</groupId>
     <artifactId>openshift-maven-plugin</artifactId>
     <version>${jkube.version}</version>
 </plugin>

เจ•เจฆเจฎ 2. เจกเฉŒเจ•เจฐ เจšเจฟเฉฑเจคเจฐ เจฌเจฃเจพเจ“

เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจฆเฉ€ JAR เจซเจพเจˆเจฒ เจจเฉ‚เฉฐ mvn เจชเฉˆเจ•เฉ‡เจœ เจ•เจฎเจพเจ‚เจก เจจเจพเจฒ เจฌเจฃเจพเจ‡เจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจซเจฟเจฐ mvn เจ—เฉ‹เจฒ เจŸเจพเจธเจ• k8s:build เจจเฉ‚เฉฐ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจฆเจพ เจกเฉŒเจ•เจฐ เจšเจฟเฉฑเจคเจฐ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจตเจฐเจคเจฟเจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค เจจเฉ‹เจŸ เจ•เจฐเฉ‹ เจ•เจฟ เจ…เจธเฉ€เจ‚ เจ‡เจธ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ เจฆเฉ‡ เจจเจพเจฒ เจกเจฟเจซเฉŒเจฒเจŸ เจšเจฟเฉฑเจคเจฐ เจจเจพเจฎ เจจเฉ‚เฉฐ เจ“เจตเจฐเจฐเจพเจˆเจก เจ•เจฐ เจฆเจฟเฉฑเจคเจพ เจนเฉˆ:

<jkube.generator.name>docker.io/rohankanojia/random-generator:${project.version}</jkube.generator.name>

เจšเจฟเฉฑเจคเจฐ เจฌเจฃเจพเจ‰เจฃ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจน เจฏเจ•เฉ€เจจเฉ€ เจฌเจฃเจพเจ‰เจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ เจ•เจฟ เจกเฉŒเจ•เจฐ เจกเฉˆเจฎเจจ เจธเจนเฉ€ เจขเฉฐเจ— เจจเจพเจฒ เจธเจพเจนเจฎเจฃเฉ‡ เจ†เจ‡เจ† เจนเฉˆเฅค เจ‡เจน เจนเฉ‡เจ  เจฆเจฟเฉฑเจคเฉ€ เจ•เจฎเจพเจ‚เจก เจจเจพเจฒ เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ:

$ eval $(minikube docker-env)

เจซเจฟเจฐ เจ…เจธเฉ€เจ‚ mvn k8s:build เจ•เจฎเจพเจ‚เจก เจฆเจพเจ–เจฒ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚, เจ…เจคเฉ‡ เจ‡เจน เจ‰เจน เจนเฉˆ เจœเฉ‹ เจ…เจธเฉ€เจ‚ Eclipse JKube เจฌเจฟเจฒเจก เจŸเจพเจธเจ• เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจกเฉŒเจ•เจฐ เจšเจฟเฉฑเจคเจฐ เจฌเจฃเจพเจ‰เจฃ เจตเฉ‡เจฒเฉ‡ เจธเจ•เฉเจฐเฉ€เจจ 'เจคเฉ‡ เจฆเฉ‡เจ–เจพเจ‚เจ—เฉ‡:

~/work/repos/eclipse-jkube-demo-project : $ mvn k8s:build
[INFO] Scanning for projects...
[INFO] 
[INFO] ----------------------< meetup:random-generator >-----------------------
[INFO] Building random-generator 0.0.1
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- kubernetes-maven-plugin:1.0.0-rc-1:build (default-cli) @ random-generator ---
[INFO] k8s: Running in Kubernetes mode
[INFO] k8s: Building Docker image in Kubernetes mode
[INFO] k8s: Running generator spring-boot
[INFO] k8s: spring-boot: Using Docker image quay.io/jkube/jkube-java-binary-s2i:0.0.7 as base / builder
[INFO] k8s: [docker.io/rohankanojia/random-generator:0.0.1] "spring-boot": Created docker-build.tar in 251 milliseconds
[INFO] k8s: [docker.io/rohankanojia/random-generator:0.0.1] "spring-boot": Built image sha256:a20e5
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  5.053 s
[INFO] Finished at: 2020-08-10T11:28:23+05:30
[INFO] ------------------------------------------------------------------------
~/work/repos/eclipse-jkube-demo-project : $

เจ•เจฆเจฎ 3. เจšเจฟเฉฑเจคเจฐ เจจเฉ‚เฉฐ เจกเฉŒเจ•เจฐ เจฐเจœเจฟเจธเจŸเจฐเฉ€ เจตเจฟเฉฑเจš เจ…เฉฑเจชเจฒเฉ‹เจก เจ•เจฐเฉ‹

เจœเจฆเฉ‹เจ‚ เจ…เจธเฉ€เจ‚ เจกเฉŒเจ•เจฐ เจšเจฟเฉฑเจคเจฐ เจจเฉ‚เฉฐ เจชเฉเจธเจผ เจฐเจœเจฟเจธเจŸเจฐเฉ€ เจฆเฉ€ เจธเฉฐเจฐเจšเจจเจพ เจจเจพเจฒ เจฌเจฃเจพเจ‡เจ† เจนเฉˆ (เจธเจพเจกเฉ‡ เจ•เฉ‡เจธ เจตเจฟเฉฑเจš เจ‡เจน docker.io เจนเฉˆ), เจ…เจธเฉ€เจ‚ เจ‡เจธ เจšเจฟเฉฑเจคเจฐ เจจเฉ‚เฉฐ เจฐเจœเจฟเจธเจŸเจฐเฉ€ เจจเฉ‚เฉฐ เจญเฉ‡เจœ เจธเจ•เจฆเฉ‡ เจนเจพเจ‚เฅค เจ‡เจน เจ‰เจน เจนเฉˆ เจœเฉ‹ เจธเจพเจกเฉ‡ เจฆเฉเจ†เจฐเจพ Eclipse JKube เจจเฉ‚เฉฐ mvn k8s:เจชเฉเจธเจผ เจชเฉเจธเจผ เจŸเจพเจธเจ• เจ•เจฐเจจ เจฒเจˆ เจ•เจนเจฟเจฃ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจ•เฉ€เจคเจพ เจœเจพเจตเฉ‡เจ—เจพ:

~/work/repos/eclipse-jkube-demo-project : $ mvn k8s:push
[INFO] Scanning for projects...
[INFO] 
[INFO] ----------------------< meetup:random-generator >-----------------------
[INFO] Building random-generator 0.0.1
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- kubernetes-maven-plugin:1.0.0-rc-1:push (default-cli) @ random-generator ---
[INFO] k8s: Running in Kubernetes mode
[INFO] k8s: Building Docker image in Kubernetes mode
[INFO] k8s: Running generator spring-boot
[INFO] k8s: spring-boot: Using Docker image quay.io/jkube/jkube-java-binary-s2i:0.0.7 as base / builder
[INFO] k8s: The push refers to repository [docker.io/rohankanojia/random-generator]
5dcd9556710f: Layer already exists 
b7139ad07aa8: Layer already exists 
b6f081e4b2b6: Layer already exists 
d8e1f35641ac: Layer already exists 
[INFO] k8s: 0.0.1: digest: sha256:9f9eda2a13b8cab1d2c9e474248500145fc09e2922fe3735692f9bda4c76002d size: 1162
[INFO] k8s: Pushed docker.io/rohankanojia/random-generator:0.0.1 in 7 seconds 
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  11.222 s
[INFO] Finished at: 2020-08-10T11:35:37+05:30
[INFO] ------------------------------------------------------------------------
~/work/repos/eclipse-jkube-demo-project : $ 

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

Eclipse JKube เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจฒเจˆ เจœเจพเจตเจพ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจฆเจพ เจตเจฟเจ•เจพเจธ เจ•เจฐเจจเจพ

เจšเฉŒเจฒ. 4. เจฐเจœเจฟเจธเจŸเจฐเฉ€ เจจเฉ‚เฉฐ เจญเฉ‡เจœเฉ€ เจ—เจˆ เจคเจธเจตเฉ€เจฐ เจกเฉŒเจ•เจฐ เจนเฉฑเจฌ เจตเจฟเฉฑเจš เจฆเจฟเจ–เจพเจˆ เจฆเจฟเฉฑเจคเฉ€เฅค

เจ•เจฆเจฎ 4. เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจฒเจˆ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจธเจฐเฉ‹เจค เจฎเฉˆเจจเฉ€เจซเฉˆเจธเจŸ เจคเจฟเจ†เจฐ เจ•เจฐเฉ‹

เจ‡เจธ เจฒเจˆ, เจ…เจธเฉ€เจ‚ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจšเจฟเฉฑเจคเจฐ เจจเฉ‚เฉฐ เจ‡เจ•เฉฑเจ เจพ เจ•เจฐ เจฒเจฟเจ† เจนเฉˆ, เจนเฉเจฃ เจธเจพเจจเฉ‚เฉฐ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจฎเฉˆเจจเฉ€เจซเฉˆเจธเจŸ เจฒเจฟเจ–เจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค เจ…เจœเจฟเจนเจพ เจ•เจฐเจจ เจฒเจˆ, Eclipse JKube เจ•เฉ‹เจฒ เจ‡เฉฑเจ• เจ•เฉฐเจฎ เจนเฉˆ เจœเฉ‹ เจ…เฉฐเจกเจฐเจฒเจพเจˆเฉฐเจ— Java เจซเจฐเฉ‡เจฎเจตเจฐเจ• (เจฌเจธเฉฐเจค เจฌเฉ‚เจŸ, เจ•เจตเจพเจ•เจฐเจธ, Vert.x เจœเจพเจ‚ เจ•เฉเจ เจนเฉ‹เจฐ)เฅค เจคเฉเจธเฉ€เจ‚ เจ‡เฉฑเจ• XML เจธเฉฐเจฐเจšเจจเจพ เจซเจพเจˆเจฒ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจ…เจคเฉ‡ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจซเฉ‹เจฒเจกเจฐ src/main/jkube เจตเจฟเฉฑเจš เจ•เฉฑเจšเฉ‡ เจŸเฉเจ•เฉœเฉ‡ (เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ‡ เจธเจฐเฉ‹เจค เจฎเฉˆเจจเฉ€เจซเฉˆเจธเจŸ เจฆเฉ‡ เจŸเฉเจ•เฉœเฉ‡) เจฐเฉฑเจ– เจ•เฉ‡ เจตเฉ€ เจฎเฉˆเจจเฉ€เจซเฉˆเจธเจŸ เจจเฉ‚เฉฐ เจ…เจจเฉเจ•เฉ‚เจฒเจฟเจค เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค เจ‡เจธ เจธเจฅเจฟเจคเฉ€ เจตเจฟเฉฑเจš, เจคเฉเจนเจพเจกเฉ€ เจธเฉฐเจฐเจšเจจเจพ เจจเฉ‚เฉฐ เจคเจฟเจ†เจฐ เจ•เฉ€เจคเฉ‡ เจฎเฉˆเจจเฉ€เจซเฉˆเจธเจŸ เจตเจฟเฉฑเจš เจ…เฉฑเจชเจฒเฉ‹เจก เจ•เฉ€เจคเจพ เจœเจพเจตเฉ‡เจ—เจพเฅค

เจธเจพเจกเฉ€ เจ‰เจฆเจพเจนเจฐเจจ เจตเจฟเฉฑเจš, เจ…เจธเฉ€เจ‚ เจธเจญ เจ•เฉเจ เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจ›เฉฑเจก เจฆเจฟเฉฐเจฆเฉ‡ เจนเจพเจ‚, เจ…เจคเฉ‡ เจ‡เจธเจฒเจˆ Eclipse JKube เจกเจฟเจซเจพเจฒเจŸ เจคเฉˆเจจเจพเจคเฉ€ เจฒเจˆ เจ…เจคเฉ‡ ClusterIP เจ•เจฟเจธเจฎ เจตเจพเจฒเฉ€ เจธเฉ‡เจตเจพ เจฒเจˆ เจ‡เฉฑเจ• เจฎเฉˆเจจเฉ€เจซเฉˆเจธเจŸ เจคเจฟเจ†เจฐ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจ…เจคเฉ‡ เจ•เฉ‡เจตเจฒ เจคเจฆ เจนเฉ€ เจ…เจธเฉ€เจ‚ เจธเฉ‡เจตเจพ เจฆเฉ€ เจ•เจฟเจธเจฎ เจจเฉ‚เฉฐ NodePort เจตเจฟเฉฑเจš เจฌเจฆเจฒเจฃ เจฒเจˆ เจธเฉ‡เจตเจพ เจฎเฉˆเจจเฉ€เจซเฉˆเจธเจŸ เจจเฉ‚เฉฐ เจธเฉ‹เจงเจฆเฉ‡ เจนเจพเจ‚เฅค เจคเฉเจธเฉ€เจ‚ เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเฉ€ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจกเจฟเจซเฉŒเจฒเจŸ เจตเจฟเจตเจนเจพเจฐ เจจเฉ‚เฉฐ เจ“เจตเจฐเจฐเจพเจˆเจก เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹:

<jkube.enricher.jkube-service.type>NodePort</jkube.enricher.jkube-service.type>

Eclipse JKube เจจเฉ‚เฉฐ mvn k8s:resource เจธเจฐเฉ‹เจค เจ•เจพเจฐเจœ เจ•เจฐเจจ เจฒเจˆ เจ•เจนเจฟเจฃ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจธเจ•เจฐเฉ€เจจ เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจฆเจฟเจ–เจพเจˆ เจฆเจฟเฉฐเจฆเฉ€ เจนเฉˆเฅค

~/work/repos/eclipse-jkube-demo-project : $ mvn k8s:resource
[INFO] Scanning for projects...
[INFO] 
[INFO] ----------------------< meetup:random-generator >-----------------------
[INFO] Building random-generator 0.0.1
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- kubernetes-maven-plugin:1.0.0-rc-1:resource (default-cli) @ random-generator ---
[INFO] k8s: Running generator spring-boot
[INFO] k8s: spring-boot: Using Docker image quay.io/jkube/jkube-java-binary-s2i:0.0.7 as base / builder
[INFO] k8s: jkube-controller: Adding a default Deployment
[INFO] k8s: jkube-service: Adding a default service 'random-generator' with ports [8080]
[INFO] k8s: jkube-healthcheck-spring-boot: Adding readiness probe on port 8080, path='/actuator/health', scheme='HTTP', with initial delay 10 seconds
[INFO] k8s: jkube-healthcheck-spring-boot: Adding liveness probe on port 8080, path='/actuator/health', scheme='HTTP', with initial delay 180 seconds
[INFO] k8s: jkube-revision-history: Adding revision history limit to 2
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  3.344 s
[INFO] Finished at: 2020-08-10T11:38:11+05:30
[INFO] ------------------------------------------------------------------------
~/work/repos/eclipse-jkube-demo-project : $ ls target/classes/META-INF/jkube/kubernetes
random-generator-deployment.yml  random-generator-service.yml
~/work/repos/eclipse-jkube-demo-project : $ cat target/classes/META-INF/jkube/kubernetes/random-generator-deployment.yml | head -n10
---
apiVersion: apps/v1
kind: Deployment
metadata:
  annotations:
    jkube.io/git-url: [email protected]:rohanKanojia/eclipse-jkube-demo-project.git
    jkube.io/git-commit: 1ef9ef2ef7a6fcbf8eb64c293f26f9c42d026512
    jkube.io/git-branch: master
    jkube.io/scm-url: https://github.com/spring-projects/spring-boot/spring-boot-starter-parent/random-generator
    jkube.io/scm-tag: HEAD
~/work/repos/eclipse-jkube-demo-project : $

เจ•เจฆเจฎ 5. เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจจเฉ‚เฉฐ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจ•เจฒเฉฑเจธเจŸเจฐ เจตเจฟเฉฑเจš เจคเฉˆเจจเจพเจค เจ•เจฐเฉ‹

เจนเฉเจฃ เจ…เจธเฉ€เจ‚ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจ เจฒเจˆ เจคเจฟเจ†เจฐ เจนเจพเจ‚: เจ…เจธเฉ€เจ‚ เจ‡เจธเจฆเจพ เจšเจฟเฉฑเจคเจฐ เจคเจฟเจ†เจฐ เจ•เฉ€เจคเจพ เจนเฉˆ เจ…เจคเฉ‡ เจซเจฟเจฐ เจธเจตเฉˆเจšเจฒเจฟเจค เจคเฉŒเจฐ 'เจคเฉ‡ เจธเจฐเฉ‹เจค เจฎเฉˆเจจเฉ€เจซเฉˆเจธเจŸ เจคเจฟเจ†เจฐ เจ•เฉ€เจคเฉ‡ เจนเจจเฅค เจนเฉเจฃ เจ‡เจน เจธเจญ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจ•เจฒเฉฑเจธเจŸเจฐ 'เจคเฉ‡ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจเจพ เจฌเจพเจ•เฉ€ เจนเฉˆเฅค เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจ เจฒเจˆ, เจคเฉเจธเฉ€เจ‚ เจฌเฉ‡เจธเจผเจ•, kubectl apply -f เจ•เจฎเจพเจ‚เจก เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจชเจฐ เจชเจฒเฉฑเจ—เจ‡เจจ เจธเจพเจกเฉ‡ เจฒเจˆ เจ…เจœเจฟเจนเจพ เจ•เจฐ เจธเจ•เจฆเฉ€ เจนเฉˆเฅค เจ‡เจน เจ‰เจน เจนเฉˆ เจœเฉ‹ เจธเจ•เฉเจฐเฉ€เจจ 'เจคเฉ‡ เจฆเจฟเจ–เจพเจˆ เจฆเฉ‡เจตเฉ‡เจ—เจพ เจœเจฆเฉ‹เจ‚ เจ…เจธเฉ€เจ‚ Eclipse JKube เจจเฉ‚เฉฐ mvn k8s:apply apply task เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจฃ เจฒเจˆ เจ•เจนเจพเจ‚เจ—เฉ‡:

~/work/repos/eclipse-jkube-demo-project : $ mvn k8s:apply
[INFO] Scanning for projects...
[INFO] 
[INFO] ----------------------< meetup:random-generator >-----------------------
[INFO] Building random-generator 0.0.1
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- kubernetes-maven-plugin:1.0.0-rc-1:apply (default-cli) @ random-generator ---
[INFO] k8s: Using Kubernetes at https://192.168.39.145:8443/ in namespace default with manifest /home/rohaan/work/repos/eclipse-jkube-demo-project/target/classes/META-INF/jkube/kubernetes.yml 
[INFO] k8s: Using namespace: default
[INFO] k8s: Creating a Service from kubernetes.yml namespace default name random-generator
[INFO] k8s: Created Service: target/jkube/applyJson/default/service-random-generator.json
[INFO] k8s: Creating a Deployment from kubernetes.yml namespace default name random-generator
[INFO] k8s: Created Deployment: target/jkube/applyJson/default/deployment-random-generator.json
[INFO] k8s: HINT: Use the command `kubectl get pods -w` to watch your pods start up
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  7.306 s
[INFO] Finished at: 2020-08-10T11:40:57+05:30
[INFO] ------------------------------------------------------------------------
~/work/repos/eclipse-jkube-demo-project : $ kubectl get pods -w
NAME                                                     READY   STATUS             RESTARTS   AGE
random-generator-58b7847d7f-9m9df                        0/1     Running            0          7s
random-generator-58b7847d7f-9m9df                        1/1     Running            0          17s
^C~/work/repos/eclipse-jkube-demo-project : $ kubectl get svc
NAME                                    TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)           AGE
io-openliberty-sample-getting-started   NodePort    10.110.4.104    <none>        9080:30570/TCP    44h
kubernetes                              ClusterIP   10.96.0.1       <none>        443/TCP           18d
random-generator                        NodePort    10.97.172.147   <none>        8080:32186/TCP    22s
~/work/repos/eclipse-jkube-demo-project : $ curl `minikube ip`:32186/random | jq .
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    45    0    45    0     0   1800      0 --:--:-- --:--:-- --:--:--  1875
{
  "id": "42e5571f-a20f-44b3-8184-370356581d10"
}

เจ•เจฆเจฎ 6. เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจ•เจฒเฉฑเจธเจŸเจฐ เจคเฉ‹เจ‚ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจจเฉ‚เฉฐ เจนเจŸเจพเจ“

เจ…เจœเจฟเจนเจพ เจ•เจฐเจจ เจฒเจˆ, เจ…เจจเจกเจฟเจชเจฒเจพเจ‡ เจŸเจพเจธเจ• เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ, เจœเฉ‹ เจธเจฟเจฐเจซเจผ เจชเจฟเจ›เจฒเฉ‡ เจชเจ— เจตเจฟเฉฑเจš เจฒเจพเจ—เฉ‚ เจ•เฉ€เจคเฉ‡ เจ—เจ เจธเจพเจฐเฉ‡ เจธเจฐเฉ‹เจคเจพเจ‚ เจจเฉ‚เฉฐ เจนเจŸเจพเจ‰เจ‚เจฆเจพ เจนเฉˆ, เจญเจพเจต, เจœเจฆเฉ‹เจ‚ เจ•เจพเจฐเจœ เจ•เจพเจฐเจœ เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจ‡เจน เจ‰เจน เจนเฉˆ เจœเฉ‹ เจ…เจธเฉ€เจ‚ เจธเจ•เฉเจฐเฉ€เจจ 'เจคเฉ‡ เจฆเฉ‡เจ–เจพเจ‚เจ—เฉ‡ เจœเจฆเฉ‹เจ‚ เจ…เจธเฉ€เจ‚ Eclipse JKube เจจเฉ‚เฉฐ mvn k8s:undeploy undeploy เจŸเจพเจธเจ• เจ•เจฐเจจ เจฒเจˆ เจ•เจนเจพเจ‚เจ—เฉ‡:

~/work/repos/eclipse-jkube-demo-project : $ kubectl get all
NAME                                    READY   STATUS    RESTARTS   AGE
pod/random-generator-58b7847d7f-9m9df   1/1     Running   0          5m21s

NAME                       TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
service/kubernetes         ClusterIP   10.96.0.1       <none>        443/TCP          18d
service/random-generator   NodePort    10.97.172.147   <none>        8080:32186/TCP   5m21s

NAME                               READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/random-generator   1/1     1            1           5m21s

NAME                                          DESIRED   CURRENT   READY   AGE
replicaset.apps/random-generator-58b7847d7f   1         1         1       5m21s
~/work/repos/eclipse-jkube-demo-project : $ mvn k8s:undeploy
[INFO] Scanning for projects...
[INFO] 
[INFO] ----------------------< meetup:random-generator >-----------------------
[INFO] Building random-generator 0.0.1
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- kubernetes-maven-plugin:1.0.0-rc-1:undeploy (default-cli) @ random-generator ---
[INFO] k8s: Using Kubernetes at https://192.168.39.145:8443/ in namespace default with manifest /home/rohaan/work/repos/eclipse-jkube-demo-project/target/classes/META-INF/jkube/kubernetes.yml 
[INFO] k8s: Using namespace: default
[INFO] k8s: Deleting resource Deployment default/random-generator
[INFO] k8s: Deleting resource Service default/random-generator
[INFO] k8s: HINT: Use the command `kubectl get pods -w` to watch your pods start up
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  3.412 s
[INFO] Finished at: 2020-08-10T11:46:22+05:30
[INFO] ------------------------------------------------------------------------
~/work/repos/eclipse-jkube-demo-project : $ kubectl get pods -w
^C~/work/repos/eclipse-jkube-demo-project : $ kubectl get all
NAME                 TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
service/kubernetes   ClusterIP   10.96.0.1    <none>        443/TCP   18d
~/work/repos/eclipse-jkube-demo-project : $

เจคเฉเจธเฉ€เจ‚ Eclipse JKube เจจเจพเจฒ เจนเฉ‹เจฐ เจ•เฉ€ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹

เจ‡เจธ เจฒเจˆ, เจ…เจธเฉ€เจ‚ Eclipse JKube เจ…เจคเฉ‡ Kubernetes Maven Plugin เจฆเฉ‡ เจฎเฉเฉฑเจ– เจŸเฉ€เจšเฉ‡ เจฆเฉ‡ เจ•เฉฐเจฎเจพเจ‚ เจจเฉ‚เฉฐ เจฆเฉ‡เจ–เจฟเจ†, เจœเฉ‹ เจ•เจฟ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎ เจฒเจˆ เจœเจพเจตเจพ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจฆเฉ‡ เจตเจฟเจ•เจพเจธ เจฆเฉ€ เจธเจนเฉ‚เจฒเจค เจฆเจฟเฉฐเจฆเฉ‡ เจนเจจเฅค เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจ‡เจนเจจเจพเจ‚ เจ•เจพเจฐเจœเจพเจ‚ เจจเฉ‚เฉฐ เจ•เฉ€-เจฌเฉ‹เจฐเจก เจคเฉ‹เจ‚ เจฒเจ—เจพเจคเจพเจฐ เจฆเจพเจ–เจฒ เจจเจนเฉ€เจ‚ เจ•เจฐเจจเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจชเจฒเฉฑเจ—เจ‡เจจ เจธเฉฐเจฐเจšเจจเจพ เจตเจฟเฉฑเจš เจฒเจฟเจ– เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚:

<plugin>
     <groupId>org.eclipse.jkube</groupId>
     <artifactId>kubernetes-maven-plugin</artifactId>
     <version>${project.version}</version>
     <executions>
         <execution>
             <goals>
                  <goal>build</goal>
                  <goal>resource</goal>
                  <goal>apply</goal>
             </goals>
         </execution>
     </executions>
</plugin>

เจ‡เจน เจ•เจฟเจนเจพ เจœเจพเจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ เจ•เจฟ เจ‡เจธ เจฒเฉ‡เจ– เจตเจฟเฉฑเจš เจ…เจธเฉ€เจ‚ เจ‰เจนเจจเจพเจ‚ เจธเจพเจฐเฉ‡ เจŸเฉ€เจšเฉ‡ เจ•เจพเจฐเจœเจพเจ‚ 'เจคเฉ‡ เจตเจฟเจšเจพเจฐ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ เจนเฉˆ เจœเฉ‹ Eclipse JKube เจ…เจคเฉ‡ Kubernetes Maven Plugin เจตเจฟเฉฑเจš เจนเจจ, เจ‡เจธ เจฒเจˆ เจ…เจธเฉ€เจ‚ เจŸเฉ‡เจฌเจฒ 2 เจตเจฟเฉฑเจš เจตเจพเจงเฉ‚ เจ•เจพเจฐเจœเจพเจ‚ เจฆเฉ€ เจ‡เฉฑเจ• เจธเฉ‚เจšเฉ€ เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ เจœเฉ‹ เจคเฉเจนเจพเจกเฉ‡ เจฒเจˆ เจฒเจพเจญเจฆเจพเจ‡เจ• เจตเฉ€ เจนเฉ‹ เจธเจ•เจฆเฉ‡ เจนเจจเฅค

เจŸเฉ‡เจฌเจฒ 2. เจตเจพเจงเฉ‚ เจ—เฉเจฐเจนเจฟเจฃ JKube เจŸเฉ€เจšเจพ เจ•เจพเจฐเจœเฅค

เจ‰เจฆเฉ‡เจธเจผ
เจธเจŸเฉ‡เจœ
เจตเฉ‡เจฐเจตเจพ

k8s:log
เจชเฉœเจคเจพเจฒ
เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ 'เจคเฉ‡ เจšเฉฑเจฒ เจฐเจนเฉ€ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจคเฉ‹เจ‚ เจฒเฉŒเจ— เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจเจพเฅค

k8s:เจกเฉ€เจฌเฉฑเจ—
เจชเฉˆเจ•เฉ‡เจœ
เจ‡เฉฑเจ• เจกเฉ€เจฌเฉฑเจ— เจชเฉ‹เจฐเจŸ เจ–เฉ‹เจฒเฉเจนเฉ‹ เจคเจพเจ‚ เจœเฉ‹ เจคเฉเจธเฉ€เจ‚ IDE เจคเฉ‹เจ‚ เจธเจฟเฉฑเจงเฉ‡ Kubernetes 'เจคเฉ‡ เจšเฉฑเจฒ เจฐเจนเฉ€ เจ†เจชเจฃเฉ€ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจจเฉ‚เฉฐ เจกเฉ€เจฌเฉฑเจ— เจ•เจฐ เจธเจ•เฉ‹เฅค

k8s: deploy
INSTALL
เจ‡เฉฐเจธเจŸเฉŒเจฒ เจŸเจพเจธเจ• เจฒเจˆ เจซเฉ‹เจฐเจ• เจฌเจฃเจพเจ‰เจฃเจพ เจ…เจคเฉ‡ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจ•เจฒเฉฑเจธเจŸเจฐ 'เจคเฉ‡ เจคเจฟเจ†เจฐ เจ•เฉ€เจคเฉ‡ เจฎเฉˆเจจเฉ€เจซเฉˆเจธเจŸ เจจเฉ‚เฉฐ เจ‰เจธเฉ‡ เจคเจฐเฉเจนเจพเจ‚ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจเจพ เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจ•เจพเจฐเจœ เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจ เจฆเฉ‡ เจฎเจพเจฎเจฒเฉ‡ เจตเจฟเฉฑเจš เจนเฉเฉฐเจฆเจพ เจนเฉˆเฅค

k8s: เจตเจพเจš
เจชเฉˆเจ•เฉ‡เจœ
เจ•เจฟเจธเฉ‡ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจฆเฉ€ เจจเฉ‡เจฎเจธเจชเฉ‡เจธ เจจเฉ‚เฉฐ เจŸเจฐเฉˆเจ• เจ•เจฐเจ•เฉ‡ เจ†เจŸเฉ‹เจฎเฉˆเจŸเจฟเจ• เจ—เจฐเจฎ เจคเฉˆเจจเจพเจคเฉ€เฅค

OpenShift Maven เจชเจฒเฉฑเจ—เจ‡เจจ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ Red Hat OpenShift เจ‰เฉฑเจคเฉ‡ เจœเจพเจตเจพ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจเจพ

เจธเจพเจกเฉ‡ เจ‰เจฆเจพเจนเจฐเจจ เจคเฉ‹เจ‚ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจจเฉ‚เฉฐ Red Hat OpenShift เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎ 'เจคเฉ‡ เจคเฉˆเจจเจพเจค เจ•เจฐเจจ เจฒเจˆ, เจ…เจธเฉ€เจ‚ เจชเจฒเฉฑเจ—เจ‡เจจ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ OpenShift Maven. เจซเจฐเจ• เจธเจฟเจฐเจซ เจ‡เจน เจนเฉ‹เจตเฉ‡เจ—เจพ เจ•เจฟ เจŸเจพเจธเจ• เจชเฉเจฐเฉ€เจซเจฟเจ•เจธ k8s เจคเฉ‹เจ‚ oc เจตเจฟเฉฑเจš เจฌเจฆเจฒ เจœเจพเจตเฉ‡เจ—เจพเฅค เจฎเฉ‚เจฒ เจฐเฉ‚เจช เจตเจฟเฉฑเจš Kubernetes Maven เจชเจฒเฉฑเจ—เจ‡เจจ เจ•เจฐเจฆเจพ เจนเฉˆ เจกเฉŒเจ•เจฐเจ…เจธเฉˆเจ‚เจฌเจฒเฉ€เจ†เจ‚, เจ…เจคเฉ‡ เจ“เจชเจจเจธเจผเจฟเจซเจŸ เจฎเฉ‡เจตเฉ‡เจจ เจชเจฒเฉฑเจ—เจ‡เจจ - เจ…เจธเฉˆเจ‚เจฌเจฒเฉ€เจ†เจ‚ S2I. เจ…เจธเฉ€เจ‚ jkube.generator.name เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ เจจเฉ‚เฉฐ เจนเจŸเจพเจ‰เจฃ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจธเจพเจกเฉ‡ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจตเจฟเฉฑเจš เจ•เฉ‹เจˆ เจฌเจฆเจฒเจพเจ… เจจเจนเฉ€เจ‚ เจ•เจฐ เจฐเจนเฉ‡ เจนเจพเจ‚, เจ•เจฟเจ‰เจ‚เจ•เจฟ เจฐเจœเจฟเจธเจŸเจฐเฉ€ เจตเฉฑเจฒ เจงเฉฑเจ•เจฃ เจตเฉ‡เจฒเฉ‡ เจ‡เจธเจฆเฉ€ เจฒเฉ‹เฉœ เจจเจนเฉ€เจ‚ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ (เจฌเจฟเจฒเจก เจชเฉœเจพเจ… เจฆเฉ‡ เจฆเฉŒเจฐเจพเจจ, OpenShift เจšเจฟเฉฑเจคเจฐ เจจเฉ‚เฉฐ เจ†เจชเจฃเฉ€ เจ…เฉฐเจฆเจฐเฉ‚เจจเฉ€ เจฐเจœเจฟเจธเจŸเจฐเฉ€ เจตเจฟเฉฑเจš เจฐเฉฑเจ–เจฆเจพ เจนเฉˆ)เฅค เจ…เจคเฉ‡ เจ‡เจน เจ‰เจนเฉ€ เจนเฉˆ เจœเฉ‹ เจธเจ•เฉเจฐเฉ€เจจ 'เจคเฉ‡ เจฆเจฟเจ–เจพเจˆ เจฆเฉ‡เจตเฉ‡เจ—เจพ เจœเจฆเฉ‹เจ‚ เจ…เจธเฉ€เจ‚ เจ†เจชเจฃเฉ€ เจ‰เจฆเจพเจนเจฐเจฃ เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจ‚เจฆเฉ‡ เจนเจพเจ‚, เจœเจฟเจธ เจตเจฟเฉฑเจš, เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจธเจฎเฉ‡เจ‚ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจจเจนเฉ€เจ‚, เจฌเจฒเจ•เจฟ เจธเจพเจฐเฉ‡ เจŸเฉ€เจšเฉ‡ เจฆเฉ‡ เจ•เฉฐเจฎ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚:

~/work/repos/eclipse-jkube-demo-project : $ mvn oc:build oc:resource oc:apply
[INFO] Scanning for projects...
[INFO] 
[INFO] ----------------------< meetup:random-generator >-----------------------
[INFO] Building random-generator 0.0.1
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- openshift-maven-plugin:1.0.0-rc-1:build (default-cli) @ random-generator ---
[INFO] oc: Using OpenShift build with strategy S2I
[INFO] oc: Running in OpenShift mode
[INFO] oc: Running generator spring-boot
[INFO] oc: spring-boot: Using Docker image quay.io/jkube/jkube-java-binary-s2i:0.0.7 as base / builder
[INFO] oc: [random-generator:0.0.1] "spring-boot": Created docker source tar /home/rohaan/work/repos/eclipse-jkube-demo-project/target/docker/random-generator/0.0.1/tmp/docker-build.tar
[INFO] oc: Adding to Secret pullsecret-jkube
[INFO] oc: Using Secret pullsecret-jkube
[INFO] oc: Creating BuildServiceConfig random-generator-s2i for Source build
[INFO] oc: Creating ImageStream random-generator
[INFO] oc: Starting Build random-generator-s2i
[INFO] oc: Waiting for build random-generator-s2i-1 to complete...
[INFO] oc: Caching blobs under "/var/cache/blobs".
[INFO] oc: Getting image source signatures
[INFO] oc: Copying blob sha256:cf0f3ebe9f536c782ab3835049cfbd9a663761ded9370791ef6ea3965c823aad
[INFO] oc: Copying blob sha256:57de4da701b511cba33bbdc424757f7f3b408bea741ca714ace265da9b59191a
[INFO] oc: Copying blob sha256:f320f94d91a064281f5127d5f49954b481062c7d56cce3b09910e471cf849050
[INFO] oc: Copying config sha256:52d6788fcfdd39595264d34a3959464a5dabc1d4ef0ae188802b20fc2d6a857b
[INFO] oc: Writing manifest to image destination
[INFO] oc: Storing signatures
[INFO] oc: Generating dockerfile with builder image quay.io/jkube/jkube-java-binary-s2i:0.0.7
[INFO] oc: STEP 1: FROM quay.io/jkube/jkube-java-binary-s2i:0.0.7
[INFO] oc: STEP 2: LABEL "io.openshift.build.source-location"="/tmp/build/inputs"       "io.openshift.build.image"="quay.io/jkube/jkube-java-binary-s2i:0.0.7"
[INFO] oc: STEP 3: ENV JAVA_APP_DIR="/deployments"     OPENSHIFT_BUILD_NAME="random-generator-s2i-1"     OPENSHIFT_BUILD_NAMESPACE="default"
[INFO] oc: STEP 4: USER root
[INFO] oc: STEP 5: COPY upload/src /tmp/src
[INFO] oc: STEP 6: RUN chown -R 1000:0 /tmp/src
[INFO] oc: STEP 7: USER 1000
[INFO] oc: STEP 8: RUN /usr/local/s2i/assemble
[INFO] oc: INFO S2I source build with plain binaries detected
[INFO] oc: INFO S2I binary build from fabric8-maven-plugin detected
[INFO] oc: INFO Copying binaries from /tmp/src/deployments to /deployments ...
[INFO] oc: random-generator-0.0.1.jar
[INFO] oc: INFO Copying deployments from deployments to /deployments...
[INFO] oc: '/tmp/src/deployments/random-generator-0.0.1.jar' -> '/deployments/random-generator-0.0.1.jar'
[INFO] oc: STEP 9: CMD /usr/local/s2i/run
[INFO] oc: STEP 10: COMMIT temp.builder.openshift.io/default/random-generator-s2i-1:48795e41
[INFO] oc: time="2020-08-10T06:37:49Z" level=info msg="Image operating system mismatch: image uses "", expecting "linux""
[INFO] oc: time="2020-08-10T06:37:49Z" level=info msg="Image architecture mismatch: image uses "", expecting "amd64""
[INFO] oc: Getting image source signatures
[INFO] oc: Copying blob sha256:d8e1f35641acb80b562f70cf49911341dfbe8c86f4d522b18efbf3732aa74223
[INFO] oc: Copying blob sha256:b6f081e4b2b6de8be4b1dec132043d14c121e968384dd624fb69c2c07b482edb
[INFO] oc: Copying blob sha256:b7139ad07aa8ce4ed5a132f7c5cc9f1de0f5099b5e155027a23d57f7fbe78b16
[INFO] oc: Copying blob sha256:98972fc90a1108315cc5b05b2c691a0849a149727a7b81e76bc847ac2c6d9714
[INFO] oc: Copying config sha256:27aaadaf28e24856a66db962b88118b8222b61d79163dceeeed869f7289bc230
[INFO] oc: Writing manifest to image destination
[INFO] oc: Storing signatures
[INFO] oc: --> 27aaadaf28e
[INFO] oc: 27aaadaf28e24856a66db962b88118b8222b61d79163dceeeed869f7289bc230
[INFO] oc: Getting image source signatures
[INFO] oc: 
[INFO] oc: Pushing image image-registry.openshift-image-registry.svc:5000/default/random-generator:0.0.1 ...
[INFO] oc: Copying blob sha256:f320f94d91a064281f5127d5f49954b481062c7d56cce3b09910e471cf849050
[INFO] oc: Copying blob sha256:cf0f3ebe9f536c782ab3835049cfbd9a663761ded9370791ef6ea3965c823aad
[INFO] oc: Copying blob sha256:57de4da701b511cba33bbdc424757f7f3b408bea741ca714ace265da9b59191a
[INFO] oc: Copying blob sha256:98972fc90a1108315cc5b05b2c691a0849a149727a7b81e76bc847ac2c6d9714
[INFO] oc: Copying config sha256:27aaadaf28e24856a66db962b88118b8222b61d79163dceeeed869f7289bc230
[INFO] oc: Writing manifest to image destination
[INFO] oc: Storing signatures
[INFO] oc: Successfully pushed image-registry.openshift-image-registry.svc:5000/default/random-generator@sha256:aa9e1a380c04ef9174ba56459c13d44420ebe653ebf32884d60fe4306b17306d
[INFO] oc: Push successful
[INFO] oc: Build random-generator-s2i-1 in status Complete
[INFO] oc: Found tag on ImageStream random-generator tag: sha256:aa9e1a380c04ef9174ba56459c13d44420ebe653ebf32884d60fe4306b17306d
[INFO] oc: ImageStream random-generator written to /home/rohaan/work/repos/eclipse-jkube-demo-project/target/random-generator-is.yml
[INFO] 
[INFO] --- openshift-maven-plugin:1.0.0-rc-1:resource (default-cli) @ random-generator ---
[INFO] oc: Using docker image name of namespace: default
[INFO] oc: Running generator spring-boot
[INFO] oc: spring-boot: Using Docker image quay.io/jkube/jkube-java-binary-s2i:0.0.7 as base / builder
[INFO] oc: jkube-controller: Adding a default DeploymentConfig
[INFO] oc: jkube-service: Adding a default service 'random-generator' with ports [8080]
[INFO] oc: jkube-healthcheck-spring-boot: Adding readiness probe on port 8080, path='/actuator/health', scheme='HTTP', with initial delay 10 seconds
[INFO] oc: jkube-healthcheck-spring-boot: Adding liveness probe on port 8080, path='/actuator/health', scheme='HTTP', with initial delay 180 seconds
[INFO] oc: jkube-revision-history: Adding revision history limit to 2
[INFO] 
[INFO] --- openshift-maven-plugin:1.0.0-rc-1:apply (default-cli) @ random-generator ---
[INFO] oc: Using OpenShift at https://api.crc.testing:6443/ in namespace default with manifest /home/rohaan/work/repos/eclipse-jkube-demo-project/target/classes/META-INF/jkube/openshift.yml 
[INFO] oc: OpenShift platform detected
[INFO] oc: Using project: default
[INFO] oc: Creating a Service from openshift.yml namespace default name random-generator
[INFO] oc: Created Service: target/jkube/applyJson/default/service-random-generator.json
[INFO] oc: Creating a DeploymentConfig from openshift.yml namespace default name random-generator
[INFO] oc: Created DeploymentConfig: target/jkube/applyJson/default/deploymentconfig-random-generator.json
[INFO] oc: Creating Route default:random-generator host: null
[INFO] oc: HINT: Use the command `oc get pods -w` to watch your pods start up
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  01:07 min
[INFO] Finished at: 2020-08-10T12:08:00+05:30
[INFO] ------------------------------------------------------------------------
~/work/repos/eclipse-jkube-demo-project : $ oc get pods -w
NAME                           READY     STATUS      RESTARTS   AGE
random-generator-1-deploy      1/1       Running     0          14s
random-generator-1-vnrm9       0/1       Running     0          11s
random-generator-s2i-1-build   0/1       Completed   0          1m
random-generator-1-vnrm9   1/1       Running   0         24s
random-generator-1-deploy   0/1       Completed   0         28s
~/work/repos/eclipse-jkube-demo-project : $ oc get routes
NAME                HOST/PORT                                    PATH      SERVICES            PORT      TERMINATION   WILDCARD
random-generator    random-generator-default.apps-crc.testing              random-generator    8080                    None
~/work/repos/eclipse-jkube-demo-project : $ curl random-generator-default.apps-crc.testing/random 
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
Dload  Upload   Total   Spent    Left  Speed
100    45    0    45    0     0   1666      0 --:--:-- --:--:-- --:--:--  1730
{
"id": "d80052d9-2f92-43cb-b9eb-d7cffb879798"
}
~/work/repos/eclipse-jkube-demo-project : $

เจตเฉ€เจกเฉ€เจ“ เจธเจฌเจ•

Eclipse JKube เจจเจพเจฒ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจฆเฉ‡ เจตเจฟเจ•เจพเจธ เจจเฉ‚เฉฐ เจ†เจธเจพเจจ เจฌเจฃเจพเจ‰เจฃ เจฌเจพเจฐเฉ‡ เจนเฉ‹เจฐ เจœเจพเจฃเจจ เจฒเจˆ, เจ‡เจธ เจตเฉ€เจกเฉ€เจ“ เจŸเจฟเจŠเจŸเฉ‹เจฐเจฟเจ…เจฒ เจจเฉ‚เฉฐ เจฆเฉ‡เจ–เฉ‹ เจ•เจฟ เจ•เจฟเจตเฉ‡เจ‚ เจฎเจฟเจจเฉ€เจ•เจฟเจŠเจฌ 'เจคเฉ‡ เจธเจงเจพเจฐเจจ เจธเจชเจฐเจฟเฉฐเจ— เจฌเฉ‚เจŸ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจจเฉ‚เฉฐ เจคเฉ‡เจœเจผเฉ€ เจจเจพเจฒ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจเจพ เจนเฉˆ:

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

เจ‡เจธ เจฒเฉ‡เจ– เจตเจฟเฉฑเจš, เจ…เจธเฉ€เจ‚ เจฆเจฟเจ–เจพเจ‡เจ† เจนเฉˆ เจ•เจฟ เจ•เจฟเจตเฉ‡เจ‚ Eclipse JKube เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจฆเฉ‡ เจธเจฎเฉ‡เจ‚ เจ‡เฉฑเจ• Java เจกเจฟเจตเฉˆเจฒเจชเจฐ เจฒเจˆ เจœเฉ€เจตเจจ เจจเฉ‚เฉฐ เจธเฉŒเจ–เจพ เจฌเจฃเจพเจ‰เจ‚เจฆเจพ เจนเฉˆเฅค Eclipse JKube เจฌเจพเจฐเฉ‡ เจตเจงเฉ‡เจฐเฉ‡ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจ‡เฉฑเจฅเฉ‡ เจชเฉเจฐเจพเจชเจค เจ•เฉ€เจคเฉ€ เจœเจพ เจธเจ•เจฆเฉ€ เจนเฉˆ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจฆเฉ€ เจตเฉˆเฉฑเจฌเจธเจพเจˆเจŸ เจ…เจคเฉ‡ เจ‰เฉฑเจคเฉ‡ GitHub.

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

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