เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™ Java เบชเปเบฒเบฅเบฑเบš Kubernetes เป‚เบ”เบเปƒเบŠเป‰ Eclipse JKube

เป€เบกเบทเปˆเบญ 25 เบ›เบตเบเปˆเบญเบ™, Java เป€เบ‚เบปเป‰เบฒเบชเบนเปˆเบเบฐเปเบชเบซเบฅเบฑเบเบ‚เบญเบ‡เบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเปเบฅเบฐเปƒเบ™เบ—เบตเปˆเบชเบธเบ”เบเปเปˆเบเบฒเบเป€เบ›เบฑเบ™เบซเบ™เบถเปˆเบ‡เปƒเบ™เบญเบปเบ‡เบ›เบฐเบเบญเบšเบซเบผเบฑเบเบ—เบตเปˆเบชเป‰เบฒเบ‡ stacks เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เปƒเบ™เบกเบทเป‰เบ™เบตเป‰, เบ›เบฐเบŠเบฒเบŠเบปเบ™เบˆเปเบฒเบ™เบงเบ™เบซเบผเบฒเบเปเบฅเบฐเบญเบปเบ‡เบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบชเบฑเบ”เบŠเบทเปˆเบ•เปเปˆ Java เบชเปเบฒเบฅเบฑเบšเป€เบงเบฅเบฒเบซเบผเบฒเบเบ›เบตเปเบกเปˆเบ™เบ—เบธเบฅเบฐเบเบดเบ”เบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เบเป‰เบฒเบเบซเบผเบทเบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เบเป‰เบฒเบเป„เบ›เบชเบนเปˆเป€เบงเบ—เบต. Kubernetes เบซเบผเบทเบญเบฐเบ™เบธเบžเบฑเบ™เบ‚เบญเบ‡เบกเบฑเบ™เป€เบŠเบฑเปˆเบ™ RedHat OpenShift เบซเบผเบท Amazon EKS.

เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™ Java เบชเปเบฒเบฅเบฑเบš Kubernetes เป‚เบ”เบเปƒเบŠเป‰ Eclipse JKube

เปเบ•เปˆเบซเบ™เป‰เบฒเป€เบชเบเบ”เบฒเบ, Kubernetes เบกเบตเป€เบชเบฑเป‰เบ™เป‚เบ„เป‰เบ‡เบเบฒเบ™เบฎเบฝเบ™เบฎเบนเป‰เบ—เบตเปˆเบชเบนเบ‡เบŠเบฑเบ™เปเบฅเบฐเปเบ™เบฐเบ™เปเบฒเบŠเบฑเป‰เบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบญเบทเปˆเบ™เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบ—เบตเปˆเบ™เบฑเบเบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบก Java เบ„เบธเป‰เบ™เป€เบ„เบตเบเบเบฑเบš. เบกเบทเป‰เบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบšเบญเบเบ—เปˆเบฒเบ™เบงเบดเบ—เบตเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ Eclipse JKube, เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบš Kubernetes เปเบฅเบฐ containers เบ‡เปˆเบฒเบเบ”เบฒเบ, เปเบฅเบฐเบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เบเป‰เบฒเบเบ—เบตเปˆเบšเปเปˆเป€เบˆเบฑเบšเบ›เบงเบ”เป„เบ›เบซเบฒเป€เบงเบ—เบตเบŸเบฑเบ‡เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบฎเบฑเบเบชเบฒเบฅเบฐเบšเบปเบšเบ™เบดเป€เบงเบ” Java เบ—เบตเปˆเบ„เบธเป‰เบ™เป€เบ„เบตเบ. เบเบดเปˆเบ‡เป„เบ›เบเบงเปˆเบฒเบ™เบฑเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบชเบฐเปเบ”เบ‡เบงเบดเบ—เบตเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ Java เปƒเบ™เป€เบงเบ—เบต OpenShift เป‚เบ”เบเปƒเบŠเป‰ plugin OpenShift Maven.

เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ Java เปเบšเบšเบ”เบฑเป‰เบ‡เป€เบ”เบตเบก

เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบšเบšเบ”เบฑเป‰เบ‡เป€เบ”เบตเบก Java (เบฎเบนเบš 1) เบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบœเบนเป‰เบžเบฑเบ”เบ—เบฐเบ™เบฒเบเบฒเบ™เบ‚เบฝเบ™เบฅเบฐเบซเบฑเบ”, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบชเป‰เบฒเบ‡เบซเบ™เปˆเบงเบเบ‡เบฒเบ™เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เบฎเบนเบšเปเบšเบšเบ‚เบญเบ‡เป„เบŸเบฅเปŒ JAR เบซเบผเบท WAR, เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ™เปเบฒเปƒเบŠเป‰เปเบฅเบฐเปเบฅเปˆเบ™เป„เบŸเบฅเปŒเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบขเบนเปˆเปƒเบ™เป€เบงเบฑเบšเบซเบผเบทเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ‚เบญเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™. เบงเบดเบ—เบตเบ•เบปเป‰เบ™เบ•เปเบ—เบตเปˆเบˆเบฐเป€เบฎเบฑเบ”เบ„เบทเบเบฒเบ™เปƒเบŠเป‰ Maven เบˆเบฒเบเป€เบชเบฑเป‰เบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบซเบผเบทเปƒเบŠเป‰ IDE เป€เบŠเบฑเปˆเบ™ IntelliJ เบซเบผเบท Eclipse เป€เบžเบทเปˆเบญเบฅเบฐเบซเบฑเบ”เปเบฅเบฐเบซเบธเป‰เบกเบซเปเปˆเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™. เบœเบนเป‰เบžเบฑเบ”เบ—เบฐเบ™เบฒเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบฅเบฐเบซเบฑเบ”เปเบฅเบฐเบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบ—เบธเบเบขเปˆเบฒเบ‡เบขเปˆเบฒเบ‡เบฅเบฐเบญเบฝเบ”เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเป€เบฎเบฑเบ”เบฅเบฐเบซเบฑเบ”เปเบฅเบฐเบชเบปเปˆเบ‡เบกเบฑเบ™เป„เบ›เบซเบฒเบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเป€เบงเบตเบŠเบฑเบ™.

เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™ Java เบชเปเบฒเบฅเบฑเบš Kubernetes เป‚เบ”เบเปƒเบŠเป‰ Eclipse JKube

เป€เบ‚เบปเป‰เบฒ. 1. เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ Java เปเบšเบšเบ”เบฑเป‰เบ‡เป€เบ”เบตเบก.

เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ Java เบชเปเบฒเบฅเบฑเบš Cloud

เป€เบกเบทเปˆเบญเบเป‰เบฒเบเป„เบ›เบซเบฒเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบ„เบฅเบฒเบง, Kubernetes เปเบฅเบฐ เบšเบฑเบ™เบˆเบธ. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เบซเบธเป‰เบกเบซเปเปˆเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ Java เปƒเบ™ เบฎเบนเบšเบžเบฒเบšเบšเบฑเบ™เบˆเบธ เปเบฅเบฐเบชเป‰เบฒเบ‡ Kubernetes manifests เบ—เบตเปˆเบญเบฐเบ—เบดเบšเบฒเบเบฎเบนเบšเบžเบฒเบšเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰. เบˆเบฒเบเบ™เบฑเป‰เบ™ manifests เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ–เบทเบเบ™เบณเปƒเบŠเป‰เบเบฑเบšเป€เบŠเบตเบšเป€เบงเบตเบเบฒเบ™เบœเบฐเบฅเบดเบ”เบ—เบตเปˆเปเบฅเปˆเบ™ Kubernetes. เปƒเบ™เบ—เบฒเบ‡เบเบฑเบšเบเบฑเบ™, Kubernetes เป€เบญเบปเบฒเบฎเบนเบšเบžเบฒเบšเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบˆเบฒเบเบ—เบฐเบšเบฝเบ™เปเบฅเบฐเบ™เปเบฒเปƒเบŠเป‰เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ•เบฒเบกเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบ‚เบฝเบ™เป„เบงเป‰เปƒเบ™ manifests, เป€เบŠเบดเปˆเบ‡เบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบงเปเบกเปˆเบ™เป„เบŸเบฅเปŒ YAML.

metamorphosis เบ‚เบญเบ‡เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ Java เปเบšเบšเบ”เบฑเป‰เบ‡เป€เบ”เบตเบกเปƒเบ™เบเบฒเบ™เบซเบฑเบ™เป„เบ›เบชเบนเปˆเบŸเบฑเบ‡เปเบกเปˆเบ™เบชเบฐเปเบ”เบ‡เบขเบนเปˆเปƒเบ™เบฎเบนเบš. 2.

เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™ Java เบชเปเบฒเบฅเบฑเบš Kubernetes เป‚เบ”เบเปƒเบŠเป‰ Eclipse JKube

เป€เบ‚เบปเป‰เบฒ. 2. เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ Java เบชเปเบฒเบฅเบฑเบšเบ„เบฅเบฒเบง.

Eclipse JKube

