Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅ Π½Π° Java прилоТСния Π·Π° Kubernetes с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Eclipse JKube

ΠŸΡ€Π΅Π΄ΠΈ 25 Π³ΠΎΠ΄ΠΈΠ½ΠΈ Java Π½Π°Π²Π»Π΅Π·Π΅ Π² основния ΠΏΠΎΡ‚ΠΎΠΊ Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ ΠΈ Π² ΠΊΡ€Π°ΠΉΠ½Π° смСтка сС ΠΏΡ€Π΅Π²ΡŠΡ€Π½Π° Π² Π΅Π΄ΠΈΠ½ ΠΎΡ‚ основнитС Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ, ΠΎΠΊΠΎΠ»ΠΎ ΠΊΠΎΠΈΡ‚ΠΎ сС ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Ρ‚ стСковС Π½Π° прилоТСния. ДнСс ΠΎΠ±Π°Ρ‡Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Ρ…ΠΎΡ€Π° ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ са Π±ΠΈΠ»ΠΈ лоялни към Java ΠΎΡ‚ ΠΌΠ½ΠΎΠ³ΠΎ Π³ΠΎΠ΄ΠΈΠ½ΠΈ, са Π·Π°Π΅Ρ‚ΠΈ с ΠΌΠΈΠ³Ρ€ΠΈΡ€Π°Π½Π΅ ΠΈΠ»ΠΈ обмислят ΠΌΠΈΠ³Ρ€ΠΈΡ€Π°Π½Π΅ към ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°. Kubernetes ΠΈΠ»ΠΈ Π½Π΅Π³ΠΎΠ²ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΈ ΠΊΠ°Ρ‚ΠΎ Red Hat OpenShift ΠΈΠ»ΠΈ Amazon EKS.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅ Π½Π° Java прилоТСния Π·Π° Kubernetes с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Eclipse JKube

Π—Π° съТалСниС, Kubernetes ΠΈΠΌΠ° ΡΡ‚Ρ€ΡŠΠΌΠ½Π° ΠΊΡ€ΠΈΠ²Π° Π½Π° ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΈ въвСТда Π΄Ρ€ΡƒΠ³ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π΅Π½ слой Π² процСса Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, с ΠΊΠΎΠΉΡ‚ΠΎ Java програмиститС са свикнали. ДнСс Ρ‰Π΅ Π²ΠΈ ΠΊΠ°ΠΆΠ΅ΠΌ ΠΊΠ°ΠΊ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Eclipse JKube, Π·Π° Π΄Π° опроститС Ρ‚Π΅Π·ΠΈ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с Kubernetes ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ, ΠΈ Π΄Π° осигуритС Π±Π΅Π·Π±ΠΎΠ»Π΅Π·Π½Π΅Π½Π° миграция към ΠΎΠ±Π»Π°Ρ‡Π½Π°Ρ‚Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°, ΠΊΠ°Ρ‚ΠΎ ΡΡŠΡ‰Π΅Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‚Π΅ ΠΏΠΎΠ·Π½Π°Ρ‚Π°Ρ‚Π° Java СкосистСма. ОсвСн Ρ‚ΠΎΠ²Π° Ρ‰Π΅ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ ΠΊΠ°ΠΊ Π΄Π° Ρ€Π°Π·ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ Java прилоТСния Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° OpenShift с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° приставката OpenShift Maven.

Π’Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π΅Π½ процСс Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Java

