เดŽเด•เตเดฒเดฟเดชเตเดธเต JKube เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด•เตเดฌเตผเดจเต†เดฑเตเดฑเตเด•เตพเด•เตเด•เดพเดฏเดฟ เดœเดพเดต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เตพ เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต

25 เดตเตผเดทเด‚ เดฎเตเดฎเตเดชเต, เดœเดพเดต เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเตผเดฎเดพเดฐเตเดŸเต† เดฎเตเด–เตเดฏเดงเดพเดฐเดฏเดฟเดฒเต‡เด•เตเด•เต เดชเตเดฐเดตเต‡เดถเดฟเดšเตเดšเต, เด’เดŸเตเดตเดฟเตฝ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดธเตเดฑเตเดฑเดพเด•เตเด•เตเด•เตพ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเดจเตเดจ เดชเตเดฐเดงเดพเดจ เด˜เดŸเด•เด™เตเด™เดณเดฟเตฝ เด’เดจเตเดจเดพเดฏเดฟ เดฎเดพเดฑเดฟ. เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เด‡เดจเตเดจเต, เดจเดฟเดฐเดตเดงเดฟ เดตเตผเดทเด™เตเด™เดณเดพเดฏเดฟ เดœเดพเดตเดฏเต‹เดŸเต เดตเดฟเดถเตเดตเดธเตเดคเดฐเดพเดฏ เดจเดฟเดฐเดตเดงเดฟ เด†เดณเตเด•เดณเตเด‚ เด“เตผเด—เดจเตˆเดธเต‡เดทเดจเตเด•เดณเตเด‚ เดฎเตˆเด—เตเดฐเต‡เดฑเตเดฑเตเดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต‹ เดชเตเดฒเดพเดฑเตเดฑเตโ€Œเดซเต‹เดฎเดฟเดฒเต‡เด•เตเด•เต เดฎเตˆเด—เตเดฐเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต‹ เดคเดฟเดฐเด•เตเด•เดฟเดฒเดพเดฃเต. เด•เตเดฌเต‡เตผเดจเต†เดฑเตเดฑเต เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด…เดคเดฟเดจเตเดฑเต† เดกเต†เดฑเดฟเดตเต‡เดฑเตเดฑเต€เดตเตเด•เตพ เดชเต‹เดฒเตเดณเตเดณเดต Red Hat OpenShift เด…เดฅเดตเดพ เด†เดฎเดธเต‹เตบ เด‡.เด•เต†.เดŽเดธเต.

เดŽเด•เตเดฒเดฟเดชเตเดธเต JKube เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด•เตเดฌเตผเดจเต†เดฑเตเดฑเตเด•เตพเด•เตเด•เดพเดฏเดฟ เดœเดพเดต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เตพ เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต

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

เดชเดฐเดฎเตเดชเดฐเดพเด—เดค เดœเดพเดต เดตเดฟเด•เดธเดจ เดชเตเดฐเด•เตเดฐเดฟเดฏ

เดชเดฐเดฎเตเดชเดฐเดพเด—เดค เดตเดฟเด•เดธเดจ เดชเตเดฐเด•เตเดฐเดฟเดฏ เดœเดพเดต (เดšเดฟเดคเตเดฐเด‚ 1) เดกเต†เดตเดฒเดชเตเดชเตผ เด•เต‹เดกเต เดŽเดดเตเดคเตเดจเตเดจเดคเต เด‰เตพเดชเตเดชเต†เดŸเตเดจเตเดจเต, เดคเตเดŸเตผเดจเตเดจเต JAR เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ WAR เดซเดฏเดฒเตเด•เดณเตเดŸเต† เดฐเต‚เดชเดคเตเดคเดฟเตฝ เดตเดฟเดจเตเดฏเดพเดธ เดฏเต‚เดฃเดฟเดฑเตเดฑเตเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต, เดคเตเดŸเตผเดจเตเดจเต เดˆ เดซเดฏเดฒเตเด•เตพ เดตเต†เดฌเดฟเดฒเต‹ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดธเต†เตผเดตเดฑเดฟเดฒเต‹ เดตเดฟเดจเตเดฏเดธเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เด‡เดคเดฟเดจเตเดณเตเดณ เดชเตเดฐเดงเดพเดจ เดฎเดพเตผเด—เด‚ เด•เดฎเดพเตปเดกเต เดฒเตˆเดจเดฟเตฝ เดจเดฟเดจเตเดจเต Maven เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด•เดฏเต‹ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เตพ เด•เต‹เดกเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเด‚ เดชเดพเด•เตเด•เต‡เดœเตเดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเด‚ IntelliJ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ Eclipse เดชเต‹เดฒเตเดณเตเดณ IDE เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด• เดŽเดจเตเดจเดคเดพเดฃเต. เด•เต‹เดกเต เดšเต†เดฏเตโ€Œเดคเต เดชเดคเดฟเดชเตเดชเต เดจเดฟเดฏเดจเตเดคเตเดฐเดฃเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เดธเดฎเตผเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต เด•เต‹เดกเต เดฎเดพเดฑเตเดฑเด™เตเด™เตพ เดตเดฐเตเดคเตเดคเดพเดจเตเด‚ เดŽเดฒเตเดฒเดพเด‚ เดจเดจเตเดจเดพเดฏเดฟ เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เดพเดจเตเด‚ เดกเดตเดฒเดชเตเดชเตผเดฎเดพเตผ เดชเดคเดฟเดตเดพเดฃเต.