เบเบฒเบ™เบเป‰เบฒเบเป„เบ› Kubernetes เป€เบžเบตเปˆเบกเบŠเบฑเป‰เบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบญเบทเปˆเบ™เปƒเบซเป‰เบเบฑเบšเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ, เปเบฅเบฐเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบซเบผเบฒเบเบ„เบปเบ™เบเปเปˆเบเบฑเบ‡เบงเบปเบ™เบเบฑเบšเบกเบฑเบ™เป€เบžเบฒเบฐเบงเปˆเบฒเบžเบงเบเป€เบ‚เบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบชเบธเบกเปƒเบชเปˆเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบซเบผเบฑเบเบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒ - เป€เบซเบ”เบœเบปเบ™เบ‚เบญเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™ - เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰เบžเบงเบเบกเบฑเบ™. เปเบฅเบฐเบ™เบตเป‰เปเบกเปˆเบ™เบšเปˆเบญเบ™เบ—เบตเปˆเบกเบฑเบ™เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบเบฒเบ™เบซเบผเบดเป‰เบ™. Eclipse JKube, เป€เบŠเบดเปˆเบ‡เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเปƒเบŠเป‰เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เปเบฅเบฐ plugins เบ‚เบญเบ‡เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒ (เบŠเบธเบ” JKube เบžเป‰เบญเบกเบ”เป‰เบงเบ Kubernetes Maven Plugin เบซเบผเบท OpenShift Maven Plugin) เป€เบžเบทเปˆเบญเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ‚เบญเบ‡ container เปเบฅเบฐ Kubernetes เบ—เบตเปˆเบšเปเปˆเบžเบฐเบเบฒเบเบฒเบกเป‚เบ”เบเบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเปเบœเบ™เบงเบฒเบ”เปƒเบ™เบฎเบนเบš. 2.

เปƒเบ™เบชเปˆเบงเบ™เบ—เบตเปˆเป€เบซเบผเบทเบญเบ‚เบญเบ‡เบšเบปเบ”เบ„เบงเบฒเบกเบ™เบตเป‰, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบชเบฐเปเบ”เบ‡เปƒเบซเป‰เบ—เปˆเบฒเบ™เป€เบซเบฑเบ™เบงเบดเบ—เบตเป€เบฎเบฑเบ”เปƒเบซเป‰เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ Java เปƒเบ™เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก Kubernetes เบ‡เปˆเบฒเบเบ‚เบถเป‰เบ™เป‚เบ”เบเปƒเบŠเป‰ Eclipse JKube เบเบฑเบš Kubernetes Maven Plugin.

เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบ„เบฅเบฒเบงเป‚เบ”เบเปƒเบŠเป‰ Eclipse JKube

เบ‚เปเปƒเบซเป‰เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเป‚เบ„เบ‡เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ Java เบ—เบตเปˆเบกเบตเบเบฒเบ™เบ”เบฑเบ”เปเบเป‰เป€เบฅเบฑเบเบ™เป‰เบญเบเบชเปเบฒเบฅเบฑเบšเป€เบกเบ„เบˆเบฒเบเบฎเบนเบšเบ—เบต 2, เปเบ™เบฐเบ™เปเบฒ Eclipse JKube เปเบฅเบฐ Kubernetes Maven Plugin เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบกเบฑเบ™, เบ”เบฑเปˆเบ‡เบ—เบตเปˆเบชเบฐเปเบ”เบ‡เบขเบนเปˆเปƒเบ™เบฎเบนเบš. 3.

เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™ Java เบชเปเบฒเบฅเบฑเบš Kubernetes เป‚เบ”เบเปƒเบŠเป‰ Eclipse JKube

เป€เบ‚เบปเป‰เบฒ. 3. เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ Java เบชเปเบฒเบฅเบฑเบšเบ„เบฅเบฒเบงเป‚เบ”เบเปƒเบŠเป‰ Eclipse JKube.

เบ”เบฑเปˆเบ‡เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เป€เบซเบฑเบ™เป„เบ”เป‰, เปƒเบ™เบ—เบตเปˆเบ™เบตเป‰เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‡เบฒเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบžเบปเบงเบžเบฑเบ™เบเบฑเบš Kubernetes เปเบฅเบฐเบšเบฑเบ™เบˆเบธ (เป€เบ™เบฑเป‰เบ™เปƒเบชเปˆเบชเบตเปเบ”เบ‡เปƒเบ™เปเบœเบ™เบงเบฒเบ”) เปเบกเปˆเบ™เบ–เบทเบเปเบ—เบ™เบ—เบตเปˆเป‚เบ”เบเบซเบ™เป‰เบฒเบงเบฝเบเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ Eclipse JKube, เป€เบŠเบดเปˆเบ‡เบชเบฐเปเบ”เบ‡เบขเบนเปˆเปƒเบ™เบ•เบฒเบ•เบฐเบฅเบฒเบ‡. 1.

เบ•เบฒเบ•เบฐเบฅเบฒเบ‡ 1. Eclipse JKube เปœเป‰เบฒเบงเบฝเบเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