Π’Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π΅Π½ процСс Π½Π° Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ Π―Π²Π° (Π€ΠΈΠ³ΡƒΡ€Π° 1) Π²ΠΊΠ»ΡŽΡ‡Π²Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡΡ‚ΡŠΡ‚ Π΄Π° напишС ΠΊΠΎΠ΄, слСд Ρ‚ΠΎΠ²Π° Π΄Π° създадС Π΅Π΄ΠΈΠ½ΠΈΡ†ΠΈ Π·Π° внСдряванС ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° JAR ΠΈΠ»ΠΈ WAR Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ слСд Ρ‚ΠΎΠ²Π° Π΄Π° Ρ€Π°Π·ΠΏΠΎΠ»ΠΎΠΆΠΈ ΠΈ стартира Ρ‚Π΅Π·ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° ΡƒΠ΅Π± ΠΈΠ»ΠΈ ΡΡŠΡ€Π²ΡŠΡ€ Π½Π° прилоТСния. ΠžΡΠ½ΠΎΠ²Π½ΠΈΡΡ‚ Π½Π°Ρ‡ΠΈΠ½ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ Ρ‚ΠΎΠ²Π° Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Maven ΠΎΡ‚ командния Ρ€Π΅Π΄ ΠΈΠ»ΠΈ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ IDE ΠΊΠ°Ρ‚ΠΎ IntelliJ ΠΈΠ»ΠΈ Eclipse Π·Π° ΠΊΠΎΠ΄ΠΈΡ€Π°Π½Π΅ ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈΡ€Π°Π½Π΅ Π½Π° прилоТСнията. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ са свикнали Π΄Π° правят ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π² ΠΊΠΎΠ΄Π° ΠΈ Π΄Π° тСстват всичко старатСлно, ΠΏΡ€Π΅Π΄ΠΈ Π΄Π° Π°Π½Π³Π°ΠΆΠΈΡ€Π°Ρ‚ ΠΊΠΎΠ΄Π° ΠΈ Π΄Π° Π³ΠΎ ΠΏΠΎΠ΄Π°Π΄Π°Ρ‚ към ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π° Π½Π° вСрсиитС.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅ Π½Π° Java прилоТСния Π·Π° Kubernetes с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Eclipse JKube

ΠžΡ€ΠΈΠ·. 1. Π’Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π΅Π½ процСс Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Java.

ΠŸΡ€ΠΎΡ†Π΅Ρ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Java Π·Π° ΠΎΠ±Π»Π°ΠΊΠ°

ΠŸΡ€ΠΈ ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°Π½Π΅ към ΠΎΠ±Π»Π°Ρ‡Π½ΠΈ прилоТСния, Kubernetes ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»Π½ΠΎ сСга Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡŠΡ‚ трябва Π΄Π° ΠΎΠΏΠ°ΠΊΠΎΠ²Π° Java прилоТСния изобраТСния Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ ΠΈ ΡΡŠΠ·Π΄Π°ΠΉΡ‚Π΅ манифСсти Π½Π° Kubernetes, ΠΊΠΎΠΈΡ‚ΠΎ описват Ρ‚Π΅Π·ΠΈ изобраТСния. Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° Ρ‚Π΅Π·ΠΈ манифСсти сС ΠΏΡ€ΠΈΠ»Π°Π³Π°Ρ‚ към производствСния ΡΡŠΡ€Π²ΡŠΡ€, Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ с Kubernetes. На свой Ρ€Π΅Π΄ Kubernetes Π²Π·Π΅ΠΌΠ° Ρ‚Π΅Π·ΠΈ изобраТСния ΠΎΡ‚ Ρ€Π΅Π³ΠΈΡΡ‚ΡŠΡ€Π° ΠΈ внСдрява прилоТСния спорСд ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ смС написали Π² манифСститС, ΠΊΠΎΠΈΡ‚ΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ са YAML Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅.

ΠœΠ΅Ρ‚Π°ΠΌΠΎΡ€Ρ„ΠΎΠ·Π°Ρ‚Π° Π½Π° традиционния процСс Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Java ΠΏΡ€ΠΈ ΠΏΡ€Π΅Ρ…ΠΎΠ΄Π° към ΠΎΠ±Π»Π°ΠΊΠ° Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π½Π° Ρ„ΠΈΠ³. 2.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅ Π½Π° Java прилоТСния Π·Π° Kubernetes с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Eclipse JKube

ΠžΡ€ΠΈΠ·. 2. ΠŸΡ€ΠΎΡ†Π΅Ρ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Java Π·Π° ΠΎΠ±Π»Π°ΠΊΠ°.

Eclipse JKube