เดŽเด•เตเดฒเดฟเดชเตเดธเต JKube เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด•เตเดฌเตผเดจเต†เดฑเตเดฑเตเด•เตพเด•เตเด•เดพเดฏเดฟ เดœเดพเดต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เตพ เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต

เด…เดฐเดฟ. 1. เดชเดฐเดฎเตเดชเดฐเดพเด—เดค เดœเดพเดต เดตเดฟเด•เดธเดจ เดชเตเดฐเด•เตเดฐเดฟเดฏ.

เด•เตเดฒเต—เดกเดฟเดจเดพเดฏเตเดณเตเดณ เดœเดพเดต เดตเดฟเด•เดธเดจ เดชเตเดฐเด•เตเดฐเดฟเดฏ

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

เด•เตเดฒเต—เดกเดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เดชเดฐเดฟเดตเตผเดคเตเดคเดจเดคเตเดคเดฟเดฒเต† เดชเดฐเดฎเตเดชเดฐเดพเด—เดค เดœเดพเดต เดตเดฟเด•เดธเดจ เดชเตเดฐเด•เตเดฐเดฟเดฏเดฏเตเดŸเต† เดฐเต‚เดชเดพเดจเตเดคเดฐเต€เด•เดฐเดฃเด‚ เดšเดฟเดคเตเดฐเดคเตเดคเดฟเตฝ เด•เดพเดฃเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. 2.

เดŽเด•เตเดฒเดฟเดชเตเดธเต JKube เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด•เตเดฌเตผเดจเต†เดฑเตเดฑเตเด•เตพเด•เตเด•เดพเดฏเดฟ เดœเดพเดต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เตพ เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต

เด…เดฐเดฟ. 2. เด•เตเดฒเต—เดกเดฟเดจเดพเดฏเตเดณเตเดณ เดœเดพเดต เดตเดฟเด•เดธเดจ เดชเตเดฐเด•เตเดฐเดฟเดฏ.

เด—เตเดฐเดนเดฃเด‚ JKube

เด•เตเดฌเต†เตผเดจเต†เดฑเตเดฑเดธเดฟเดฒเต‡เด•เตเด•เต เดฎเตˆเด—เตเดฐเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต เดตเดฟเด•เดธเดจ เดชเตเดฐเด•เตเดฐเดฟเดฏเดฏเดฟเดฒเต‡เด•เตเด•เต เดฎเดฑเตเดฑเตŠเดฐเต เดชเตเดฐเดตเตผเดคเตเดคเดจ เดคเดฒเด‚ เดšเต‡เตผเด•เตเด•เตเดจเตเดจเต, เดฎเดพเดคเตเดฐเดฎเดฒเตเดฒ เด…เดต เดŽเด™เตเด™เดจเต† เดตเดฟเดจเตเดฏเดธเดฟเด•เตเด•เดฃเดฎเต†เดจเตเดจเดคเดฟเดฒเตเดชเดฐเดฟ, เด…เดตเดฐเตเดŸเต† เดชเตเดฐเดงเดพเดจ เดœเต‹เดฒเดฟเดฏเดฟเตฝ-เด…เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดฒเต‹เดœเดฟเด•เตเด•เดฟเตฝ เดถเตเดฐเดฆเตเดง เด•เต‡เดจเตเดฆเตเดฐเต€เด•เดฐเดฟเด•เตเด•เดพเตป เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเดพเตฝ เดชเดฒ เดกเดตเดฒเดชเตเดชเตผเดฎเดพเดฐเตเด‚ เด…เดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดชเดฐเดฟเดญเตเดฐเดพเดจเตเดคเดฐเดพเดฃเต. เด‡เดตเดฟเดŸเต†เดฏเดพเดฃเต เด‡เดคเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเดคเต. เด—เตเดฐเดนเดฃเด‚ JKube, เด‡เดคเต เดกเต†เดตเดฒเดชเตเดชเตผเดฎเดพเดฐเต† เด…เดตเดฐเตเดŸเต† เดฒเตˆเดฌเตเดฐเดฑเดฟเด•เดณเตเด‚ เดชเตเดฒเด—เดฟเดจเตเด•เดณเตเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเตป เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต (JKube เด•เดฟเดฑเตเดฑเต เด’เดฐเตเดฎเดฟเดšเตเดšเต เด•เตเดฌเต†เตผเดจเต†เดฑเตเดฑเดธเต เดฎเดพเดตเตป เดชเตเดฒเด—เดฟเตป เด…เดฅเดตเดพ OpenShift Maven เดชเตเดฒเด—เดฟเตป) เดšเดฟเดคเตเดฐเดคเตเดคเดฟเดฒเต† เดกเดฏเด—เตเดฐเด‚ เดชเดฟเดจเตเดคเตเดŸเตผเดจเตเดจเต เด•เดฃเตเดŸเต†เดฏเตโ€Œเดจเดฑเตเด‚ เด•เตเดฌเตผเดจเต†เดฑเตเดฑเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดชเตเดชเต†เดŸเตเดŸ เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เดณเตเด‚ เด…เดจเดพเดฏเดพเดธเดฎเดพเดฏเดฟ เดจเดŸเดคเตเดคเดพเตป. 2.

