РазвивањС Java Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π·Π° Kubernetes ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ Eclipse JKube

ΠŸΡ€Π΅Π΄ 25 Π³ΠΎΠ΄ΠΈΠ½ΠΈ, Java Π²Π»Π΅Π·Π΅ Π²ΠΎ ΠΌΠ΅Ρ˜Π½ΡΡ‚Ρ€ΠΈΠΌΠΎΡ‚ Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°ΡšΠ΅Ρ‚ΠΎ ΠΈ Π½Π° ΠΊΡ€Π°Ρ˜ΠΎΡ‚ стана Π΅Π΄Π΅Π½ ΠΎΠ΄ основнитС Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ ΠΎΠΊΠΎΠ»Ρƒ ΠΊΠΎΠΈ сС Π³Ρ€Π°Π΄Π°Ρ‚ ΠΊΡƒΠΏΠΎΠ²ΠΈΡ‚Π΅ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈΡ‚Π΅. ΠœΠ΅Ρ“ΡƒΡ‚ΠΎΠ°, дСнСс ΠΌΠ½ΠΎΠ³Ρƒ Π»ΡƒΡ“Π΅ ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠΈ сС лојални Π½Π° Java со Π³ΠΎΠ΄ΠΈΠ½ΠΈ сС Π·Π°Ρ„Π°Ρ‚Π΅Π½ΠΈ со ΠΌΠΈΠ³Ρ€ΠΈΡ€Π°ΡšΠ΅ ΠΈΠ»ΠΈ Ρ€Π°Π·ΠΌΠΈΡΠ»ΡƒΠ²Π°ΡšΠ΅ Π·Π° ΠΌΠΈΠ³Ρ€ΠΈΡ€Π°ΡšΠ΅ Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°. ΠšΡƒΠ±Π΅Ρ€Π½Π΅Ρ‚ΠΈ ΠΈΠ»ΠΈ Π½Π΅Π³ΠΎΠ²ΠΈΡ‚Π΅ Π΄Π΅Ρ€ΠΈΠ²Π°Ρ‚ΠΈ ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ сС Red Hat OpenShift ΠΈΠ»ΠΈ Амазон Π•ΠšΠ‘.

РазвивањС Java Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π·Π° Kubernetes ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ Eclipse JKube

Π—Π° ΠΆΠ°Π», Kubernetes ΠΈΠΌΠ° стрмна ΠΊΡ€ΠΈΠ²Π° Π½Π° ΡƒΡ‡Π΅ΡšΠ΅ ΠΈ Π²ΠΎΠ²Π΅Π΄ΡƒΠ²Π° ΡƒΡˆΡ‚Π΅ Π΅Π΄Π΅Π½ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π΅Π½ слој Π²ΠΎ процСсот Π½Π° Ρ€Π°Π·Π²ΠΎΡ˜ Π½Π° кој сС Π½Π°Π²ΠΈΠΊΠ½Π°Ρ‚ΠΈ Java ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅. ДСнСс ќС Π²ΠΈ ΠΊΠ°ΠΆΠ΅ΠΌΠ΅ ΠΊΠ°ΠΊΠΎ Π΄Π° Π³ΠΎ користитС Eclipse JKube, Π·Π° Π΄Π° сС поСдностават ΠΎΠ²ΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ²Ρ€Π·Π°Π½ΠΈ со Kubernetes ΠΈ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈΡ‚Π΅ ΠΈ Π΄Π° сС ΠΎΠ±Π΅Π·Π±Π΅Π΄ΠΈ Π±Π΅Π·Π±ΠΎΠ»Π½Π° ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΡ˜Π° ΠΊΠΎΠ½ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° ΠΎΠ±Π»Π°ΠΊ, Π΄ΠΎΠ΄Π΅ΠΊΠ° сС ΠΎΠ΄Ρ€ΠΆΡƒΠ²Π° ΠΏΠΎΠ·Π½Π°Ρ‚ΠΈΠΎΡ‚ Java СкосистСм. ΠŸΠΎΠΊΡ€Π°Ρ˜ Ρ‚ΠΎΠ°, ќС ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌΠ΅ ΠΊΠ°ΠΊΠΎ Π΄Π° распорСдитС Java Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° OpenShift ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ Π³ΠΎ ΠΏΡ€ΠΈΠΊΠ»ΡƒΡ‡ΠΎΠΊΠΎΡ‚ OpenShift Maven.

Π’Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π°Π»Π΅Π½ процСс Π½Π° Ρ€Π°Π·Π²ΠΎΡ˜ Π½Π° Јава