ΠœΠΈΠ³Ρ€ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ към Kubernetes добавя ΠΎΡ‰Π΅ Π΅Π΄ΠΈΠ½ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π΅Π½ слой към процСса Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ са Π½Π΅Ρ€Π²Π½ΠΈ Π·Π° Ρ‚ΠΎΠ²Π°, Π·Π°Ρ‰ΠΎΡ‚ΠΎ искат Π΄Π° сС ΡΡŠΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡Π°Ρ‚ Π²ΡŠΡ€Ρ…Ρƒ основната си Ρ€Π°Π±ΠΎΡ‚Π° – Π»ΠΎΠ³ΠΈΠΊΠ°Ρ‚Π° Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ – вмСсто ΠΊΠ°ΠΊ Π΄Π° Π³ΠΈ Ρ€Π°Π·ΠΏΠΎΠ»ΠΎΠΆΠ°Ρ‚. И Ρ‚ΡƒΠΊ Π²Π»ΠΈΠ·Π° Π² дСйствиС. Eclipse JKube, ΠΊΠΎΠ΅Ρ‚ΠΎ позволява Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Ρ‚Π΅Ρ…Π½ΠΈΡ‚Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ Π΄ΠΎΠ±Π°Π²ΠΊΠΈ (ΠšΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚ JKube Π·Π°Π΅Π΄Π½ΠΎ с Kubernetes Maven Plugin ΠΈΠ»ΠΈ Плъгин 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. ΠŸΡ€ΠΎΡ†Π΅Ρ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Java Π·Π° ΠΎΠ±Π»Π°ΠΊΠ° с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Eclipse JKube.

ΠšΠ°ΠΊΡ‚ΠΎ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅, Ρ‚ΡƒΠΊ всички ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π·Π° взаимодСйствиС с Kubernetes ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ (ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Π½ΠΈ Π² Ρ‡Π΅Ρ€Π²Π΅Π½ΠΎ Π½Π° Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠ°Ρ‚Π°) са Π·Π°ΠΌΠ΅Π½Π΅Π½ΠΈ ΠΎΡ‚ Ρ†Π΅Π»Π΅Π²ΠΈΡ‚Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ Π½Π° Eclipse JKube ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅, ΠΊΠΎΠΈΡ‚ΠΎ са ΠΈΠ·Π±Ρ€ΠΎΠ΅Π½ΠΈ Π² Π’Π°Π±Π»ΠΈΡ†Π°. 1.

Π’Π°Π±Π»ΠΈΡ†Π° 1. Π—Π°Π΄Π°Ρ‡ΠΈ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π½Π° Eclipse JKube.

Π—Π°Π΄Π°Ρ‡Π°
Π΅Ρ‚Π°ΠΏ
описаниС

k8s: ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅
PRE_INTEGRATION_TEST
Π˜Π·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° Π΄ΠΎΠΊΠ΅Ρ€ изобраТСния

k8s: натисканС
Π˜ΠΠ‘Π’ΠΠ›
ΠšΠ°Ρ‡Π²Π°Π½Π΅ Π½Π° Π΄ΠΎΠΊΠ΅Ρ€ изобраТСния Π² Ρ€Π΅Π³ΠΈΡΡ‚ΡŠΡ€Π°

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

k8s: ΠΏΡ€ΠΈΠ»ΠΎΠΆΠΈ
ΠšΠžΠœΠŸΠ˜Π›Π˜Π ΠΠΠ•
ΠŸΡ€ΠΈΠ»Π°Π³Π°Π½Π΅ Π½Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½ΠΈ манифСсти към K8s

k8s: ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π°Π½Π΅ Π½Π° Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π°Π½Π΅Ρ‚ΠΎ
Π‘Π•Π—Π ΠΠ‘ΠžΠ’Π˜Π ΠΠΠ•
ΠŸΡ€Π΅ΠΌΠ°Ρ…Π²Π°Π½Π΅ Π½Π° рСсурси Π½Π° K8s, ΠΊΠΎΠΈΡ‚ΠΎ са Π±ΠΈΠ»ΠΈ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° k8s:apply ΠΈ k8s:deploy

Π—Π°Π±Π΅Π»Π΅ΠΆΠΊΠ°: Ако Π½Π΅ искатС Π·Π°Π΄Π°Ρ‡ΠΈΡ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Ρ‚Π΅Π·ΠΈ самоувСрСни настройки ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€ΡŠΡ‡Π½ΠΎ Π΄Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Ρ‚Π΅ Eclipse JKube Π·Π° сСбС си, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Ρ‚ΠΎΠΉ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° конфигурация Ρ‡Ρ€Π΅Π· XML ΠΈ рСсурсы.

Π‘Π΅Π³Π° Π½Π΅ΠΊΠ° Π΄Π° Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Eclipse JKube ΠΈ Kubernetes Maven Plugin ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° с прилоТСния.

Π Π°Π·ΠΏΠΎΠ»Π°Π³Π°Π½Π΅ Π½Π° Java ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Kubernetes с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Eclipse JKube

Π’ Ρ‚ΠΎΠ·ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‰Π΅ Π²Π½Π΅Π΄Ρ€ΠΈΠΌ просто Java ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ ΠœΠΈΠ½ΠΈΠΊΡƒΠ±Π΅ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Eclipse JKube. Използвайки Kubernetes Maven Plugin, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π·Π°Π΄Π°Π΄Π΅ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ Π·Π° внСдряванС, Π±Π΅Π· Π΄Π° сС Π½Π°Π»Π°Π³Π° Π΄Π° пишСм ΠΊΠ°ΠΊΠ²Π°Ρ‚ΠΎ ΠΈ Π΄Π° Π΅ конфигурация.

ΠšΠ°Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ прост Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ Π½Π° случайни числа, ΠΊΠΎΠΉΡ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅ΠΆΠ΄Π° JSON ΠΈΠ·Ρ…ΠΎΠ΄ Π² ΠΊΡ€Π°ΠΉΠ½Π°Ρ‚Π° Ρ‚ΠΎΡ‡ΠΊΠ° /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

Kubernetes Maven Plugin Π΅ Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅Ρ‚ΠΎ Π¦Π΅Π½Ρ‚Ρ€Π°Π»Π½ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π½Π° 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 package ΠΈ слСд Ρ‚ΠΎΠ²Π° mvn goal task k8s:build ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° Π΄ΠΎΠΊΠ΅Ρ€ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ. Π˜ΠΌΠ°ΠΉΡ‚Π΅ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄, Ρ‡Π΅ смС Π·Π°ΠΌΠ΅Π½ΠΈΠ»ΠΈ ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ с Ρ‚ΠΎΠ²Π° свойство:

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

ΠŸΡ€Π΅Π΄ΠΈ Π΄Π° ΡΡŠΠ·Π΄Π°Π΄Π΅Ρ‚Π΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ, трябва Π΄Π° сС ΡƒΠ²Π΅Ρ€ΠΈΡ‚Π΅, Ρ‡Π΅ Π΄ΠΎΠΊΠ΅Ρ€ Π΄Π΅ΠΌΠΎΠ½ΡŠΡ‚ Π΅ Скспониран ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ. Π’ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° станС със слСдната ΠΊΠΎΠΌΠ°Π½Π΄Π°:

$ eval $(minikube docker-env)

Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° въвСТдамС ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° mvn k8s:build ΠΈ Ρ‚ΠΎΠ²Π° Π΅, ΠΊΠΎΠ΅Ρ‚ΠΎ Ρ‰Π΅ Π²ΠΈΠ΄ΠΈΠΌ Π½Π° Π΅ΠΊΡ€Π°Π½Π°, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°ΠΌΠ΅ Π΄ΠΎΠΊΠ΅Ρ€ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° Π·Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° Eclipse JKube:

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

Π‘Ρ‚ΡŠΠΏΠΊΠ° 3. ΠšΠ°Ρ‡Π΅Ρ‚Π΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π² Ρ€Π΅Π³ΠΈΡΡ‚ΡŠΡ€Π° Π½Π° Π΄ΠΎΠΊΠ΅Ρ€ΠΈΡ‚Π΅

Π‘Π»Π΅Π΄ ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π΄ΠΎΠΊΠ΅Ρ€Π° с ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½ Ρ€Π΅Π³ΠΈΡΡ‚ΡŠΡ€ Π·Π° натисканС (Π² нашия случай Ρ‚ΠΎΠ²Π° Π΅ docker.io), ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠ·ΠΏΡ€Π°Ρ‚ΠΈΠΌ Ρ‚ΠΎΠ²Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² Ρ€Π΅Π³ΠΈΡΡ‚ΡŠΡ€Π°. Π•Ρ‚ΠΎ ΠΊΠ°ΠΊΠ²ΠΎ Ρ‰Π΅ сС ΠΏΠΎΠΊΠ°ΠΆΠ΅, слСд ΠΊΠ°Ρ‚ΠΎ поискамС ΠΎΡ‚ Eclipse JKube Π΄Π° изпълни Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° mvn k8s: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 Π·Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ

И Ρ‚Π°ΠΊΠ°, ΡΡŠΠ±Ρ€Π°Ρ…ΠΌΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ, сСга трябва Π΄Π° напишСм манифСсти Π½Π° 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

Π—Π° Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ Ρ‚ΠΎΠ²Π°, сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° Π·Π° Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π°Π½Π΅, която просто ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π° всички рСсурси, ΠΊΠΎΠΈΡ‚ΠΎ са Π±ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈ Π² ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½Π°Ρ‚Π° ΡΡ‚ΡŠΠΏΠΊΠ°, Ρ‚.Π΅. ΠΊΠΎΠ³Π°Ρ‚ΠΎ сС изпълнява Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° Π·Π° ΠΏΡ€ΠΈΠ»Π°Π³Π°Π½Π΅. Π’ΠΎΠ²Π° Π΅, ΠΊΠΎΠ΅Ρ‚ΠΎ Ρ‰Π΅ Π²ΠΈΠ΄ΠΈΠΌ Π½Π° Π΅ΠΊΡ€Π°Π½Π°, слСд ΠΊΠ°Ρ‚ΠΎ поискамС ΠΎΡ‚ 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:Π΄Π½Π΅Π²Π½ΠΈΠΊ
Π’ΠΠ›Π˜Π”Π˜Π Π
ΠŸΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅ Π½Π° рСгистрационни Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΎΡ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ΠΎ Π½Π° Kubernetes.

k8s: отстраняванС Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ
ΠŸΠΠšΠ•Π’
ΠžΡ‚Π²ΠΎΡ€Π΅Ρ‚Π΅ ΠΏΠΎΡ€Ρ‚ Π·Π° отстраняванС Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° отстраняватС Π³Ρ€Π΅ΡˆΠΊΠΈ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ си, Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ΠΎ Π½Π° Kubernetes, Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ ΠΎΡ‚ IDE.

k8s: внСдряванС
Π˜ΠΠ‘Π’ΠΠ›
БъздаванС Π½Π° Ρ€Π°Π·ΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅ Π·Π° Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° Π·Π° инсталиранС ΠΈ ΠΏΡ€ΠΈΠ»Π°Π³Π°Π½Π΅ Π½Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½ΠΈΡ‚Π΅ манифСсти към ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π° Kubernetes ΠΏΠΎ ΡΡŠΡ‰ΠΈΡ Π½Π°Ρ‡ΠΈΠ½, ΠΊΠ°ΠΊΡ‚ΠΎ Π² случая Π½Π° Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° Π·Π° ΠΏΡ€ΠΈΠ»Π°Π³Π°Π½Π΅.

k8s: Π³Π»Π΅Π΄Π°ΠΉ
ΠŸΠΠšΠ•Π’
Автоматично Π³ΠΎΡ€Π΅Ρ‰ΠΎ внСдряванС Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ‡Ρ€Π΅Π· прослСдяванС Π½Π° Π½Π΅Π³ΠΎΠ²ΠΎΡ‚ΠΎ пространство ΠΎΡ‚ ΠΈΠΌΠ΅Π½Π°.

Π Π°Π·ΠΏΠΎΠ»Π°Π³Π°Π½Π΅ Π½Π° Java прилоТСния Π½Π° Red Hat OpenShift с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° приставката OpenShift Maven

Π—Π° Π΄Π° Π²Π½Π΅Π΄Ρ€ΠΈΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΎΡ‚ нашия ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Red Hat OpenShift, Π½ΠΈΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ плъгина OpenShift Maven. ЕдинствСната Ρ€Π°Π·Π»ΠΈΠΊΠ° Ρ‰Π΅ бъдС, Ρ‡Π΅ ΠΏΡ€Π΅Ρ„ΠΈΠΊΡΡŠΡ‚ Π½Π° Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° Ρ‰Π΅ сС ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ ΠΎΡ‚ k8s Π½Π° oc. По ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ приставката Kubernetes Maven Π³ΠΎ ΠΏΡ€Π°Π²ΠΈ Π΄ΠΎΠΊΠ΅Ρ€-assemblies ΠΈ плъгина OpenShift Maven - assemblies 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

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€