เดˆ เดฒเต‡เด–เดจเดคเตเดคเดฟเดจเตเดฑเต† เดฌเดพเด•เตเด•เดฟ เดญเดพเด—เด™เตเด™เดณเดฟเตฝ, Kubernetes Maven เดชเตเดฒเด—เดฟเตป เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต Eclipse JKube เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต เดชเดฐเดฟเดคเดธเตเดฅเดฟเดคเดฟเดฏเดฟเตฝ เดœเดพเดต เดตเดฟเด•เดธเดจ เดชเตเดฐเด•เตเดฐเดฟเดฏ เดŽเด™เตเด™เดจเต† เดฒเดณเดฟเดคเดฎเดพเด•เตเด•เดพเดฎเต†เดจเตเดจเต เดžเด™เตเด™เตพ เด•เดพเดฃเดฟเดšเตเดšเตเดคเดฐเดพเด‚.

เดŽเด•เตเดฒเดฟเดชเตเดธเต JKube เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเตเดณเตเดณ เด•เตเดฒเต—เดกเต เดตเดฟเด•เดธเดจ เดชเตเดฐเด•เตเดฐเดฟเดฏ

เดšเดฟเดคเตเดฐเด‚. 2.

เดŽเด•เตเดฒเดฟเดชเตเดธเต JKube เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด•เตเดฌเตผเดจเต†เดฑเตเดฑเตเด•เตพเด•เตเด•เดพเดฏเดฟ เดœเดพเดต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เตพ เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต

เด…เดฐเดฟ. 3. เดŽเด•เตเดฒเดฟเดชเตเดธเต JKube เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด•เตเดฒเต—เดกเดฟเดจเดพเดฏเตเดณเตเดณ เดœเดพเดต เดตเดฟเด•เดธเดจ เดชเตเดฐเด•เตเดฐเดฟเดฏ.

เดจเดฎเตเด•เตเด•เต เด•เดพเดฃเดพเดจเดพเด•เตเดจเตเดจเดคเตเดชเต‹เดฒเต†, เด‡เดตเดฟเดŸเต† เด•เตเดฌเตผเดจเต†เดฑเตเดฑเตเด•เดณเตเดฎเดพเดฏเตเด‚ เด•เดฃเตเดŸเต†เดฏเตโ€Œเดจเดฑเตเด•เดณเตเดฎเดพเดฏเตเด‚ เด‡เดŸเดชเดดเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดŽเดฒเตเดฒเดพ เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เดณเตเด‚ (เดกเดฏเด—เตเดฐเดพเดฎเดฟเตฝ เดšเตเดตเดชเตเดชเต เดจเดฟเดฑเดคเตเดคเดฟเตฝ เดนเตˆเดฒเตˆเดฑเตเดฑเต เดšเต†เดฏเตโ€Œเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต) เดฎเดพเดฑเตเดฑเดฟเดธเตเดฅเดพเดชเดฟเด•เตเด•เตเดจเตเดจเดคเต เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟ เดŽเด•เตเดฒเดฟเดชเตเดธเต JKube เด—เต‹เตพ เดŸเดพเดธเตโ€Œเด•เตเด•เตเด•เดณเดพเดฃเต, เด…เดต เดชเดŸเตเดŸเดฟเด•เดฏเดฟเตฝ เดชเดŸเตเดŸเดฟเด•เดชเตเดชเต†เดŸเตเดคเตเดคเดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. 1.

เดฎเต‡เดถ 1. เดŽเด•เตเดฒเดฟเดชเตเดธเต JKube เดกเดฟเดซเต‹เตพเดŸเตเดŸเต เดŸเดพเดธเตเด•เตเด•เตเด•เตพ.

เดฒเด•เตเดทเตเดฏเด‚
เดธเตเดฑเตเดฑเต‡เดœเต
เดตเดฟเดตเดฐเดฃเด‚

k8s:เดฌเดฟเตฝเดกเต
PRE_INTEGRATION_TEST
เดกเต‹เด•เตเด•เตผ เดšเดฟเดคเตเดฐเด™เตเด™เตพ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเดจเตเดจเต

k8s:เดชเตเดทเต
INSTALL
เดฐเดœเดฟเดธเตเดŸเตเดฐเดฟเดฏเดฟเดฒเต‡เด•เตเด•เต เดกเต‹เด•เตเด•เตผ เดšเดฟเดคเตเดฐเด™เตเด™เตพ เด…เดชเตโ€Œเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต

k8s:เดตเดฟเดญเดตเด‚
PROCESS_RESOURCES
เด•เต†8เด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเดคเต เดฎเดพเดจเดฟเดซเต†เดธเตเดฑเตเดฑเตเด•เตพ

k8s: เดชเตเดฐเดฏเต‹เด—เดฟเด•เตเด•เตเด•
เดธเดฎเดพเดนเดฐเดฟเด•เตเด•เตเด•
เดœเดจเดฑเต‡เดฑเตเดฑเต เดšเต†เดฏเตโ€Œเดค เดฎเดพเดจเดฟเดซเต†เดธเตเดฑเตเดฑเตเด•เตพ K8-เด•เดณเดฟเตฝ เดชเตเดฐเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต

k8s:undeploy
UNDEPLOY
k8s:apply, k8s:deploy เดŽเดจเตเดจเดฟเดต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดตเดฟเดจเตเดฏเดธเดฟเดšเตเดšเดฟเดŸเตเดŸเตเดณเตเดณ K8s เด‰เดฑเดตเดฟเดŸเด™เตเด™เตพ เดจเต€เด•เตเด•เด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต

เด•เตเดฑเดฟเดชเตเดชเต: เดˆ เด…เดญเดฟเดชเตเดฐเดพเดฏเดฎเตเดณเตเดณ เดกเดฟเดซเต‹เตพเดŸเตเดŸเตเด•เตพ เดŸเดพเดธเตโ€Œเด•เตเด•เตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เตพ เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เด‡เดคเต เดตเดดเดฟเดฏเตเดณเตเดณ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเต† เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจเดคเดฟเดจเดพเตฝ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดธเตเดตเดฏเด‚ เดŽเด•เตเดฒเดฟเดชเตเดธเต JKube เด•เต‹เตบเดซเดฟเด—เตผ เดšเต†เดฏเตเดฏเดพเด‚ เดŽเด•เตเดธเตเดŽเด‚เดŽเตฝ ะธ เดตเดฟเดญเดตเด™เตเด™เตพ.

เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เตพเด•เตเด•เตŠเดชเตเดชเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เดŽเด•เตเดฒเดฟเดชเตเดธเต JKube, Kubernetes Maven Plugin เดŽเดจเตเดจเดฟเดต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดฑเต† เด‰เดฆเดพเดนเดฐเดฃเด™เตเด™เตพ เดจเต‹เด•เตเด•เดพเด‚.

เดŽเด•เตเดฒเดฟเดชเตเดธเต JKube เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด•เตเดฌเตผเดจเต†เดฑเตเดฑเตเด•เดณเดฟเตฝ เด’เดฐเต เดœเดพเดต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดตเดฟเดจเตเดฏเดธเดฟเด•เตเด•เตเดจเตเดจเต

เดˆ เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเตฝ เดžเด™เตเด™เตพ เด’เดฐเต เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเตฝ เด’เดฐเต เดฒเดณเดฟเดคเดฎเดพเดฏ เดœเดพเดต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดตเดฟเดจเตเดฏเดธเดฟเด•เตเด•เตเด‚ เดฎเดฟเดจเดฟเด•เตเดฏเต‚เดฌเต เดŽเด•เตเดฒเดฟเดชเตเดธเต 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-เดฒเต‡เด•เตเด•เต Kubernetes Maven เดชเตเดฒเด—เดฟเตป เดšเต‡เตผเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต:

<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 เด•เดฎเดพเตปเดกเต เดจเตฝเด•เตเดจเตเดจเต, เดŽเด•เตเดฒเดฟเดชเตเดธเต 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 เด†เดฃเต), เดžเด™เตเด™เตพเด•เตเด•เต เดˆ เดšเดฟเดคเตเดฐเด‚ เดฐเดœเดฟเดธเตโ€ŒเดŸเตเดฐเดฟเดฏเดฟเดฒเต‡เด•เตเด•เต เด…เดฏเดฏเตโ€Œเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚. mvn k8s:push push task เดจเดฟเตผเดตเดนเดฟเด•เตเด•เดพเตป เดŽเด•เตเดฒเดฟเดชเตเดธเต JKube-เดจเต‹เดŸเต เด†เดตเดถเตเดฏเดชเตเดชเต†เดŸเตเดŸเดคเดฟเดจเต เดถเต‡เดทเด‚ เด‡เดคเดพเดฃเต เดชเตเดฐเดฆเตผเดถเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเต:

~/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.

เดŽเด•เตเดฒเดฟเดชเตเดธเต JKube เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด•เตเดฌเตผเดจเต†เดฑเตเดฑเตเด•เตพเด•เตเด•เดพเดฏเดฟ เดœเดพเดต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เตพ เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต

เด…เดฐเดฟ. 4. เดฐเดœเดฟเดธเตเดŸเตเดฐเดฟเดฏเดฟเดฒเต‡เด•เตเด•เต เด…เดฏเดšเตเดš เดšเดฟเดคเตเดฐเด‚ เดกเต‹เด•เตเด•เตผ เดนเดฌเดฟเตฝ เดชเตเดฐเดคเตเดฏเด•เตเดทเดชเตเดชเต†เดŸเตเดŸเต.

เด˜เดŸเตเดŸเด‚ 4. เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเดพเดฏเดฟ เด•เตเดฌเตผเดจเต†เดฑเตเดฑเตเดธเต เดฑเดฟเดธเต‹เดดเตเดธเต เดฎเดพเดจเดฟเดซเต†เดธเตเดฑเตเดฑเตเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด•

เด…เดคเดฟเดจเดพเตฝ, เดžเด™เตเด™เตพ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เด‡เดฎเต‡เดœเต เดถเต‡เด–เดฐเดฟเดšเตเดšเต, เด‡เดชเตเดชเต‹เตพ เดจเดฎเตเดฎเตพ เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต เดฎเดพเดจเดฟเดซเต†เดธเตเดฑเตเดฑเตเด•เตพ เดŽเดดเตเดคเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต. เด‡เดคเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, Eclipse JKube-เดจเต เด…เดจเตเดคเตผเดฒเต€เดจเดฎเดพเดฏ เดœเดพเดต เดšเดŸเตเดŸเด•เตเด•เต‚เดŸเดฟเดจเต† เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟ เด•เตผเด•เตเด•เดถเดฎเดพเดฏ เดฑเดฟเดธเต‹เดดเตเดธเต เดฎเดพเดจเดฟเดซเต†เดธเตเดฑเตเดฑเตเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดŸเดพเดธเตเด•เต เด‰เดฃเตเดŸเต (เดธเตเดชเตเดฐเดฟเด‚เด—เต เดฌเต‚เดŸเตเดŸเต, เด•เตเดตเดพเตผเด•เตเด•เดธเต, Vert.x เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดฎเดฑเตเดฑเต†เดจเตเดคเต†เด™เตเด•เดฟเดฒเตเด‚). เด’เดฐเต XML เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดซเดฏเตฝ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเตเด‚ src/main/jkube เดŽเดจเตเดจ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดซเต‹เตพเดกเดฑเดฟเตฝ เด…เดธเด‚เดธเตโ€Œเด•เตƒเดค เดถเด•เดฒเด™เตเด™เตพ (เด†เดตเดถเตเดฏเดฎเดพเดฏ เดฑเดฟเดธเต‹เดดเตโ€Œเดธเต เดฎเดพเดจเดฟเดซเต†เดธเตเดฑเตเดฑเดฟเดจเตเดฑเต† เดถเด•เดฒเด™เตเด™เตพ) เดธเตเดฅเดพเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดฒเต‚เดŸเต†เดฏเตเด‚ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดฎเดพเดจเดฟเดซเต†เดธเตโ€Œเดฑเตเดฑเต เด‡เดทเตโ€ŒเดŸเดพเดจเตเดธเตƒเดคเดฎเดพเด•เตเด•เดพเดจเดพเด•เตเด‚. เดˆ เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเตฝ, เดจเดฟเด™เตเด™เดณเตเดŸเต† เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดธเตƒเดทเตเดŸเดฟเดšเตเดš เดฎเดพเดจเดฟเดซเต†เดธเตเดฑเตเดฑเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เด…เดชเตโ€Œเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเด‚.

เดžเด™เตเด™เดณเตเดŸเต† เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเตฝ, เดžเด™เตเด™เตพ เดŽเดฒเตเดฒเดพเด‚ เด…เดคเต‡เดชเดŸเดฟ เด‰เดชเต‡เด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเต, เด…เดคเดฟเดจเดพเตฝ เดŽเด•เตเดฒเดฟเดชเตเดธเต JKube เดกเดฟเดซเต‹เตพเดŸเตเดŸเต เดตเดฟเดจเตเดฏเดพเดธเดคเตเดคเดฟเดจเตเด‚ ClusterIP เดคเดฐเดคเตเดคเดฟเดฒเตเดณเตเดณ เดธเต‡เดตเดจเดคเตเดคเดฟเดจเตเด‚ เด’เดฐเต เดฎเดพเดจเดฟเดซเต†เดธเตเดฑเตเดฑเต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต. เด…เดคเดฟเดจเตเดถเต‡เดทเด‚ เดฎเดพเดคเตเดฐเดฎเต‡ เดธเต‡เดตเดจ เดคเดฐเด‚ NodePort-เดฒเต‡เด•เตเด•เต เดฎเดพเดฑเตเดฑเดพเตป เดžเด™เตเด™เตพ เดธเต‡เดตเดจ เดฎเดพเดจเดฟเดซเต†เดธเตเดฑเตเดฑเต เดชเดฐเดฟเดทเตเด•เดฐเดฟเด•เตเด•เต‚. เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดชเตเดฐเต‹เดชเตเดชเตผเดŸเตเดŸเดฟ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดกเดฟเดซเต‹เตพเดŸเตเดŸเต เดธเตเดตเดญเดพเดตเด‚ เด…เดธเดพเดงเตเดตเดพเด•เตเด•เดพเดจเดพเด•เตเด‚:

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