เบˆเบธเบ”เบ›เบฐเบชเบปเบ‡
เบ‚เบฑเป‰เบ™เบ•เบญเบ™
เบฅเบฒเบโ€‹เบฅเบฐโ€‹เบญเบฝเบ”

k8s:เบชเป‰เบฒเบ‡
PRE_INTEGRATION_TEST
เบเบฒเบ™เบชเป‰เบฒเบ‡เบฎเบนเบšเบžเบฒเบš docker

k8s: เบเบนเป‰
เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡
เบเบณเบฅเบฑเบ‡เบญเบฑเบšเป‚เบซเบฅเบ”เบฎเบนเบš docker เป„เบ›เบ—เบตเปˆเบฅเบตเบˆเบดเบ”เบŠเบต

k8s:เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™
PROCESS_RESOURCES
เบเบฒเบ™เบชเป‰เบฒเบ‡ K8s manifests

k8s: เบ™เบณเปƒเบŠเป‰
เบฅเบงเบšเบฅเบงเบก
เบ™เบณเปƒเบŠเป‰ manifests เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบเบฑเบš K8s

k8s: เบเบปเบเป€เบฅเบตเบเบเบฒเบ™เบ™เบณเปƒเบŠเป‰
เบเบปเบเป€เบฅเบตเบเบเบฒเบ™เบ™เบณเปƒเบŠเป‰
เบเบฒเบ™เบฅเบถเบšเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™ K8s เบ—เบตเปˆเบ–เบทเบเบ™เบณเปƒเบŠเป‰เป‚เบ”เบเปƒเบŠเป‰ k8s:apply เปเบฅเบฐ k8s:deploy

เบซเบกเบฒเบเป€เบซเบ”: เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบ—เปˆเบฒเบ™โ€‹เบšเปเปˆโ€‹เบ•เป‰เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบงเบฝเบโ€‹เบ‡เบฒเบ™โ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบ„เปˆเบฒโ€‹เป€เบฅเบตเปˆเบกโ€‹เบ•เบปเป‰เบ™โ€‹เบ—เบตเปˆโ€‹เบกเบตโ€‹เบ„เบงเบฒเบกโ€‹เบ„เบดเบ”โ€‹เป€เบซเบฑเบ™โ€‹เป€เบซเบผเบปเปˆเบฒโ€‹เบ™เบตเป‰โ€‹, เบ—เปˆเบฒเบ™โ€‹เบ„เบนเปˆโ€‹เบกเบทโ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบ›เบฑเบšโ€‹เบ„เปˆเบฒ Eclipse JKube เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบ•เบปเบงโ€‹เบ—เปˆเบฒเบ™โ€‹เป€เบญเบ‡โ€‹, เป€เบ™เบทเปˆเบญเบ‡โ€‹เบˆเบฒเบโ€‹เบงเปˆเบฒโ€‹เบกเบฑเบ™โ€‹เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™โ€‹เบเบฒเบ™โ€‹เบ•เบฑเป‰เบ‡โ€‹เบ„เปˆเบฒโ€‹เป‚เบ”เบโ€‹เบœเปˆเบฒเบ™โ€‹เบเบฒเบ™ XML ะธ เบŠเบฑเบšโ€‹เบžเบฐโ€‹เบเบฒโ€‹เบเบญเบ™.

เบ•เบญเบ™เบ™เบตเป‰เปƒเบซเป‰เป€เบšเบดเปˆเบ‡เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบเบฒเบ™เปƒเบŠเป‰ Eclipse JKube เปเบฅเบฐ Kubernetes Maven Plugin เป€เบกเบทเปˆเบญเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™.

เบเบฒเบ™เบ™เบณเปƒเบŠเป‰ Java Application เปƒเบ™ Kubernetes เป‚เบ”เบเปƒเบŠเป‰ Eclipse JKube

เปƒเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบ™เปเบฒเปƒเบŠเป‰เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ Java เบ‡เปˆเบฒเบเป†เปƒเบ™เบเบธเปˆเบก เบกเบดเบ™เบดเบ„เบดเบš เปƒเบŠเป‰ Eclipse JKube. เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ Kubernetes Maven Plugin, เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบเปเบฒเบ™เบปเบ”เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบเบฒเบ™เบ™เปเบฒเป„เบ›เปƒเบŠเป‰เป‚เบ”เบเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ‚เบฝเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปƒเบ”เป†.