Π’Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π°Π»Π΅Π½ Ρ€Π°Π·Π²ΠΎΡ˜Π΅Π½ процСс Јава (Π‘Π»ΠΈΠΊΠ° 1) Π³ΠΎ Π²ΠΊΠ»ΡƒΡ‡ΡƒΠ²Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅Ρ€ΠΎΡ‚ ΠΏΠΈΡˆΡƒΠ²Π°ΡšΠ΅ ΠΊΠΎΠ΄, ΠΏΠΎΡ‚ΠΎΠ° ΠΊΡ€Π΅ΠΈΡ€Π°ΡšΠ΅ Π΅Π΄ΠΈΠ½ΠΈΡ†ΠΈ Π·Π° Ρ€Π°ΡΠΏΠΎΡ€Π΅Π΄ΡƒΠ²Π°ΡšΠ΅ Π²ΠΎ Ρ„ΠΎΡ€ΠΌΠ° Π½Π° Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠΈ JAR ΠΈΠ»ΠΈ WAR, Π° ΠΏΠΎΡ‚ΠΎΠ° Ρ€Π°ΡΠΏΠΎΡ€Π΅Π΄ΡƒΠ²Π°ΡšΠ΅ ΠΈ ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅ Π½Π° ΠΎΠ²ΠΈΠ΅ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠΈ Π½Π° Π²Π΅Π± ΠΈΠ»ΠΈ сСрвСр Π·Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ. Π“Π»Π°Π²Π½ΠΈΠΎΡ‚ Π½Π°Ρ‡ΠΈΠ½ Π΄Π° Π³ΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ ΠΎΠ²Π° Π΅ Π΄Π° Π³ΠΎ користитС Maven ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Π½Π°Ρ‚Π° линија ΠΈΠ»ΠΈ Π΄Π° користитС IDE ΠΊΠ°ΠΊΠΎ IntelliJ ΠΈΠ»ΠΈ Eclipse Π·Π° ΠΊΠΎΠ΄ΠΈΡ€Π°ΡšΠ΅ ΠΈ ΠΏΠ°ΠΊΡƒΠ²Π°ΡšΠ΅ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈΡ‚Π΅. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ сС Π½Π°Π²ΠΈΠΊΠ½Π°Ρ‚ΠΈ Π΄Π° ΠΏΡ€Π°Π²Π°Ρ‚ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π²ΠΎ ΠΊΠΎΠ΄ΠΎΡ‚ ΠΈ Π΄Π° тСстираат сè Ρ‚Π΅ΠΌΠ΅Π»Π½ΠΎ ΠΏΡ€Π΅Π΄ Π΄Π° Π³ΠΎ ΠΈΠ·Π²Ρ€ΡˆΠ°Ρ‚ ΠΊΠΎΠ΄ΠΎΡ‚ ΠΈ Π΄Π° Π³ΠΎ поднСсат Π½Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π° Π½Π° Π²Π΅Ρ€Π·ΠΈΡ˜Π°Ρ‚Π°.

РазвивањС Java Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π·Π° Kubernetes ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ Eclipse JKube

ΠžΡ€ΠΈΠ·. 1. Π’Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π°Π»Π΅Π½ процСс Π½Π° Ρ€Π°Π·Π²ΠΎΡ˜ Π½Π° Јава.

ΠŸΡ€ΠΎΡ†Π΅Ρ Π·Π° Ρ€Π°Π·Π²ΠΎΡ˜ Π½Π° Јава Π·Π° ΠΎΠ±Π»Π°ΠΊΠΎΡ‚

Кога сС ΠΏΡ€Π΅Ρ„Ρ€Π»Π°Ρ‚Π΅ Π²ΠΎ ΠΎΠ±Π»Π°ΠΊ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ, Kubernetes ΠΈ ΠšΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈΡ‚Π΅. Π—Π°Ρ‚ΠΎΠ°, сСга Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‡ΠΎΡ‚ Ρ‚Ρ€Π΅Π±Π° Π΄Π° Π³ΠΈ спакува Java Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈΡ‚Π΅ слики ΠΎΠ΄ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈ ΠΈ ΠΊΡ€Π΅ΠΈΡ€Π°Ρ˜Ρ‚Π΅ ΠšΡƒΠ±Π΅Ρ€Π½Π΅Ρ‚Π΅Ρ манифСстации ΠΊΠΎΠΈ Π³ΠΈ ΠΎΠΏΠΈΡˆΡƒΠ²Π°Π°Ρ‚ ΠΎΠ²ΠΈΠ΅ слики. ОвиС манифСстации ΠΏΠΎΡ‚ΠΎΠ° сС ΠΏΡ€ΠΈΠΌΠ΅Π½ΡƒΠ²Π°Π°Ρ‚ Π½Π° производствСниот сСрвСр кој Ρ€Π°Π±ΠΎΡ‚ΠΈ со Kubernetes. Π—Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‚, Kubernetes Π³ΠΈ Π·Π΅ΠΌΠ° ΠΎΠ²ΠΈΠ΅ слики ΠΎΠ΄ рСгистарот ΠΈ распорСдува Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ спорСд ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈΡ‚Π΅ ΡˆΡ‚ΠΎ Π³ΠΈ напишавмС Π²ΠΎ манифСстациитС, ΠΊΠΎΠΈ ΠΎΠ±ΠΈΡ‡Π½ΠΎ сС YAML-Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠΈ.