mvn k8s:resource resource task เดšเต†เดฏเตเดฏเดพเตป เดŽเด•เตเดฒเดฟเดชเตโ€Œเดธเต JKube-เดจเต‹เดŸเต เดžเด™เตเด™เตพ เด†เดตเดถเตเดฏเดชเตเดชเต†เดŸเตเดŸเดคเดฟเดจเต เดถเต‡เดทเดฎเตเดณเตเดณ เดธเตโ€Œเด•เตเดฐเต€เตป เด”เดŸเตเดŸเตโ€ŒเดชเตเดŸเตเดŸเต เด‡เด™เตเด™เดจเต†เดฏเดพเดฃเต เด•เดพเดฃเดชเตเดชเต†เดŸเตเดจเตเดจเดคเต.

~/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 เด•เดฎเดพเตปเดกเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚, เดชเด•เตเดทเต‡ เดชเตเดฒเด—เดฟเตป เดžเด™เตเด™เตพเด•เตเด•เต เด‡เดคเต เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเด‚. mvn k8s:apply apply เดŸเดพเดธเตโ€Œเด•เต เดŽเด•เตโ€Œเดธเดฟเด•เตเดฏเต‚เดทเตป เดšเต†เดฏเตเดฏเดพเตป เดŽเด•เตเดฒเดฟเดชเตโ€Œเดธเต JKube-เดจเต‹เดŸเต เด†เดตเดถเตเดฏเดชเตเดชเต†เดŸเตเดŸเดคเดฟเดจเต เดถเต‡เดทเด‚ เดธเตโ€Œเด•เตเดฐเต€เดจเดฟเตฝ เด‡เดคเต เดฆเตƒเดถเตเดฏเดฎเดพเด•เตเด‚.

~/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. เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เตพ เดตเดฟเดจเตเดฏเดธเดฟเด•เตเด•เตเด•

เด‡เดคเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, เด…เตบเดกเดฟเดชเตเดฒเต‹เดฏเต เดŸเดพเดธเตโ€Œเด•เต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต, เด‡เดคเต เดฎเตเดฎเตเดชเดคเตเดคเต† เด˜เดŸเตเดŸเดคเตเดคเดฟเตฝ เดชเตเดฐเดฏเต‹เด—เดฟเดšเตเดš เดŽเดฒเตเดฒเดพ เด‰เดฑเดตเดฟเดŸเด™เตเด™เดณเตเด‚ เดจเต€เด•เตเด•เด‚เดšเต†เดฏเตเดฏเตเดจเตเดจเต, เด…เดคเดพเดฏเดคเต, เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดŸเดพเดธเตโ€Œเด•เต เดŽเด•เตโ€Œเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเตเดฎเตเดชเต‹เตพ. Mvn k8s:undeploy undeploy task เดจเดฟเตผเดตเดนเดฟเด•เตเด•เดพเตป เดŽเด•เตเดฒเดฟเดชเตเดธเต JKube-เดจเต‹เดŸเต เด†เดตเดถเตเดฏเดชเตเดชเต†เดŸเตเดŸเดคเดฟเดจเต เดถเต‡เดทเด‚ เดจเดฎเตเดฎเตพ เดธเตเด•เตเดฐเต€เดจเดฟเตฝ เด•เดพเดฃเตเดจเตเดจเดคเต เด‡เดคเดพเดฃเต:

~/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 : $

เดŽเด•เตเดฒเดฟเดชเตเดธเต JKube เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดฎเดฑเตเดฑเต†เดจเตเดคเดพเดฃเต เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเด•

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

<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>

เดˆ เดฒเต‡เด–เดจเดคเตเดคเดฟเตฝ เดŽเด•เตเดฒเดฟเดชเตเดธเต JKube, Kubernetes Maven เดชเตเดฒเด—เดฟเตป เดŽเดจเตเดจเดฟเดตเดฏเดฟเดฒเต† เดŽเดฒเตเดฒเดพ เดฒเด•เตเดทเตเดฏ เดœเต‹เดฒเดฟเด•เดณเตเด‚ เดžเด™เตเด™เตพ เดชเดฐเดฟเด—เดฃเดฟเดšเตเดšเดฟเดŸเตเดŸเดฟเดฒเตเดฒเต†เดจเตเดจเต เดชเดฑเดฏเดฃเด‚, เด…เดคเดฟเดจเดพเตฝ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‰เดชเดฏเต‹เด—เดชเตเดฐเดฆเดฎเดพเดฏเต‡เด•เตเด•เดพเดตเตเดจเตเดจ เด…เดงเดฟเด• เดœเต‹เดฒเดฟเด•เดณเตเดŸเต† เด’เดฐเต เดฒเดฟเดธเตเดฑเตเดฑเต เดžเด™เตเด™เตพ เดชเดŸเตเดŸเดฟเด• 2 เตฝ เดจเตฝเด•เตเดจเตเดจเต.