เป€เบ›เบฑเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ•เบปเบงเบขเปˆเบฒเบ‡เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเปƒเบŠเป‰ เป€เบ„เบทเปˆเบญเบ‡เบเปเบฒเป€เบ™เบตเบ”เบ•เบปเบงเป€เบฅเบเปเบšเบšเบชเบธเปˆเบกเปเบšเบšเบ‡เปˆเบฒเบเบ”เบฒเบ, เป€เบŠเบดเปˆเบ‡เบœเบฐเบฅเบดเบ” JSON output เบขเบนเปˆเบˆเบธเบ”เบชเบดเป‰เบ™เบชเบธเบ” /random:

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

Kubernetes Maven Plugin เบขเบนเปˆเปƒเบ™เบšเปˆเบญเบ™เป€เบเบฑเบšเบกเป‰เบฝเบ™ Maven Central Repository. เป€เบžเบทเปˆเบญเปƒเบŠเป‰ Eclipse JKube เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป€เบžเบตเปˆเบก Kubernetes Maven Plugin เปƒเบชเปˆ pom.xml เบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒเป€เบ›เบฑเบ™เบเบฒเบ™เป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบช:

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

เบ–เป‰เบฒ OpenShift เบ–เบทเบเปƒเบŠเป‰เปเบ—เบ™ Kubernetes เบšเปเบฅเบดเบชเบธเบ”, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™ pom.xml เบ–เบทเบเบ”เบฑเบ”เปเบเป‰เบ”เบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

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

เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ—เบต 2. เบชเป‰เบฒเบ‡เบฎเบนเบšเบžเบฒเบš docker

เป„เบŸเบฅเปŒ JAR เบ‚เบญเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบชเบฒเบกเบฒเบ”เบชเป‰เบฒเบ‡เป„เบ”เป‰เบ”เป‰เบงเบเบ„เปเบฒเบชเบฑเปˆเบ‡ mvn package, เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™ mvn goal task k8s:build เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบฎเบนเบšเบžเบฒเบš docker เบ‚เบญเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™. เบเบฐเบฅเบธเบ™เบฒเบฎเบฑเบšเบŠเบฒเบšเบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบฅเบปเบšเบฅเป‰เบฒเบ‡เบŠเบทเปˆเบฎเบนเบšเบžเบฒเบšเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ™เบตเป‰:

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

เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบชเป‰เบฒเบ‡เบฎเบนเบšเบžเบฒเบš, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒ daemon docker เบ–เบทเบเป€เบ›เบตเบ”เป€เบœเบตเบเบขเปˆเบฒเบ‡เบ–เบทเบเบ•เป‰เบญเบ‡. เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เป„เบ”เป‰เบ”เป‰เบงเบเบ„เปเบฒเบชเบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

$ eval $(minikube docker-env)

เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡ mvn k8s:build, เปเบฅเบฐเบ™เบตเป‰เปเบกเปˆเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเป€เบซเบฑเบ™เปƒเบ™เบซเบ™เป‰เบฒเบˆเปเป€เบกเบทเปˆเบญเบชเป‰เบฒเบ‡เบฎเบนเบšเบžเบฒเบš docker เป‚เบ”เบเปƒเบŠเป‰ Eclipse JKube build task:

~/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โ€‹

เบซเบผเบฑเบ‡เบˆเบฒเบเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบชเป‰เบฒเบ‡เบฎเบนเบšเบžเบฒเบš docker เบเบฑเบš push registry configured (เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบกเบฑเบ™เปเบกเปˆเบ™ docker.io), เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบชเบปเปˆเบ‡เบฎเบนเบšเบžเบฒเบšเบ™เบตเป‰เป„เบ›เบซเบฒเบฅเบตเบˆเบดเบ”เบŠเบต. เบ™เบตเป‰เปเบกเปˆเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบˆเบฐเบชเบฐเปเบ”เบ‡เบซเบผเบฑเบ‡เบˆเบฒเบเบžเบงเบเป€เบฎเบปเบฒเบ‚เปเปƒเบซเป‰ Eclipse JKube เบ›เบฐเบ•เบดเบšเบฑเบ” mvn k8s:push push task:

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

เบซเบผเบฑเบ‡เบˆเบฒเบเบชเบปเปˆเบ‡เบฎเบนเบšเบžเบฒเบš, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบเบงเบ”เป€เบšเบดเปˆเบ‡เบงเปˆเบฒเบกเบฑเบ™เบ–เบทเบเบฅเบงเบกเบขเบนเปˆเปƒเบ™เบ—เบฐเบšเบฝเบ™. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ, เบžเบงเบเป€เบฎเบปเบฒเบžเบฝเบ‡เปเบ•เปˆเป€เบซเบฑเบ™เบกเบฑเบ™เบขเบนเปˆเปƒเบ™ Docker Hub, เบ”เบฑเปˆเบ‡เบ—เบตเปˆเบชเบฐเปเบ”เบ‡เบขเบนเปˆเปƒเบ™เบฎเบนเบš. 4.

เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™ Java เบชเปเบฒเบฅเบฑเบš Kubernetes เป‚เบ”เบเปƒเบŠเป‰ Eclipse JKube

เป€เบ‚เบปเป‰เบฒ. 4. เบฎเบนเบšเบžเบฒเบšเบ—เบตเปˆเบ–เบทเบเบชเบปเปˆเบ‡เป„เบ›เบซเบฒเบฅเบตเบˆเบดเบ”เบŠเบตเบ›เบฒเบเบปเบ”เบขเบนเปˆเปƒเบ™ Docker Hub.

เบ‚เบฑเป‰เบ™เบ•เบญเบ™ 4. เบชเป‰เบฒเบ‡ manifests เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™ Kubernetes เบชเปเบฒเบฅเบฑเบšเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เป€เบเบฑเบšเบเปเบฒเบฎเบนเบšเบžเบฒเบšเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ, เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบžเบงเบเป€เบฎเบปเบฒเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ‚เบฝเบ™ Kubernetes manifests. เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบชเบดเปˆเบ‡เบ™เบตเป‰, Eclipse JKube เบกเบตเบงเบฝเบเบ‡เบฒเบ™เบ—เบตเปˆเบชเป‰เบฒเบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ—เบตเปˆเป€เบ‚เบฑเป‰เบกเบ‡เบงเบ”เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบเบญเบš Java เบžเบทเป‰เบ™เบ–เบฒเบ™ (เป€เบเบตเบšเปƒเบชเปˆเบžเบฒเบเบฎเบฝเบ™ spring, เป‚เบ„เบ, Vert.x เบซเบผเบทเบšเบฒเบ‡เบญเบฑเบ™). เบ™เบญเบเบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบเบฑเบ‡เบชเบฒเบกเบฒเบ”เบ›เบฑเบšเปเบ•เปˆเบ‡ manifest เป‚เบ”เบเปƒเบŠเป‰เป„เบŸเบฅเปŒเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ XML เปเบฅเบฐเบงเบฒเบ‡ fragments เบ”เบดเบš (เบŠเบดเป‰เบ™เบ‚เบญเบ‡ manifest เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™) เปƒเบ™เป‚เบŸเป€เบ”เบตเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™ src/main/jkube. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰, เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบˆเบฐเบ–เบทเบเบญเบฑเบšเป‚เบซเบผเบ”เปƒเบชเปˆ manifests เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™.

เปƒเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ, เบžเบงเบเป€เบฎเบปเบฒเบ›เปˆเบญเบเปƒเบซเป‰เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เป€เบ›เบฑเบ™เบขเบนเปˆ, เปเบฅเบฐเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™ Eclipse JKube เบชเป‰เบฒเบ‡ manifest เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เปƒเบ™เบ•เบญเบ™เบ•เบปเป‰เบ™เปเบฅเบฐเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบ—เบตเปˆเบกเบตเบ›เบฐเป€เบžเบ” ClusterIP. เปเบฅเบฐเบžเบฝเบ‡เปเบ•เปˆเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบžเบงเบเป€เบฎเบปเบฒเบ”เบฑเบ”เปเบ›เบ‡ manifest เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เป€เบžเบทเปˆเบญเบ›เปˆเบฝเบ™เบ›เบฐเป€เบžเบ”เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เป€เบ›เบฑเบ™ NodePort. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ” override เบžเบถเบ”เบ•เบดเบเปเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป‚เบ”เบเปƒเบŠเป‰เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

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

เบ™เบตเป‰เปเบกเปˆเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ‚เบญเบ‡เบซเบ™เป‰เบฒเบˆเปเป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเบซเบผเบฑเบ‡เบˆเบฒเบเบžเบงเบเป€เบฎเบปเบฒเบ‚เปเปƒเบซเป‰ Eclipse JKube เบ›เบฐเบ•เบดเบšเบฑเบ” mvn k8s: เบงเบฝเบเบ‡เบฒเบ™เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™.

~/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. เบ™เบณเปƒเบŠเป‰เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เป„เบ›เปƒเบชเปˆเบเบธเปˆเบก Kubernetes