ΠœΠ΅Ρ‚Π°ΠΌΠΎΡ€Ρ„ΠΎΠ·Π°Ρ‚Π° Π½Π° Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΈΠΎΡ‚ процСс Π½Π° Ρ€Π°Π·Π²ΠΎΡ˜ Π½Π° Јава ΠΏΡ€ΠΈ ΠΏΡ€Π΅ΠΌΠΈΠ½ΠΎΡ‚ ΠΊΠΎΠ½ ΠΎΠ±Π»Π°ΠΊΠΎΡ‚ Π΅ ΠΏΡ€ΠΈΠΊΠ°ΠΆΠ°Π½Π° Π½Π° сл. 2.

РазвивањС Java Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π·Π° Kubernetes ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ Eclipse JKube

ΠžΡ€ΠΈΠ·. 2. Јава процСс Π½Π° Ρ€Π°Π·Π²ΠΎΡ˜ Π·Π° ΠΎΠ±Π»Π°ΠΊΠΎΡ‚.

Eclipse JKube

ΠœΠΈΠ³Ρ€ΠΈΡ€Π°ΡšΠ΅Ρ‚ΠΎ Π²ΠΎ Kubernetes Π΄ΠΎΠ΄Π°Π²Π° ΡƒΡˆΡ‚Π΅ Π΅Π΄Π΅Π½ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π΅Π½ слој Π½Π° процСсот Π½Π° Ρ€Π°Π·Π²ΠΎΡ˜, Π° ΠΌΠ½ΠΎΠ³Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅Ρ€ΠΈ сС Π½Π΅Ρ€Π²ΠΎΠ·Π½ΠΈ ΠΏΠΎΡ€Π°Π΄ΠΈ Ρ‚ΠΎΠ° бидСјќи сакаат Π΄Π° сС фокусираат Π½Π° Π½ΠΈΠ²Π½Π°Ρ‚Π° основна Ρ€Π°Π±ΠΎΡ‚Π° - Π»ΠΎΠ³ΠΈΠΊΠ°Ρ‚Π° Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π° - намСсто ΠΊΠ°ΠΊΠΎ Π΄Π° Π³ΠΈ распорСдат. И Ρ‚ΡƒΠΊΠ° Π΄ΠΎΠ°Ρ“Π° Π²ΠΎ ΠΈΠ³Ρ€Π°. Eclipse JKube, ΡˆΡ‚ΠΎ ΠΈΠΌ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π° Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ Π΄Π° Π³ΠΈ користат Π½ΠΈΠ²Π½ΠΈΡ‚Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ ΠΏΡ€ΠΈΠΊΠ»ΡƒΡ‡ΠΎΡ†ΠΈ (ΠšΠΎΠΌΠΏΠ»Π΅Ρ‚ JKube Π·Π°Π΅Π΄Π½ΠΎ со ΠŸΡ€ΠΈΠΊΠ»ΡƒΡ‡ΠΎΠΊ Kubernetes Maven ΠΈΠ»ΠΈ ΠŸΡ€ΠΈΠΊΠ»ΡƒΡ‡ΠΎΠΊ OpenShift Maven) Π±Π΅Π· Π½Π°ΠΏΠΎΡ€ Π΄Π° Π²Ρ€ΡˆΠΈΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ²Ρ€Π·Π°Π½ΠΈ со ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΎΡ‚ ΠΈ Kubernetes слСдСјќи Π³ΠΎ Π΄ΠΈΡ˜Π°Π³Ρ€Π°ΠΌΠΎΡ‚ Π½Π° Π‘Π»ΠΈΠΊΠ°. 2.

Π’ΠΎ остатокот ΠΎΠ΄ овој напис, ќС Π²ΠΈ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌΠ΅ ΠΊΠ°ΠΊΠΎ Π΄Π° Π³ΠΎ поСдноставитС процСсот Π½Π° Ρ€Π°Π·Π²ΠΎΡ˜ Π½Π° Java Π²ΠΎ ΠΎΠΊΠΎΠ»ΠΈΠ½Π°Ρ‚Π° Π½Π° Kubernetes со ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ Π½Π° Eclipse JKube со ΠΏΡ€ΠΈΠΊΠ»ΡƒΡ‡ΠΎΠΊΠΎΡ‚ Kubernetes Maven.

ΠŸΡ€ΠΎΡ†Π΅Ρ Π½Π° Ρ€Π°Π·Π²ΠΎΡ˜ Π½Π° ΠΎΠ±Π»Π°ΠΊ со ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ Π½Π° Eclipse JKube