เดฎเต‡เดถ 2. เด…เดงเดฟเด• เดŽเด•เตเดฒเดฟเดชเตเดธเต JKube เด—เต‹เตพ เดŸเดพเดธเตเด•เตเด•เตเด•เตพ.

เดฒเด•เตเดทเตเดฏเด‚
เดธเตเดฑเตเดฑเต‡เดœเต
เดตเดฟเดตเดฐเดฃเด‚

k8s:เดฒเต‹เด—เต
เดธเดพเดงเต‚เด•เดฐเดฟเด•เตเด•เตเด•
Kubernetes-เตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเดฟเตฝ เดจเดฟเดจเตเดจเต เดฒเต‹เด—เตเด•เตพ เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเต.

k8s:เดกเต€เดฌเด—เต
PACKAGE
เด’เดฐเต เดกเต€เดฌเด—เต เดชเต‹เตผเดŸเตเดŸเต เดคเตเดฑเด•เตเด•เตเด•, เด…เดคเตเดตเดดเดฟ เด•เตเดฌเตผเดจเต†เดฑเตเดฑเตเด•เดณเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เดจเดฟเด™เตเด™เดณเตเดŸเต† เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป IDE-เตฝ เดจเดฟเดจเตเดจเต เดจเต‡เดฐเดฟเดŸเตเดŸเต เดกเต€เดฌเด—เต เดšเต†เดฏเตเดฏเดพเด‚.

k8s:เดตเดฟเดจเตเดฏเดพเดธเด‚
INSTALL
เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดŸเดพเดธเตโ€Œเด•เตเด•เดฟเดจเดพเดฏเดฟ เด’เดฐเต เดซเต‹เตผเด•เตเด•เต เดธเตƒเดทเตโ€ŒเดŸเดฟเด•เตเด•เตเด•เดฏเตเด‚ เด…เดชเตเดฒเตˆ เดŸเดพเดธเตโ€Œเด•เตเด•เดฟเดจเตเดฑเต† เด•เดพเดฐเตเดฏเดคเตเดคเดฟเดฒเต‡เดคเต เดชเต‹เดฒเต† เดคเดจเตเดจเต† เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดฒเต‡เด•เตเด•เต เดธเตƒเดทเตโ€ŒเดŸเดฟเดšเตเดš เดฎเดพเดจเดฟเดซเต†เดธเตเดฑเตเดฑเตเด•เตพ เดชเตเดฐเดฏเต‹เด—เดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต.

k8s: เดตเดพเดšเตเดšเต
PACKAGE
เด’เดฐเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเดฑเต† เดจเต†เดฏเดฟเด‚เดธเตเดชเต‡เดธเต เดŸเตเดฐเดพเด•เตเด•เต เดšเต†เดฏเตเดคเตเด•เตŠเดฃเตเดŸเต เดธเตเดตเดฏเดฎเต‡เดตเดฏเตเดณเตเดณ เดนเต‹เดŸเตเดŸเต เดตเดฟเดจเตเดฏเดพเดธเด‚.

OpenShift Maven เดชเตเดฒเด—เดฟเตป เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต Red Hat OpenShift-เตฝ เดœเดพเดต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เตพ เดตเดฟเดจเตเดฏเดธเดฟเด•เตเด•เตเดจเตเดจเต