เบ”เบฝเบงเบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเบžเป‰เบญเบกเปเบฅเป‰เบงเบ—เบตเปˆเบˆเบฐเบ™เบณเปƒเบŠเป‰เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเปˆเบ™: เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบชเป‰เบฒเบ‡เบฎเบนเบšเบžเบฒเบšเบ‚เบญเบ‡เบกเบฑเบ™ เปเบฅเบฐเบˆเบฒเบเบ™เบฑเป‰เบ™เบเปเปˆเบชเป‰เบฒเบ‡ manifests เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”. เบ”เบฝเบงเบ™เบตเป‰เบชเบดเปˆเบ‡เบ—เบตเปˆเบเบฑเบ‡เป€เบซเบผเบทเบญเปเบกเปˆเบ™เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เบ—เบฑเบ‡เปเบปเบ”เบ™เบตเป‰เปƒเบชเปˆเบเบฑเบšเบเบธเปˆเบก Kubernetes. เป€เบžเบทเปˆเบญเบ›เบฑเบšเปƒเบŠเป‰เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™, เปเบ™เปˆเบ™เบญเบ™, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰ kubectl เปƒเบŠเป‰เบ„เปเบฒเบชเบฑเปˆเบ‡ -f, เปเบ•เปˆ plugin เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เป„เบ”เป‰เบชเปเบฒเบฅเบฑเบšเบžเบงเบเป€เบฎเบปเบฒ. เบ™เบตเป‰เปเบกเปˆเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบˆเบฐเบ›เบฒเบเบปเบ”เปƒเบ™เบซเบ™เป‰เบฒเบˆเปเบซเบผเบฑเบ‡เบˆเบฒเบเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบ‚เปเปƒเบซเป‰ Eclipse JKube เบ›เบฐเบ•เบดเบšเบฑเบ” mvn k8s: เบชเบฐเบซเบกเบฑเบเบ‚เปเป€เบญเบปเบฒเบงเบฝเบเบ‡เบฒเบ™:

~/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. เบเบปเบเป€เบฅเบตเบเบเบฒเบ™เบ™เบณเปƒเบŠเป‰เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบˆเบฒเบเบเบธเปˆเบก Kubernetes

เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบชเบดเปˆเบ‡เบ™เบตเป‰, เบงเบฝเบเบ‡เบฒเบ™ undeploy เปเบกเปˆเบ™เปƒเบŠเป‰, เป€เบŠเบดเปˆเบ‡เบžเบฝเบ‡เปเบ•เปˆเป€เบญเบปเบฒเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒ, เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เป€เบกเบทเปˆเบญเบ›เบฐเบ•เบดเบšเบฑเบ”เบซเบ™เป‰เบฒเบงเบฝเบ. เบ™เบตเป‰เปเบกเปˆเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเป€เบซเบฑเบ™เปƒเบ™เบซเบ™เป‰เบฒเบˆเปเบซเบผเบฑเบ‡เบˆเบฒเบเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบ‚เปเปƒเบซเป‰ 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, เป€เบŠเบดเปˆเบ‡เบชเป‰เบฒเบ‡เบ„เบงเบฒเบกเบชเบฐเบ”เบงเบเปƒเบ™เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ Java เบชเปเบฒเบฅเบฑเบšเปเบžเบฅเบฐเบ•เบฐเบŸเบญเบก Kubernetes. เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบ—เปˆเบฒเบ™โ€‹เบšเปเปˆโ€‹เบ•เป‰เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เป€เบ‚เบปเป‰เบฒโ€‹เบซเบ™เป‰เบฒโ€‹เบงเบฝเบโ€‹เป€เบซเบผเบปเปˆเบฒโ€‹เบ™เบตเป‰โ€‹เบขเบนเปˆโ€‹เบชเบฐโ€‹เป€เบซเบกเบตโ€‹เบˆเบฒเบโ€‹เปเบ›เป‰เบ™โ€‹เบžเบดเบกโ€‹, เบ—เปˆเบฒเบ™โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบ‚เบฝเบ™โ€‹เปƒเบซเป‰โ€‹เป€เบ‚เบปเบฒโ€‹เป€เบˆเบปเป‰เบฒโ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เบ•เบฑเป‰เบ‡โ€‹เบ„เปˆเบฒ 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. เบงเบฝเบเบ‡เบฒเบ™เป€เบ›เบปเป‰เบฒเปเบฒเบ Eclipse JKube เป€เบžเบตเปˆเบกเป€เบ•เบตเบก.

เบˆเบธเบ”เบ›เบฐเบชเบปเบ‡
เบ‚เบฑเป‰เบ™เบ•เบญเบ™
เบฅเบฒเบโ€‹เบฅเบฐโ€‹เบญเบฝเบ”

k8s:เบšเบฑเบ™เบ—เบถเบ
เบขเบทเบ™เบขเบฑเบ™
เบเบณเบฅเบฑเบ‡เบฎเบฑเบšเบšเบฑเบ™เบ—เบถเบเบˆเบฒเบเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบ—เบตเปˆเปเบฅเปˆเบ™เบขเบนเปˆเปƒเบ™ Kubernetes.