АјдС Π΄Π° Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΌΠ°Π»ΠΊΡƒ ΠΈΠ·ΠΌΠ΅Π½Π΅Ρ‚Π° шСма Π·Π° Ρ€Π°Π·Π²ΠΎΡ˜ Π½Π° Java Π·Π° ΠΎΠ±Π»Π°ΠΊΠΎΡ‚ ΠΎΠ΄ Π‘Π». 2, Π²ΠΎΠ²Π΅Π΄ΡƒΠ²Π°Ρ˜ΡœΠΈ Π³ΠΈ Eclipse JKube ΠΈ Kubernetes Maven Plugin Π²ΠΎ Π½Π΅Π°, ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ Π΅ ΠΏΡ€ΠΈΠΊΠ°ΠΆΠ°Π½ΠΎ Π½Π° сл. 3.

РазвивањС Java Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π·Π° Kubernetes ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ Eclipse JKube

ΠžΡ€ΠΈΠ·. 3. ΠŸΡ€ΠΎΡ†Π΅Ρ Π½Π° Ρ€Π°Π·Π²ΠΎΡ˜ Π½Π° Јава Π·Π° ΠΎΠ±Π»Π°ΠΊΠΎΡ‚ ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ Eclipse JKube.

Како ΡˆΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌΠ΅, ΠΎΠ²Π΄Π΅ ситС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π·Π° ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ†ΠΈΡ˜Π° со Kubernetes ΠΈ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈΡ‚Π΅ (ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈ со Ρ†Ρ€Π²Π΅Π½ΠΎ Π½Π° Π΄ΠΈΡ˜Π°Π³Ρ€Π°ΠΌΠΎΡ‚) сС Π·Π°ΠΌΠ΅Π½Π΅Ρ‚ΠΈ со стандарднитС Π·Π°Π΄Π°Ρ‡ΠΈ Π·Π° Ρ†Π΅Π»ΠΈ Π½Π° Eclipse JKube, ΠΊΠΎΠΈ сС Π½Π°Π²Π΅Π΄Π΅Π½ΠΈ Π²ΠΎ Π’Π°Π±Π΅Π»Π°. 1.

Π’Π°Π±Π΅Π»Π° 1. Eclipse JKube стандарднитС Π·Π°Π΄Π°Ρ‡ΠΈ.

Π—Π°Π΄Π°Ρ‡Π°
Π€Π°Π·Π°
Опис

k8s: ΠΈΠ·Π³Ρ€Π°Π΄ΠΈ
PRE_INTEGRATION_TEST
Π˜Π·Π³Ρ€Π°Π΄Π±Π° Π½Π° Π΄ΠΎΠΊΠ΅Ρ€ слики

k8s: Ρ‚ΡƒΡ€ΠΊΠ°ΡšΠ΅
ΠœΠžΠΠ’ΠΠ–Π
ΠŸΠΎΡΡ‚Π°Π²ΡƒΠ²Π°ΡšΠ΅ Π½Π° Π΄ΠΎΠΊΠ΅Ρ€ слики Π²ΠΎ рСгистарот

k8s:рСсурс
PROCESS_RESOURCES
Π“Π΅Π½Π΅Ρ€ΠΈΡ€Π°ΡšΠ΅ Π½Π° K8s сС манифСстира

k8s: ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈ
ΠšΠžΠœΠŸΠ˜Π›Π˜Π ΠΠˆ
ΠŸΡ€ΠΈΠΌΠ΅Π½Π° Π½Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½ΠΈ манифСсти Π½Π° K8s

k8s: undeploy
ΠΠ•Π ΠΠ‘ΠžΠ’Π£Π’ΠΠŠΠ•
ΠžΡ‚ΡΡ‚Ρ€Π°Π½ΡƒΠ²Π°ΡšΠ΅ Π½Π° рСсурситС Π½Π° K8 ΠΊΠΎΠΈ Π±Π΅Π° распорСдСни со помош Π½Π° k8s:apply ΠΈ k8s:deploy

Π—Π°Π±Π΅Π»Π΅ΡˆΠΊΠ°: Ако Π½Π΅ сакатС Π·Π°Π΄Π°Ρ‡ΠΈΡ‚Π΅ Π΄Π° Π³ΠΈ користат ΠΎΠ²ΠΈΠ΅ ΠΏΠΎΡ‚Π²Ρ€Π΄Π΅Π½ΠΈ стандардни поставки, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π°Ρ‡Π½ΠΎ Π΄Π° Π³ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Ρ‚Π΅ Eclipse JKube Π·Π° сСбС, бидСјќи ΠΏΠΎΠ΄Π΄Ρ€ΠΆΡƒΠ²Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜Π° ΠΏΡ€Π΅ΠΊΡƒ XML ΠΈ рСсурсы.

Π‘Π΅Π³Π° Π΄Π° ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΠΌΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ Π·Π° ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ Π½Π° Eclipse JKube ΠΈ Kubernetes Maven Plugin ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° со Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ.

Π Π°ΡΠΏΠΎΡ€Π΅Π΄ΡƒΠ²Π°ΡšΠ΅ Java Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° Π½Π° Kubernetes со ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ Π½Π° Eclipse JKube