Red Hat OpenShift เดชเตเดฒเดพเดฑเตเดฑเตโ€Œเดซเต‹เดฎเดฟเตฝ เดžเด™เตเด™เดณเตเดŸเต† เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดตเดฟเดจเตเดฏเดธเดฟเด•เตเด•เดพเตป, เดžเด™เตเด™เตพ เดชเตเดฒเด—เดฟเตป เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต เด“เดชเตเดชเตบเดทเดฟเดซเตเดฑเตเดฑเต เดฎเดพเดตเตป. เดŸเดพเดธเตโ€Œเด•เต เดชเตเดฐเดฟเดซเดฟเด•เตโ€Œเดธเต k8s-เตฝ เดจเดฟเดจเตเดจเต oc-เดฒเต‡เด•เตเด•เต เดฎเดพเดฑเตเด‚ เดŽเดจเตเดจเดคเดพเดฃเต เด’เดฐเต‡เดฏเตŠเดฐเต เดตเตเดฏเดคเตเดฏเดพเดธเด‚. เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟเดฏเดพเดฏเดฟ เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต เดฎเดพเดตเตป เดชเตเดฒเด—เดฟเตป เดšเต†เดฏเตเดฏเตเดจเตเดจเต เดกเต‹เด•เตเด•เตผเด…เดธเด‚เดฌเตเดฒเดฟเด•เตพ, เด“เดชเตเดชเตบเดทเดฟเดซเตเดฑเตเดฑเต เดฎเดพเดตเตป เดชเตเดฒเด—เดฟเตป - เด…เดธเด‚เดฌเตเดฒเดฟเด•เตพ เดŽเดธเต2เด. เดฐเดœเดฟเดธเตเดŸเตเดฐเดฟเดฏเดฟเดฒเต‡เด•เตเด•เต เดคเดณเตเดณเตเดฎเตเดชเต‹เตพ jkube.generator.name เดชเตเดฐเต‹เดชเตเดชเตผเดŸเตเดŸเดฟ เด†เดตเดถเตเดฏเดฎเดฟเดฒเตเดฒเดพเดคเตเดคเดคเดฟเดจเดพเตฝ เดžเด™เตเด™เดณเตเดŸเต† เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเดฟเตฝ เดžเด™เตเด™เตพ เดฎเดพเดฑเตเดฑเด™เตเด™เดณเตŠเดจเตเดจเตเด‚ เดตเดฐเตเดคเตเดคเตเดจเตเดจเดฟเดฒเตเดฒ (เดฌเดฟเตฝเดกเต เด˜เดŸเตเดŸเดคเตเดคเดฟเตฝ เด“เดชเตเดชเตบเดทเดฟเดซเตเดฑเตเดฑเต เด…เดคเดฟเดจเตเดฑเต† เด†เดจเตเดคเดฐเดฟเด• เดฐเดœเดฟเดธเตเดŸเตเดฐเดฟเดฏเดฟเตฝ เดšเดฟเดคเตเดฐเด‚ เดธเตเดฅเดพเดชเดฟเด•เตเด•เตเดจเตเดจเต). เดžเด™เตเด™เตพ เดžเด™เตเด™เดณเตเดŸเต† เด‰เดฆเดพเดนเดฐเดฃเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เดธเตเด•เตเดฐเต€เดจเดฟเตฝ เดฆเตƒเดถเตเดฏเดฎเดพเด•เตเดจเตเดจเดคเต เด‡เดคเดพเดฃเต, เด…เดคเดฟเตฝ, เดžเด™เตเด™เตพ เดฒเด•เตเดทเตเดฏเด‚ เดŸเดพเดธเตเด•เตเด•เตเด•เตพ เด’เดจเตเดจเดฒเตเดฒ, เด’เดฐเต‡เดธเดฎเดฏเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต:

~/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 : $

เดตเต€เดกเดฟเดฏเต‹ เดชเดพเด เด‚

เดŽเด•เตเดฒเดฟเดชเตเดธเต JKube เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต เดตเดฟเด•เดธเดจเด‚ เดŽเด™เตเด™เดจเต† เดŽเดณเตเดชเตเดชเดฎเดพเด•เตเด•เดพเด‚ เดŽเดจเตเดจเดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เด•เต‚เดŸเตเดคเดฒเดฑเดฟเดฏเดพเตป, เดฎเดฟเดจเดฟเด•เตเดฏเต‚เดฌเดฟเตฝ เด’เดฐเต เดธเตเดชเตเดฐเดฟเด‚เด—เต เดฌเต‚เดŸเตเดŸเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดŽเด™เตเด™เดจเต† เดตเต‡เด—เดคเตเดคเดฟเตฝ เดตเดฟเดจเตเดฏเดธเดฟเด•เตเด•เดพเด‚ เดŽเดจเตเดจเดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดˆ เดตเต€เดกเดฟเดฏเต‹ เดŸเตเดฏเต‚เดŸเตเดŸเต‹เดฑเดฟเดฏเตฝ เด•เดพเดฃเตเด•:

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

เดˆ เดฒเต‡เด–เดจเดคเตเดคเดฟเตฝ, เด•เตเดฌเต†เตผเดจเต†เดฑเตเดฑเดธเดฟเดจเตŠเดชเตเดชเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เด’เดฐเต เดœเดพเดต เดกเต†เดตเดฒเดชเตเดชเตผเด•เตเด•เต เดŽเด™เตเด™เดจเต† เดŽเด•เตเดฒเดฟเดชเตเดธเต JKube เดœเต€เดตเดฟเดคเด‚ เดŽเดณเตเดชเตเดชเดฎเดพเด•เตเด•เตเดจเตเดจเต เดŽเดจเตเดจเต เดžเด™เตเด™เตพ เด•เดพเดฃเดฟเดšเตเดšเตเดคเดจเตเดจเต. เดŽเด•เตเดฒเดฟเดชเตเดธเต JKube-เดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เด•เต‚เดŸเตเดคเตฝ เดตเดฟเดตเดฐเด™เตเด™เตพ เด‡เดตเดฟเดŸเต† เด•เดพเดฃเดพเด‚ เดชเดฆเตเดงเดคเดฟ เดตเต†เดฌเตเดธเตˆเดฑเตเดฑเต เดชเดฟเดจเตเดจเต† เดธเดพเดฎเต‚เดนเดฟเด•เด‚.

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

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