k8s:เบ”เบตเบšเบฑเบ
PACKAGE
เป€เบ›เบตเบ”เบžเบญเบ”เบ”เบตเบšเบฑเบเป€เบžเบทเปˆเบญเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ”เบตเบšเบฑเบเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบ—เบตเปˆเปเบฅเปˆเบ™เบขเบนเปˆเปƒเบ™ Kubernetes เป‚เบ”เบเบเบปเบ‡เบˆเบฒเบ IDE.

k8s: เบ™เบณเปƒเบŠเป‰
เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡
เบเบฒเบ™เบชเป‰เบฒเบ‡เบ—เบฒเบ‡เปเบเบเบชเปเบฒเบฅเบฑเบšเบงเบฝเบเบ‡เบฒเบ™เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เปเบฅเบฐเบ™เปเบฒเปƒเบŠเป‰ manifests เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบเบฑเบšเบเบธเปˆเบก Kubernetes เปƒเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบเบฒเบ™เบชเบฐเบซเบกเบฑเบเบงเบฝเบ.

k8s:เป€เบšเบดเปˆเบ‡
PACKAGE
เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเปˆเบ™เบฎเป‰เบญเบ™เป†เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เป‚เบ”เบเบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบก namespace เบ‚เบญเบ‡เบกเบฑเบ™.

เบเบฒเบ™เบ™เบณเปƒเบŠเป‰ Java Applications เปƒเบ™ Red Hat OpenShift เป‚เบ”เบเปƒเบŠเป‰ OpenShift Maven Plugin

เป€เบžเบทเปˆเบญเบ™เปเบฒเปƒเบŠเป‰เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบˆเบฒเบเบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเปƒเบ™เป€เบงเบ—เบต Red Hat OpenShift, เบžเบงเบเป€เบฎเบปเบฒเปƒเบŠเป‰ plugin OpenShift Maven. เบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เบžเบฝเบ‡เปเบ•เปˆเบงเปˆเบฒเบ„เปเบฒเบ™เปเบฒเบซเบ™เป‰เบฒเบซเบ™เป‰เบฒเบงเบฝเบเบˆเบฐเบ›เปˆเบฝเบ™เบˆเบฒเบ k8s เป„เบ› oc. เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, plugin Kubernetes Maven เป€เบฎเบฑเบ” docker-assemblies, เปเบฅเบฐ plugin OpenShift Maven - assemblies S2I. เบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเป„เบ”เป‰เป€เบฎเบฑเบ”เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปƒเบ”เป†เบเบฑเบšเป‚เบ„เบ‡เบเบฒเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ, เบเบปเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เบ–เบญเบ™เบŠเบฑเบšเบชเบดเบ™ jkube.generator.name, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบกเบฑเบ™เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ pushing เบเบฑเบšเบฅเบตเบˆเบดเบ”เบŠเบต (เปƒเบ™เป„เบฅเบเบฐเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡, 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 : $

เบงเบดเบ”เบตเป‚เบญเบšเบปเบ”เบฎเบฝเบ™

เป€เบžเบทเปˆเบญเบฎเบฝเบ™เบฎเบนเป‰เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบเปˆเบฝเบงเบเบฑเบšเบงเบดเบ—เบตเป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ Kubernetes เบ‡เปˆเบฒเบเบ‚เบถเป‰เบ™เบ”เป‰เบงเบ Eclipse JKube, เป€เบšเบดเปˆเบ‡เบšเบปเบ”เป€เบเบดเบเบซเบฑเบ”เบงเบดเบ”เบตเป‚เบญเบ™เบตเป‰เบเปˆเบฝเบงเบเบฑเบšเบงเบดเบ—เบตเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ Spring Boot เบ‡เปˆเบฒเบเป†เปƒเบ™ Minikube:

เบชเบฐเบซเบฅเบธเบš

เปƒเบ™เบšเบปเบ”เบ„เบงเบฒเบกเบ™เบตเป‰, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบชเบฐเปเบ”เบ‡เบงเบดเบ—เบตเบเบฒเบ™ Eclipse JKube เป€เบฎเบฑเบ”เปƒเบซเป‰เบŠเบตเบงเบดเบ”เบ‡เปˆเบฒเบเบ‚เบถเป‰เบ™เบชเปเบฒเบฅเบฑเบšเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ Java เป€เบกเบทเปˆเบญเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบš Kubernetes. เบ‚เปเป‰เบกเบนเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบเปˆเบฝเบงเบเบฑเบš Eclipse JKube เบชเบฒเบกเบฒเบ”เบžเบปเบšเป„เบ”เป‰เบ—เบตเปˆ เป€เบงเบฑเบšเป„เบŠเบ—เปŒเบ‚เบญเบ‡เป‚เบ„เบ‡เบเบฒเบ™ เปเบฅเบฐเบชเบธเบ” GitHub.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™