Π’ΠΎ овој ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ќС распорСдимС Сдноставна Java Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° Π½Π° кластСр ΠœΠΈΠ½ΠΈΠΊΡƒΠ±Π΅ ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ Eclipse JKube. ΠšΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ Π³ΠΎ ΠΏΡ€ΠΈΠΊΠ»ΡƒΡ‡ΠΎΠΊΠΎΡ‚ Kubernetes Maven, ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° поставимС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ Π·Π° Ρ€Π°ΡΠΏΠΎΡ€Π΅Π΄ΡƒΠ²Π°ΡšΠ΅ Π±Π΅Π· Π΄Π° ΠΌΠΎΡ€Π° Π΄Π° ΠΏΠΈΡˆΡƒΠ²Π°ΠΌΠ΅ ΠΊΠ°ΠΊΠ²Π° Π±ΠΈΠ»ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜Π°.

Како ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° ΡˆΡ‚ΠΎ ја користимС СдноставСн Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ Π½Π° случаСн Π±Ρ€ΠΎΡ˜, кој ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄ΡƒΠ²Π° JSON ΠΈΠ·Π»Π΅Π· Π½Π° /ΡΠ»ΡƒΡ‡Π°Ρ˜Π½Π° ΠΊΡ€Π°Ρ˜Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ°:

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

Π§Π΅ΠΊΠΎΡ€ 1. ΠŸΡ€Π΅Π·Π΅ΠΌΠ΅Ρ‚Π΅ Π³ΠΎ ΠΏΡ€ΠΈΠΊΠ»ΡƒΡ‡ΠΎΠΊΠΎΡ‚ Kubernetes Maven

ΠŸΡ€ΠΈΠΊΠ»ΡƒΡ‡ΠΎΠΊΠΎΡ‚ Kubernetes Maven Π΅ Π²ΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡˆΡ‚Π΅Ρ‚ΠΎ Π¦Π΅Π½Ρ‚Ρ€Π°Π»Π½ΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡˆΡ‚Π΅ Maven. Π—Π° Π΄Π° користитС Eclipse JKube, Ρ‚Ρ€Π΅Π±Π° Π΄Π° Π³ΠΎ Π΄ΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ ΠΏΡ€ΠΈΠΊΠ»ΡƒΡ‡ΠΎΠΊΠΎΡ‚ Kubernetes Maven Π½Π° Π²Π°ΡˆΠΈΠΎΡ‚ 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. Π˜Π·Π³Ρ€Π°Π΄Π΅Ρ‚Π΅ ја докСрската слика

JAR-Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π° ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·Π³Ρ€Π°Π΄ΠΈ со ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΡ‚ mvn, Π° ΠΏΠΎΡ‚ΠΎΠ° Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° Π·Π° Ρ†Π΅Π» mvn k8s:build ΠΌΠΎΠΆΠ΅ Π΄Π° сС користи Π·Π° Π΄Π° сС ΠΈΠ·Π³Ρ€Π°Π΄ΠΈ Π΄ΠΎΠΊΠ΅Ρ€ слика Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π°. Π—Π°Π±Π΅Π»Π΅ΠΆΠ΅Ρ‚Π΅ Π΄Π΅ΠΊΠ° Π³ΠΎ ΠΎΡ‚Ρ„Ρ€Π»ΠΈΠ²ΠΌΠ΅ стандардното ΠΈΠΌΠ΅ Π½Π° сликата со ΠΎΠ²Π° ΡΠ²ΠΎΡ˜ΡΡ‚Π²ΠΎ:

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

ΠŸΡ€Π΅Π΄ Π΄Π° ја ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΡ‚Π΅ сликата, Ρ‚Ρ€Π΅Π±Π° Π΄Π° Π±ΠΈΠ΄Π΅Ρ‚Π΅ сигурни Π΄Π΅ΠΊΠ° докСрскиот Π΄Π΅ΠΌΠΎΠ½ Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½. Ова ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π½Π°ΠΏΡ€Π°Π²ΠΈ со слСднава ΠΊΠΎΠΌΠ°Π½Π΄Π°:

$ eval $(minikube docker-env)

ΠŸΠΎΡ‚ΠΎΠ° ја внСсувамС ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° mvn k8s:build ΠΈ ΠΎΠ²Π° Π΅ ΠΎΠ½Π° ΡˆΡ‚ΠΎ ќС Π³ΠΎ Π²ΠΈΠ΄ΠΈΠΌΠ΅ Π½Π° Π΅ΠΊΡ€Π°Π½ΠΎΡ‚ ΠΊΠΎΠ³Π° ја создавамС сликата Π½Π° Π΄ΠΎΠΊΠ΅Ρ€ ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ ја Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° Π·Π° ΠΈΠ·Π³Ρ€Π°Π΄Π±Π° Π½Π° Eclipse JKube:

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

Π§Π΅ΠΊΠΎΡ€ 3. ΠŸΠΎΡΡ‚Π°Π²Π΅Ρ‚Π΅ ја сликата Π²ΠΎ рСгистарот Π½Π° Π΄ΠΎΠΊΠ΅Ρ€

ΠžΡ‚ΠΊΠ°ΠΊΠΎ ќС ја ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌΠ΅ сликата Π½Π° Π΄ΠΎΠΊΠ΅Ρ€ΠΎΡ‚ со ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½ рСгистСр Π·Π° push (Π²ΠΎ Π½Π°ΡˆΠΈΠΎΡ‚ ΡΠ»ΡƒΡ‡Π°Ρ˜ Ρ‚ΠΎΠ° Π΅ docker.io), ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° ја испратимС ΠΎΠ²Π°Π° слика Π²ΠΎ рСгистарот. Ова Π΅ ΠΎΠ½Π° ΡˆΡ‚ΠΎ ќС сС ΠΏΡ€ΠΈΠΊΠ°ΠΆΠ΅ ΠΎΡ‚ΠΊΠ°ΠΊΠΎ ќС ΠΏΠΎΠ±Π°Ρ€Π°ΠΌΠ΅ ΠΎΠ΄ Eclipse JKube Π΄Π° ја ΠΈΠ·Π²Ρ€ΡˆΠΈ Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° mvn k8s:push push:

~/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. Π‘ΠΎΠ·Π΄Π°Π΄Π΅Ρ‚Π΅ манифСстации Π½Π° рСсурси Π½Π° ΠšΡƒΠ±Π΅Ρ€Π½Π΅Ρ‚Ρ Π·Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π°

Π—Π½Π°Ρ‡ΠΈ, ја собравмС сликата Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π°, сСга Ρ‚Ρ€Π΅Π±Π° Π΄Π° напишСмС Kubernetes манифСстации. Π—Π° Π΄Π° Π³ΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ ΠΎΠ²Π°, Eclipse JKube ΠΈΠΌΠ° Π·Π°Π΄Π°Ρ‡Π° ΡˆΡ‚ΠΎ Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° ΠΊΡ€ΡƒΡ‚ΠΈ рСсурсни манифСстации Π²Ρ€Π· основа Π½Π° основната Java Ρ€Π°ΠΌΠΊΠ° (ΠŸΡ€ΠΎΠ»Π΅Ρ‚Π½Π° Ρ‡ΠΈΠ·ΠΌΠ°, ΠšΠ²Π°Ρ€ΠΊΡƒΡ, Vert.x ΠΈΠ»ΠΈ нСкој Π΄Ρ€ΡƒΠ³). ΠœΠΎΠΆΠ΅Ρ‚Π΅ исто Ρ‚Π°ΠΊΠ° Π΄Π° Π³ΠΎ приспособитС манифСстот со ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ Π½Π° конфигурациска Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ° XML ΠΈ ΡΡ‚Π°Π²Π°ΡšΠ΅ Π½Π΅ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π΅Π½ΠΈ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΈ (Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΈ ΠΎΠ΄ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΈΠΎΡ‚ манифСст Π½Π° рСсурси) Π²ΠΎ ΠΏΠ°ΠΏΠΊΠ°Ρ‚Π° со Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ src/main/jkube. Π’ΠΎ овој ΡΠ»ΡƒΡ‡Π°Ρ˜, Π²Π°ΡˆΠ°Ρ‚Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜Π° ќС Π±ΠΈΠ΄Π΅ поставСна Π½Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½ΠΈΡ‚Π΅ манифСсти.

Π’ΠΎ Π½Π°ΡˆΠΈΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, оставамС сè ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ Π΅, ΠΈ Π·Π°Ρ‚ΠΎΠ° Eclipse JKube Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° манифСст Π·Π° стандардното Ρ€Π°ΡΠΏΠΎΡ€Π΅Π΄ΡƒΠ²Π°ΡšΠ΅ ΠΈ Π·Π° услугата со Ρ‚ΠΈΠΏ ClusterIP. И само Ρ‚ΠΎΠ³Π°Ρˆ Π³ΠΎ ΠΌΠ΅Π½ΡƒΠ²Π°ΠΌΠ΅ манифСстот Π½Π° услугата Π·Π° Π΄Π° Π³ΠΎ смСнимС Ρ‚ΠΈΠΏΠΎΡ‚ Π½Π° услугата Π²ΠΎ NodePort. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π³ΠΎ ΠΎΡ‚Ρ„Ρ€Π»ΠΈΡ‚Π΅ стандардното ΠΎΠ΄Π½Π΅ΡΡƒΠ²Π°ΡšΠ΅ ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ Π³ΠΎ слСдново ΡΠ²ΠΎΡ˜ΡΡ‚Π²ΠΎ:

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

Π’Π°ΠΊΠ° ΠΈΠ·Π³Π»Π΅Π΄Π° ΠΈΠ·Π»Π΅Π·ΠΎΡ‚ Π½Π° Π΅ΠΊΡ€Π°Π½ΠΎΡ‚ ΠΎΡ‚ΠΊΠ°ΠΊΠΎ ќС ΠΏΠΎΠ±Π°Ρ€Π°ΠΌΠ΅ ΠΎΠ΄ Eclipse JKube Π΄Π° ја ΠΈΠ·Π²Ρ€ΡˆΠΈ Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° mvn k8s:resource resource.

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

Π§Π΅ΠΊΠΎΡ€ 5. РаспорСдСтС ја Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π° Π²ΠΎ кластСрот Kubernetes

Π‘Π΅Π³Π° смС ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½ΠΈ Π΄Π° ја распорСдимС Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π°: ја Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π²ΠΌΠ΅ Π½Π΅Ρ˜Π·ΠΈΠ½Π°Ρ‚Π° слика ΠΈ ΠΏΠΎΡ‚ΠΎΠ° автоматски Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π²ΠΌΠ΅ манифСстации Π½Π° рСсурси. Π‘Π΅Π³Π° останува само Π΄Π° сС ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈ сСто ΠΎΠ²Π° Π½Π° кластСрот Kubernetes. Π—Π° Π΄Π° ја распорСдитС Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π°, ΠΌΠΎΠΆΠ΅Ρ‚Π΅, сС Ρ€Π°Π·Π±ΠΈΡ€Π°, Π΄Π° ја користитС ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° kubectl apply -f, Π½ΠΎ Π΄ΠΎΠ΄Π°Ρ‚ΠΎΠΊΠΎΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° Π³ΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈ Ρ‚ΠΎΠ° Π·Π° нас. Ова Π΅ ΠΎΠ½Π° ΡˆΡ‚ΠΎ ќС сС појави Π½Π° Π΅ΠΊΡ€Π°Π½ΠΎΡ‚ ΠΎΡ‚ΠΊΠ°ΠΊΠΎ ќС ΠΏΠΎΠ±Π°Ρ€Π°ΠΌΠ΅ ΠΎΠ΄ Eclipse JKube Π΄Π° ја ΠΈΠ·Π²Ρ€ΡˆΠΈ Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° mvn k8s:apply Apply:

~/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>
     <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:log
Π’ΠΠ›Π˜Π”Π˜Π ΠΠˆ
ΠŸΡ€ΠΈΠΌΠ°ΡšΠ΅ Π΄Π½Π΅Π²Π½ΠΈΡ†ΠΈ ΠΎΠ΄ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° која Ρ€Π°Π±ΠΎΡ‚ΠΈ Π½Π° ΠšΡƒΠ±Π΅Ρ€Π½Π΅Ρ‚.

k8s: debug
ΠŸΠΠšΠ•Π’
ΠžΡ‚Π²ΠΎΡ€Π΅Ρ‚Π΅ ΠΏΠΎΡ€Ρ‚Π° Π·Π° ΠΎΡ‚ΡΡ‚Ρ€Π°Π½ΡƒΠ²Π°ΡšΠ΅ Π³Ρ€Π΅ΡˆΠΊΠΈ Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ја Π΄Π΅Π±Π°Π³ΠΈΡ€Π°Ρ‚Π΅ Π²Π°ΡˆΠ°Ρ‚Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° која Ρ€Π°Π±ΠΎΡ‚ΠΈ Π½Π° Kubernetes Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ ΠΎΠ΄ IDE.

k8s: распорСди
ΠœΠžΠΠ’ΠΠ–Π
БоздавањС Π²ΠΈΠ»ΡƒΡˆΠΊΠ° Π·Π° Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° Install ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π° Π½Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½ΠΈΡ‚Π΅ манифСстации Π²ΠΎ кластСрот Kubernetes Π½Π° ист Π½Π°Ρ‡ΠΈΠ½ ΠΊΠ°ΠΊΠΎ ΠΈ Π²ΠΎ ΡΠ»ΡƒΡ‡Π°Ρ˜ΠΎΡ‚ со Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈ.

k8s: часовник
ΠŸΠΠšΠ•Π’
Автоматско ТСшко Ρ€Π°ΡΠΏΠΎΡ€Π΅Π΄ΡƒΠ²Π°ΡšΠ΅ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π° со слСдСњС Π½Π° Π½Π΅Ρ˜Π·ΠΈΠ½ΠΈΠΎΡ‚ имСнски простор.

Π Π°ΡΠΏΠΎΡ€Π΅Π΄ΡƒΠ²Π°ΡšΠ΅ Java Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π½Π° Red Hat OpenShift со ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ Π½Π° ΠΏΡ€ΠΈΠΊΠ»ΡƒΡ‡ΠΎΠΊΠΎΡ‚ OpenShift Maven

Π—Π° Π΄Π° ја распорСдимС Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π° ΠΎΠ΄ Π½Π°ΡˆΠΈΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Red Hat OpenShift, Π³ΠΎ користимС Π΄ΠΎΠ΄Π°Ρ‚ΠΎΠΊΠΎΡ‚ OpenShift Maven. ЕдинствСната Ρ€Π°Π·Π»ΠΈΠΊΠ° ќС Π±ΠΈΠ΄Π΅ ΡˆΡ‚ΠΎ прСфиксот Π½Π° Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° ќС сС ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ ΠΎΠ΄ k8s Π²ΠΎ oc. Π‘Ρ‚Π°Π½Π΄Π°Ρ€Π΄Π½ΠΎ, ΠΏΡ€ΠΈΠΊΠ»ΡƒΡ‡ΠΎΠΊΠΎΡ‚ Kubernetes Maven Π³ΠΎ ΠΏΡ€Π°Π²ΠΈ Ρ‚ΠΎΠ° Π΄ΠΎΠΊΠ΅Ρ€-склопови, ΠΈ ΠΏΡ€ΠΈΠΊΠ»ΡƒΡ‡ΠΎΠΊΠΎΡ‚ OpenShift Maven - склопови S2I. НС ΠΏΡ€Π°Π²ΠΈΠΌΠ΅ Π½ΠΈΠΊΠ°ΠΊΠ²ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π²ΠΎ Π½Π°ΡˆΠΈΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ освСн ΠΎΡ‚ΡΡ‚Ρ€Π°Π½ΡƒΠ²Π°ΡšΠ΅ Π½Π° ΡΠ²ΠΎΡ˜ΡΡ‚Π²ΠΎΡ‚ΠΎ jkube.generator.name бидСјќи Ρ‚ΠΎΠ° Π½Π΅ Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎ ΠΏΡ€ΠΈ ΠΏΡ€ΠΈΡ‚ΠΈΡΠΊΠ°ΡšΠ΅ Π²ΠΎ рСгистарот (OpenShift ја става сликата Π²ΠΎ ΡΠ²ΠΎΡ˜ΠΎΡ‚ Π²Π½Π°Ρ‚Ρ€Π΅ΡˆΠ΅Π½ рСгистар Π·Π° Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Ρ„Π°Π·Π°Ρ‚Π° Π½Π° Π³Ρ€Π°Π΄Π΅ΡšΠ΅). И ΠΎΠ²Π° Π΅ ΠΎΠ½Π° ΡˆΡ‚ΠΎ ќС сС појави Π½Π° Π΅ΠΊΡ€Π°Π½ΠΎΡ‚ ΠΊΠΎΠ³Π° ќС Π³ΠΎ ΠΈΠ·Π²Ρ€ΡˆΠΈΠΌΠ΅ Π½Π°ΡˆΠΈΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²ΠΎ кој, ΠΏΠ°Ρ‚Π΅ΠΌ, Π³ΠΈ ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΠΌΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈΡ‚Π΅ Π·Π° Ρ†Π΅Π» Π½Π΅ Π΅Π΄Π½Π° ΠΏΠΎ Π΅Π΄Π½Π°, Ρ‚ΡƒΠΊΡƒ одСднаш:

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

Π’ΠΈΠ΄Π΅ΠΎ Π»Π΅ΠΊΡ†ΠΈΡ˜Π°

Π—Π° Π΄Π° Π΄ΠΎΠ·Π½Π°Π΅Ρ‚Π΅ повСќС Π·Π° Ρ‚ΠΎΠ° ΠΊΠ°ΠΊΠΎ Π΄Π° Π³ΠΎ олСснитС Ρ€Π°Π·Π²ΠΎΡ˜ΠΎΡ‚ Π½Π° Kubernetes со Eclipse JKube, ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅Ρ‚Π΅ Π³ΠΎ ΠΎΠ²Π° Π²ΠΈΠ΄Π΅ΠΎ Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΡ˜Π°Π» Π·Π° Ρ‚ΠΎΠ° ΠΊΠ°ΠΊΠΎ Π±Ρ€Π·ΠΎ Π΄Π° распорСдитС Сдноставна Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° Spring Boot Π½Π° Minikube:

Π—Π°ΠΊΠ»ΡƒΡ‡ΠΎΠΊ

Π’ΠΎ ΠΎΠ²Π°Π° ΡΡ‚Π°Ρ‚ΠΈΡ˜Π°, ΠΏΠΎΠΊΠ°ΠΆΠ°Π²ΠΌΠ΅ ΠΊΠ°ΠΊΠΎ Eclipse JKube Π³ΠΎ олСснува ΠΆΠΈΠ²ΠΎΡ‚ΠΎΡ‚ Π½Π° Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‡ΠΎΡ‚ Π½Π° Java ΠΊΠΎΠ³Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ со Kubernetes. ПовСќС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π·Π° Eclipse JKube ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π°Ρ˜Π΄Π΅Ρ‚Π΅ Π½Π° Π²Π΅Π±-страница Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚ ΠΈ GitHub.

Π˜Π·Π²ΠΎΡ€: www.habr.com

Π”ΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€