Π’Π°Π·ΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ Π±Π΅ΡΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½Π°, Π·Π°ΡΠΎΡΠΎ Π½Π°ΡΠΈΡΠ΅ ΡΠ»ΡΠΆΠΈΡΠ΅Π»ΠΈ ΠΈΠΌΠ°Ρ Π° Π΄ΠΎΡΡΠ° ΡΠ°Π·Π³ΠΎΠ²ΠΎΡΠΈ Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΈ ΠΎΡΠ½ΠΎΡΠ½ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° Kubernetes ΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠ° Π½Π° ΡΠ°ΠΊΠΎΠ²Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅ Π½Π° OpenShift.
ΠΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Π·Π°ΠΏΠΎΡΠ²Π°ΠΌΠ΅ Ρ ΡΠ΅Π·Π°ΡΠ°, ΡΠ΅ Kubernetes Π΅ ΠΏΡΠΎΡΡΠΎ Kubernetes, Π° OpenShift Π²Π΅ΡΠ΅ Π΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π½Π° Kubernetes, ΠΊΠ°ΡΠΎ Microsoft AKS ΠΈΠ»ΠΈ Amazon EKS. ΠΡΡΠΊΠ° ΠΎΡ ΡΠ΅Π·ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ ΠΈΠΌΠ° ΡΠ²ΠΎΠΈΡΠ΅ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²Π°, Π½Π°ΡΠΎΡΠ΅Π½ΠΈ ΠΊΡΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΡΠ΅Π»Π΅Π²Π° Π°ΡΠ΄ΠΈΡΠΎΡΠΈΡ. Π ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΡΠ°Π·Π³ΠΎΠ²ΠΎΡΡΡ Π²Π΅ΡΠ΅ ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π° Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Π½Π° ΡΠΈΠ»Π½ΠΈΡΠ΅ ΠΈ ΡΠ»Π°Π±ΠΈΡΠ΅ ΡΡΡΠ°Π½ΠΈ Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ.
ΠΠ°ΡΠΎ ΡΡΠ»ΠΎ ΠΌΠΈΡΠ»Π΅Ρ
ΠΌΠ΅ Π΄Π° Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΡΠ°Π·ΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ Ρ ΠΈΠ·Ρ
ΠΎΠ΄ ΠΊΠ°ΡΠΎ βΠ‘Π»ΡΡΠ°ΠΉΡΠ΅, Π½ΡΠΌΠ° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΡΠ΄Π΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°ΡΠ΅ ΠΊΠΎΠ΄Π°, Π½Π° OpenShift ΠΈΠ»ΠΈ Π½Π° AKS, Π½Π° EKS, Π½Π° Π½ΡΠΊΠΎΠΈ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ Kubernetes, Π΄Π° Π½Π° Π²ΡΠ΅ΠΊΠΈ Kubernetes (Π΄Π° Π³ΠΎ Π½Π°ΡΠ΅ΡΠ΅ΠΌ Π½Π°ΠΊΡΠ°ΡΠΊΠΎ ΠΠ£Π) βΠΠ°ΠΈΡΡΠΈΠ½Π° Π΅ ΠΏΡΠΎΡΡΠΎ, ΠΊΠ°ΠΊΡΠΎ ΡΠ°ΠΌ, ΡΠ°ΠΊΠ° ΠΈ ΡΠ°ΠΌ.β
Π’ΠΎΠ³Π°Π²Π° ΠΏΠ»Π°Π½ΠΈΡΠ°Ρ ΠΌΠ΅ Π΄Π° Π²Π·Π΅ΠΌΠ΅ΠΌ Π½Π°ΠΉ-ΠΏΡΠΎΡΡΠΈΡ βHello Worldβ ΠΈ Π΄Π° Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅, Π·Π° Π΄Π° ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ ΠΊΠ°ΠΊΠ²ΠΎ Π΅ ΠΎΠ±ΡΠΎΡΠΎ ΠΈ ΠΊΠ°ΠΊΠ²ΠΈ ΡΠ° ΡΠ°Π·Π»ΠΈΠΊΠΈΡΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ CMC ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° Π·Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Red Hat OpenShift (Π½Π°ΡΠΈΡΠ°Π½Π° ΠΏΠΎ-Π½Π°ΡΠ°ΡΡΠΊ OCP ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ OpenShift).
ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠΎΠ²Π°, Π² ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π° ΠΏΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ°Π·ΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ, ΠΎΡΡΠ·Π½Π°Ρ ΠΌΠ΅, ΡΠ΅ ΡΠΎΠ»ΠΊΠΎΠ²Π° ΡΠΌΠ΅ ΡΠ²ΠΈΠΊΠ½Π°Π»ΠΈ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ OpenShift, ΡΠ΅ ΠΏΡΠΎΡΡΠΎ Π½Π΅ ΠΎΡΡΠ·Π½Π°Π²Π°ΠΌΠ΅ ΠΊΠ°ΠΊ ΡΠΎΠΉ ΡΠ΅ ΡΠ°Π·ΡΠ°ΡΠ½Π° ΠΈ ΠΏΡΠ΅Π²ΡΡΠ½Π° Π² Π½Π΅Π²Π΅ΡΠΎΡΡΠ½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°, ΠΊΠΎΡΡΠΎ ΡΠ΅ ΠΏΡΠ΅Π²ΡΡΠ½Π° Π² ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ ΠΏΡΠΎΡΡΠΎ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΡ Π½Π° Kubernetes. Π‘ΠΊΠ»ΠΎΠ½Π½ΠΈ ΡΠΌΠ΅ Π΄Π° ΠΏΡΠΈΠ΅ΠΌΠ°ΠΌΠ΅ Π·ΡΠ΅Π»ΠΎΡΡΡΠ° ΠΈ ΠΏΡΠΎΡΡΠΎΡΠ°ΡΠ° Π½Π° OpenShift Π·Π° Π΄Π°Π΄Π΅Π½ΠΎΡΡ, ΠΊΠ°ΡΠΎ ΡΡΡΠ΅Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΡΠ΅Π½Π΅Π±ΡΠ΅Π³Π²Π°ΠΌΠ΅ Π½Π΅Π³ΠΎΠ²ΠΎΡΠΎ Π²Π΅Π»ΠΈΠΊΠΎΠ»Π΅ΠΏΠΈΠ΅.
ΠΠ°ΡΠΎ ΡΡΠ»ΠΎ Π΄ΠΎΠΉΠ΄Π΅ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π·Π° Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΏΠΎΠΊΠ°ΡΠ½ΠΈΠ΅ ΠΈ ΡΠ΅Π³Π° ΡΠ΅ ΡΡΠ°Π²Π½ΠΈΠΌ ΡΡΡΠΏΠΊΠ° ΠΏΠΎ ΡΡΡΠΏΠΊΠ° ΠΏΡΡΠΊΠ°Π½Π΅ΡΠΎ Π² Π΅ΠΊΡΠΏΠ»ΠΎΠ°ΡΠ°ΡΠΈΡ Π½Π° Π½Π°ΡΠΈΡ βΠΠ΄ΡΠ°Π²Π΅ΠΉ ΡΠ²ΡΡβ Π½Π° KUK ΠΈ Π½Π° OpenShift ΠΈ ΡΠ΅ Π³ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉ-ΠΎΠ±Π΅ΠΊΡΠΈΠ²Π½ΠΎ (Π΅, ΠΎΡΠ²Π΅Π½ ΠΏΠΎΠ½ΡΠΊΠΎΠ³Π° Π΄Π° ΠΏΠΎΠΊΠ°Π·Π²Π°ΠΌΠ΅ Π»ΠΈΡΠ½ΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ ΠΊΡΠΌ ΡΠ΅ΠΌΠ°ΡΠ°). ΠΠΊΠΎ ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ²Π°ΡΠ΅ ΠΎΡ ΡΠΈΡΡΠΎ ΡΡΠ±Π΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΌΠ½Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΎΠ·ΠΈ Π²ΡΠΏΡΠΎΡ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΎ ΠΏΡΠΎΡΠ΅ΡΠ΅ΡΠ΅
ΠΠ»ΡΡΡΠ΅ΡΠΈ
Π ΡΠ°ΠΊΠ°, Π½Π°ΡΠΈΡΡ "Hello World" ΡΠ΅ Π½ΡΠΆΠ΄Π°Π΅ ΠΎΡ ΠΊΠ»ΡΡΡΠ΅ΡΠΈ. ΠΠ΅ΠΊΠ° ΠΏΡΠΎΡΡΠΎ ΠΊΠ°ΠΆΠ΅ΠΌ "Π½Π΅" Π½Π° Π²ΡΡΠΊΠ°ΠΊΠ²ΠΈ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΈ ΠΎΠ±Π»Π°ΡΠΈ, Π·Π° Π΄Π° Π½Π΅ ΠΏΠ»Π°ΡΠ°ΠΌΠ΅ Π·Π° ΡΡΡΠ²ΡΡΠΈ, ΡΠ΅Π³ΠΈΡΡΡΠΈ, ΠΌΡΠ΅ΠΆΠΈ, ΡΡΠ°Π½ΡΡΠ΅Ρ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΈ Ρ.Π½. Π‘ΡΠΎΡΠ²Π΅ΡΠ½ΠΎ, Π½ΠΈΠ΅ ΠΈΠ·Π±ΠΈΡΠ°ΠΌΠ΅ ΠΏΡΠΎΡΡ ΠΊΠ»ΡΡΡΠ΅Ρ Ρ Π΅Π΄ΠΈΠ½ Π²ΡΠ·Π΅Π»
ΠΠΎΠ½ΡΠ°ΠΆ Π½Π° ΠΠ£Π-Π΅
Π’Π°ΠΊΠ° ΡΠ΅ Π΄Π° Π²ΡΡΠ²ΠΈΠΌ.
Π‘ΡΡΠΏΠΊΠ° 1 - ΠΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° Π½Π°ΡΠ΅ΡΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ
ΠΠ΅ΠΊΠ° Π·Π°ΠΏΠΎΡΠ½Π΅ΠΌ Ρ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° Π½Π°ΡΠΈΡ βHello Worldβ Π² minikube. Π’ΠΎΠ²Π° ΡΠ΅ ΠΈΠ·ΠΈΡΠΊΠ²Π°:
- 1. ΠΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ Docker.
- 2. ΠΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ Git.
- 3. ΠΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ Maven (Π²ΡΡΡΠ½ΠΎΡΡ ΡΠΎΠ·ΠΈ ΠΏΡΠΎΠ΅ΠΊΡ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π΄Π²ΠΎΠΈΡΠ΅Π½ ΡΠ°ΠΉΠ» mvnw, ΡΠ°ΠΊΠ° ΡΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ Π±Π΅Π· Π½Π΅Π³ΠΎ).
- 4. ΠΡΡΡΠ½ΠΎΡΡ ΡΠ°ΠΌΠΈΡΡ ΠΈΠ·ΡΠΎΡΠ½ΠΈΠΊ, Ρ.Π΅. ΠΊΠ»ΠΎΠ½ΠΈΠ½Π³ Π½Π° Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅
github.com/gcolman/quarkus-hello-world.git
ΠΡΡΠ²Π°ΡΠ° ΡΡΡΠΏΠΊΠ° Π΅ Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡ Quarkus. ΠΠ΅ ΡΠ΅ ΡΡΡΠ°Ρ ΡΠ²Π°ΠΉΡΠ΅, Π°ΠΊΠΎ Π½ΠΈΠΊΠΎΠ³Π° Π½Π΅ ΡΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π»ΠΈ Quarkus.io - Π»Π΅ΡΠ½ΠΎ Π΅. ΠΠΈΠ΅ ΠΏΡΠΎΡΡΠΎ ΠΈΠ·Π±ΠΈΡΠ°ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ° (RestEasy, Hibernate, Amazon SQS, Camel ΠΈ Ρ.Π½.), Π° ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΡΠ°ΠΌΠΈΡΡ Quarkus, Π±Π΅Π· Π²Π°ΡΠ΅ΡΠΎ ΡΡΠ°ΡΡΠΈΠ΅, Π½Π°ΡΡΡΠΎΠΉΠ²Π° maven Π°ΡΡ Π΅ΡΠΈΠΏΠ° ΠΈ ΠΏΠΎΡΡΠ°Π²Ρ Π²ΡΠΈΡΠΊΠΎ Π² github. Π’ΠΎΠ΅ΡΡ, Π±ΡΠΊΠ²Π°Π»Π½ΠΎ Π΅Π΄Π½ΠΎ ΡΡΠ°ΠΊΠ²Π°Π½Π΅ Π½Π° ΠΌΠΈΡΠΊΠ°ΡΠ° - ΠΈ ΡΡΠ΅ Π³ΠΎΡΠΎΠ²ΠΈ. ΠΡΠΎ Π·Π°ΡΠΎ ΠΎΠ±ΠΈΡΠ°ΠΌΠ΅ Quarkus.
ΠΠ°ΠΉ-Π»Π΅ΡΠ½ΠΈΡΡ Π½Π°ΡΠΈΠ½ Π΄Π° ΠΈΠ·Π³ΡΠ°Π΄ΠΈΠΌ Π½Π°ΡΠΈΡ βHello Worldβ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡΡΠ° quarkus-maven Π·Π° Docker, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΡΠ²ΡΡΡΠ°Ρ ΡΡΠ»Π°ΡΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° ΡΠ°Π±ΠΎΡΠ°. Π‘ ΠΏΠΎΡΠ²Π°ΡΠ° Π½Π° Quarkus ΡΠΎΠ²Π° ΡΡΠ°Π½Π° Π½Π°ΠΈΡΡΠΈΠ½Π° Π»Π΅ΡΠ½ΠΎ ΠΈ ΠΏΡΠΎΡΡΠΎ: Π΄ΠΎΠ±Π°Π²Π΅ΡΠ΅ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΠ΅ΡΠΎ container-image-docker ΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΡΠ·Π΄Π°Π²Π°ΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Ρ maven ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ.
./mvnw quarkus:add-extension -Dextensions=βcontainer-image-dockerβ
Π Π½Π°ΠΊΡΠ°Ρ, Π½ΠΈΠ΅ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°ΠΌΠ΅ Π½Π°ΡΠΈΡ ΠΈΠΌΠΈΠ΄ΠΆ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Maven. Π ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΡΠΎΠ²Π° Π½Π°ΡΠΈΡΡ ΠΈΠ·Ρ ΠΎΠ΄Π΅Π½ ΠΊΠΎΠ΄ ΡΠ΅ ΠΏΡΠ΅Π²ΡΡΡΠ° Π² Π³ΠΎΡΠΎΠ²ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, ΠΊΠΎΠ΅ΡΠΎ Π²Π΅ΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° Π²ΡΠ² Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°.
./mvnw -X clean package -Dquarkus.container-image.build=true
Π’ΠΎΠ²Π° Π²ΡΡΡΠ½ΠΎΡΡ Π΅ Π²ΡΠΈΡΠΊΠΎ, ΡΠ΅Π³Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° docker run, ΡΠ»Π΅Π΄ ΠΊΠ°ΡΠΎ ΡΡΠ΅ Π½Π°ΡΡΡΠΎΠΈΠ»ΠΈ Π½Π°ΡΠ°ΡΠ° ΡΡΠ»ΡΠ³Π° ΠΊΡΠΌ ΠΏΠΎΡΡ 8080, ΡΠ°ΠΊΠ° ΡΠ΅ Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π΄ΠΎΡΡΡΠΏΠ΅Π½.
docker run -i β rm -p 8080:8080 gcolman/quarkus-hello-world
Π‘Π»Π΅Π΄ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° Π΅ΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° ΠΎΡΡΠ°Π²Π° ΡΠ°ΠΌΠΎ Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΠΈΠΌ Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° curl Π΄Π°Π»ΠΈ Π½Π°ΡΠ°ΡΠ° ΡΡΠ»ΡΠ³Π° ΡΠ°Π±ΠΎΡΠΈ:
Π ΡΠ°ΠΊΠ°, Π²ΡΠΈΡΠΊΠΎ ΡΠ°Π±ΠΎΡΠΈ ΠΈ Π±Π΅ΡΠ΅ Π½Π°ΠΈΡΡΠΈΠ½Π° Π»Π΅ΡΠ½ΠΎ ΠΈ ΠΏΡΠΎΡΡΠΎ.
Π‘ΡΡΠΏΠΊΠ° 2 - ΠΠ·ΠΏΡΠ°ΡΠ΅ΡΠ΅ Π½Π°ΡΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π² Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ Π·Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ
ΠΠ°ΡΠ΅Π³Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΡΡΠ·Π΄Π°Π΄ΠΎΡ ΠΌΠ΅, ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π° Π»ΠΎΠΊΠ°Π»Π½ΠΎ Π² Π½Π°ΡΠ΅ΡΠΎ Π»ΠΎΠΊΠ°Π»Π½ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅. ΠΠΊΠΎ ΠΈΡΠΊΠ°ΠΌΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΡΠΎΠ²Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π² Π½Π°ΡΠ°ΡΠ° KUK ΡΡΠ΅Π΄Π°, ΡΠΎΠ³Π°Π²Π° ΡΡΡΠ±Π²Π° Π΄Π° Π³ΠΎ ΠΏΠΎΡΡΠ°Π²ΠΈΠΌ Π² Π΄ΡΡΠ³ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅. Kubernetes Π½ΡΠΌΠ° ΡΠ΅Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠ°ΠΊΠ° ΡΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ dockerhub. ΠΠ°ΡΠΎΡΠΎ, ΠΏΡΡΠ²ΠΎ, Π±Π΅Π·ΠΏΠ»Π°ΡΠ½ΠΎ Π΅, ΠΈ Π²ΡΠΎΡΠΎ, (ΠΏΠΎΡΡΠΈ) Π²ΡΠΈΡΠΊΠΈ Π³ΠΎ ΠΏΡΠ°Π²ΡΡ.
Π’ΠΎΠ²Π° ΡΡΡΠΎ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΠΎ ΠΈ ΡΡΠΊ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ ΡΠ°ΠΌΠΎ Π°ΠΊΠ°ΡΠ½Ρ Π² dockerhub.
Π ΡΠ°ΠΊΠ°, ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΌΠ΅ dockerhub ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ°ΠΌΠ΅ Π½Π°ΡΠ΅ΡΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΌ.
Π‘ΡΡΠΏΠΊΠ° 3 - Π‘ΡΠ°ΡΡΠΈΡΠ°ΠΉΡΠ΅ Kubernetes
ΠΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π½Π°ΡΠΈΠ½ΠΈ Π΄Π° ΡΡΡΡΠ°Π²ΠΈΠΌ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π½Π° kubernetes, Π·Π° Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅ Π½Π°ΡΠΈΡ βHello Worldβ, Π½ΠΎ Π½ΠΈΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π½Π°ΠΉ-ΠΏΡΠΎΡΡΠΈΡ ΠΎΡ ΡΡΡ , Π·Π°ΡΠΎΡΠΎ Π½ΠΈΠ΅ ΡΠΌΠ΅ ΡΠ°ΠΊΠΈΠ²Π° Ρ ΠΎΡΠ° ...
ΠΡΡΠ²ΠΎ ΡΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅ ΠΊΠ»ΡΡΡΠ΅ΡΠ° minikube:
minikube start
Π‘ΡΡΠΏΠΊΠ° 4 - ΠΠ½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π½Π° Π½Π°ΡΠ΅ΡΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ
Π‘Π΅Π³Π° ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°ΠΌΠ΅ Π½Π°ΡΠΈΡ ΠΊΠΎΠ΄ ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π½Π° kubernetes. Π‘ Π΄ΡΡΠ³ΠΈ Π΄ΡΠΌΠΈ, ΠΈΠΌΠ°ΠΌΠ΅ Π½ΡΠΆΠ΄Π° ΠΎΡ pod ΠΈ Π΄Π΅ΡΠΈΠ½ΠΈΡΠΈΡ Π·Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅, ΡΠΎΡΠ΅ΡΠ° ΠΊΡΠΌ Π½Π°ΡΠ΅ΡΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π² dockerhub. ΠΠ΄ΠΈΠ½ ΠΎΡ Π½Π°ΠΉ-Π»Π΅ΡΠ½ΠΈΡΠ΅ Π½Π°ΡΠΈΠ½ΠΈ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΡΠΎΠ²Π° Π΅ Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° create deployment, ΡΠΎΡΠ΅ΡΠ° ΠΊΡΠΌ Π½Π°ΡΠ΅ΡΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅:
kubectl create deployment hello-quarkus β image =gcolman/quarkus-hello-world:1.0.0-SNAPSHOT
Π‘ ΡΠ°Π·ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΊΠ°Π·Π°Ρ ΠΌΠ΅ Π½Π° Π½Π°ΡΠΈΡ COOK Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π·Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅, ΠΊΠΎΡΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΡΠ΄ΡΡΠΆΠ° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΡΠ° Π½Π° pod Π·Π° Π½Π°ΡΠ΅ΡΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ. Π’Π°Π·ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠΈ ΡΠ°Π·ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΊΡΠΌ Π½Π°ΡΠΈΡ ΠΊΠ»ΡΡΡΠ΅Ρ minikube ΠΈ ΡΠ΅ ΡΡΠ·Π΄Π°Π΄Π΅ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅, ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ ΠΈΠ·ΡΠ΅Π³Π»ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π½Π°ΡΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΠΈ ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ° pod Π½Π° ΠΊΠ»ΡΡΡΠ΅ΡΠ°.
Π‘ΡΡΠΏΠΊΠ° 5 - ΠΎΡΠ²ΠΎΡΠ΅Π½ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π½Π°ΡΠ°ΡΠ° ΡΡΠ»ΡΠ³Π°
Π‘Π΅Π³Π°, ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΠΌΠ°ΠΌΠ΅ ΡΠ°Π·Π³ΡΡΠ½Π°ΡΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, Π΅ Π²ΡΠ΅ΠΌΠ΅ Π΄Π° ΠΏΠΎΠΌΠΈΡΠ»ΠΈΠΌ ΠΊΠ°ΠΊ Π΄Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΠΌΠ΅ Π²ΡΠ½ΡΠ΅Π½ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΡΠ°Π·ΠΈ ΡΡΠ»ΡΠ³Π° Restful, ΠΊΠΎΡΡΠΎ Π²ΡΡΡΠ½ΠΎΡΡ Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π° Π² Π½Π°ΡΠΈΡ ΠΊΠΎΠ΄.
Π’ΡΠΊ ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π½Π°ΡΠΈΠ½ΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° expose Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ Π½Π° Kubernetes, ΠΊΠ°ΡΠΎ ΡΡΠ»ΡΠ³ΠΈ ΠΈ ΠΊΡΠ°ΠΉΠ½ΠΈ ΡΠΎΡΠΊΠΈ. ΠΡΡΡΠ½ΠΎΡΡ ΡΠΎΠ²Π° Π΅, ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ, ΠΊΠ°ΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° expose Π·Π° Π½Π°ΡΠΈΡ ΠΎΠ±Π΅ΠΊΡ Π·Π° ΡΠ°Π·ΠΏΠΎΠ»Π°Π³Π°Π½Π΅:
kubectl expose deployment hello-quarkus β type=NodePort β port=8080
ΠΠ΅ΠΊΠ° ΡΠ΅ ΡΠΏΡΠ΅ΠΌ Π·Π° ΠΌΠΎΠΌΠ΅Π½Ρ Π½Π° ΠΎΠΏΡΠΈΡΡΠ° "-type" Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° expose.
ΠΠΎΠ³Π°ΡΠΎ ΠΈΠ·Π»ΠΎΠΆΠΈΠΌ ΠΈ ΡΡΠ·Π΄Π°Π΄Π΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈΡΠ΅, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Π½Π°ΡΠ°ΡΠ° ΡΡΠ»ΡΠ³Π°, ΡΡΡΠ±Π²Π°, Π½Π°ΡΠ΅Π΄ Ρ Π΄ΡΡΠ³ΠΈ Π½Π΅ΡΠ°, Π΄Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΠ΅ ΡΠ²ΡΡΠΆΠ΅ΠΌ ΠΎΡΠ²ΡΠ½ Ρ ΡΡΠ»ΡΠ³Π°ΡΠ° hello-quarkus, ΠΊΠΎΡΡΠΎ ΡΠ΅ Π½Π°ΠΌΠΈΡΠ° Π² Π½Π°ΡΠ°ΡΠ° ΡΠΎΡΡΡΠ΅ΡΠ½ΠΎ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½Π° ΠΌΡΠ΅ΠΆΠ°. Π ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠΈΠΏ Π½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΡΠ·Π΄Π°Π²Π°ΠΌΠ΅ ΠΈ ΡΠ²ΡΡΠ·Π²Π°ΠΌΠ΅ Π½Π΅ΡΠ° ΠΊΠ°ΡΠΎ Π±Π°Π»Π°Π½ΡΡΠΎΡΠΈ Π½Π° Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ, Π·Π° Π΄Π° Π½Π°ΡΠΎΡΠ²Π°ΠΌΠ΅ ΡΡΠ°ΡΠΈΠΊΠ° ΠΊΡΠΌ ΡΠ°Π·ΠΈ ΠΌΡΠ΅ΠΆΠ°.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠΈΡΠ°Π½Π΅ ΡΠΈΠΏ=LoadBalancer, Π½ΠΈΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°ΠΌΠ΅ Π±Π°Π»Π°Π½ΡΠΈΡΠ°ΡΠΎΡΠΎ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠ±Π»ΠΈΡΠ½ΠΈΡ ΠΎΠ±Π»Π°ΠΊ, Π·Π° Π΄Π° ΡΠ΅ ΡΠ²ΡΡΠΆΠ΅ Ρ Π½Π°ΡΠΈΡ ΠΊΠ»ΡΡΡΠ΅Ρ Kubernetes. Π’ΠΎΠ²Π°, ΡΠ°Π·Π±ΠΈΡΠ° ΡΠ΅, Π΅ ΡΡΡΠ°Ρ ΠΎΡΠ½ΠΎ, Π½ΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅, ΡΠ΅ ΡΠ°ΠΊΠ°Π²Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΡΠ΅ Π±ΡΠ΄Π΅ ΡΡΡΠ½ΠΎ ΡΠ²ΡΡΠ·Π°Π½Π° Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ΅Π½ ΠΏΡΠ±Π»ΠΈΡΠ΅Π½ ΠΎΠ±Π»Π°ΠΊ ΠΈ ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΠΎ-ΡΡΡΠ΄Π½ΠΎ Π΄Π° Ρ ΠΏΡΠ΅Ρ Π²ΡΡΠ»ΡΡΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π΅ΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΈ Π½Π° Kubernetes Π² ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΡΠ΅Π΄ΠΈ.
Π Π½Π°ΡΠΈΡ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΈΠΏ=NodePort, ΡΠΎΠ΅ΡΡ ΠΎΠ±Π°ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π΄ΠΎ Π½Π°ΡΠ°ΡΠ° ΡΡΠ»ΡΠ³Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π° ΠΏΡΠ΅Π· IP Π°Π΄ΡΠ΅ΡΠ° Π½Π° Π²ΡΠ·Π΅Π»Π° ΠΈ Π½ΠΎΠΌΠ΅ΡΠ° Π½Π° ΠΏΠΎΡΡΠ°. Π’Π°Π·ΠΈ ΠΎΠΏΡΠΈΡ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΈ ΠΎΠ±Π»Π°ΡΠΈ, Π½ΠΎ ΠΈΠ·ΠΈΡΠΊΠ²Π° ΡΠ΅Π΄ΠΈΡΠ° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΡΡΡΠΏΠΊΠΈ. ΠΡΡΠ²ΠΎ, ΠΈΠΌΠ°ΡΠ΅ Π½ΡΠΆΠ΄Π° ΠΎΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½ Π±Π°Π»Π°Π½ΡΡΠΎΡ Π½Π° Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ, ΡΠ°ΠΊΠ° ΡΠ΅ Π½ΠΈΠ΅ ΡΠ΅ Π²Π½Π΅Π΄ΡΠΈΠΌ Π±Π°Π»Π°Π½ΡΠΈΡΠ°ΡΠΎΡΠΎ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ NGINX Π² Π½Π°ΡΠΈΡ ΠΊΠ»ΡΡΡΠ΅Ρ.
Π‘ΡΡΠΏΠΊΠ° 6 - ΠΠ°ΡΡΡΠΎΠΉΡΠ΅ Π±Π°Π»Π°Π½ΡΡΠΎΡ Π½Π° Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ
minikube ΠΈΠΌΠ° ΡΠ΅Π΄ΠΈΡΠ° ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ°, ΠΊΠΎΠΈΡΠΎ ΡΠ»Π΅ΡΠ½ΡΠ²Π°Ρ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ Π·Π° Π²ΡΠ½ΡΠ΅Π½ Π΄ΠΎΡΡΡΠΏ, ΠΊΠ°ΡΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΠΈ Π·Π° Π²Ρ ΠΎΠ΄. Minikube ΠΈΠ΄Π²Π° Π² ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ Ρ Π²Ρ ΠΎΠ΄Π½ΠΈΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Ρ Nginx ΠΈ Π²ΡΠΈΡΠΊΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ, Π΅ Π΄Π° Π³ΠΎ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°ΠΌΠ΅ ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΠΌΠ΅.
minikube addons enable ingress
Π‘Π΅Π³Π°, ΡΠ°ΠΌΠΎ Ρ Π΅Π΄Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΡΠ΅ ΡΡΠ·Π΄Π°Π΄Π΅ΠΌ Nginx ingress ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Ρ, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ Π² Π½Π°ΡΠΈΡ ΠΊΠ»ΡΡΡΠ΅Ρ minikube:
ingress-nginx-controller-69ccf5d9d8-j5gs9 1/1 Running 1 33m
Π‘ΡΡΠΏΠΊΠ° 7 - ΠΠ°ΡΡΡΠΎΠΉΡΠ΅ Π²Ρ ΠΎΠ΄Π°
Π‘Π΅Π³Π° ΡΡΡΠ±Π²Π° Π΄Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΠΌΠ΅ Π²Ρ ΠΎΠ΄Π½ΠΈΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Ρ Π½Π° Nginx Π΄Π° ΠΏΡΠΈΠ΅ΠΌΠ° hello-quarkus Π·Π°ΡΠ²ΠΊΠΈ.
Π Π½Π°ΠΊΡΠ°Ρ, ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠΈΠΌ ΡΠ°Π·ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ.
kubectl apply -f ingress.yml
Π’ΡΠΉ ΠΊΠ°ΡΠΎ ΠΏΡΠ°Π²ΠΈΠΌ Π²ΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° Π½Π° Π½Π°ΡΠ°ΡΠ° ΡΠΎΠ±ΡΡΠ²Π΅Π½Π° ΠΌΠ°ΡΠΈΠ½Π°, Π½ΠΈΠ΅ ΠΏΡΠΎΡΡΠΎ Π΄ΠΎΠ±Π°Π²ΡΠΌΠ΅ IP Π°Π΄ΡΠ΅ΡΠ° Π½Π° Π½Π°ΡΠΈΡ Π²ΡΠ·Π΅Π» ΠΊΡΠΌ ΡΠ°ΠΉΠ»Π° /etc/hosts, Π·Π° Π΄Π° Π½Π°ΡΠΎΡΠ²Π°ΠΌΠ΅ http Π·Π°ΡΠ²ΠΊΠΈΡΠ΅ ΠΊΡΠΌ Π½Π°ΡΠΈΡ minikube ΠΊΡΠΌ NGINX load balancer.
192.168.99.100 hello-quarkus.info
Π’ΠΎΠ²Π° Π΅ Π²ΡΠΈΡΠΊΠΎ, ΡΠ΅Π³Π° Π½Π°ΡΠ°ΡΠ° ΡΡΠ»ΡΠ³Π° minikube Π΅ Π΄ΠΎΡΡΡΠΏΠ½Π° ΠΎΡΠ²ΡΠ½ ΡΡΠ΅Π· Π²Ρ ΠΎΠ΄Π½ΠΈΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Ρ Nginx.
Π, ΡΠΎΠ²Π° Π±Π΅ΡΠ΅ Π»Π΅ΡΠ½ΠΎ, Π½Π°Π»ΠΈ? ΠΠ»ΠΈ Π½Π΅ ΡΠΎΠ»ΠΊΠΎΠ²Π°?
ΠΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° OpenShift (Π³ΠΎΡΠΎΠ²ΠΈ Π·Π° ΠΊΠΎΠ΄ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ)
Π ΡΠ΅Π³Π° Π½Π΅ΠΊΠ° Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠ°ΠΊ Π²ΡΠΈΡΠΊΠΎ ΡΠ΅ ΠΏΡΠ°Π²ΠΈ Π½Π° Red Hat OpenShift Container Platform (OCP).
ΠΠ°ΠΊΡΠΎ Π² ΡΠ»ΡΡΠ°Ρ Ρ minikube, ΠΈΠ·Π±ΠΈΡΠ°ΠΌΠ΅ ΡΡ Π΅ΠΌΠ° Ρ ΠΊΠ»ΡΡΡΠ΅Ρ OpenShift Ρ Π΅Π΄ΠΈΠ½ Π²ΡΠ·Π΅Π» ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° Π³ΠΎΡΠΎΠ²ΠΈ Π·Π° ΠΊΠΎΠ΄ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ (CRC). ΠΡΠ΅Π΄ΠΈ ΡΠ΅ Π½Π°ΡΠΈΡΠ°ΡΠ΅ minishift ΠΈ Π±Π΅ΡΠ΅ Π±Π°Π·ΠΈΡΠ°Π½ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° OpenShift Origin, Π½ΠΎ ΡΠ΅Π³Π° Π΅ CRC ΠΈ Π΅ ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½ Π²ΡΡΡ Ρ OpenShift Container Platform Π½Π° Red Hat.
Π’ΡΠΊ, ΡΡΠΆΠ°Π»ΡΠ²Π°ΠΌ, Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π½Π΅ ΠΊΠ°ΠΆΠ΅ΠΌ: "OpenShift Π΅ ΡΡΡΠ°Ρ ΠΎΡΠ΅Π½!"
ΠΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ ΠΌΠΈΡΠ»Π΅Ρ ΠΌΠ΅ Π΄Π° Π½Π°ΠΏΠΈΡΠ΅ΠΌ, ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° OpenShift Π½Π΅ ΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ°Π²Π° ΠΎΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° Kubernetes. Π Π²ΡΡΡΠ½ΠΎΡΡ ΡΠΎΠ²Π° Π΅ ΡΠ°ΠΊΠ°. ΠΠΎ Π² ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π° ΠΏΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ°Π·ΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ ΡΠΈ ΡΠΏΠΎΠΌΠ½ΠΈΡ ΠΌΠ΅ ΠΊΠΎΠ»ΠΊΠΎ Π½Π΅Π½ΡΠΆΠ½ΠΈ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ ΡΡΡΠ±Π²Π° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅, ΠΊΠΎΠ³Π°ΡΠΎ Π½ΡΠΌΠ°ΡΠ΅ OpenShift, ΠΈ Π·Π°ΡΠΎΠ²Π° ΠΎΡΠ½ΠΎΠ²ΠΎ Π΅ ΠΊΡΠ°ΡΠΈΠ²ΠΎ. ΠΠ±ΠΈΡΠ°ΠΌΠ΅ Π½Π΅ΡΠ°ΡΠ° Π΄Π° ΡΠ° Π»Π΅ΡΠ½ΠΈ ΠΈ ΡΠΎΠ²Π°, ΠΊΠΎΠ΅ΡΠΎ Π½ΠΈ Π²Π΄ΡΡ Π½ΠΎΠ²ΠΈ Π΄Π° Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΡΠ°Π·ΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ, Π΅ ΠΊΠΎΠ»ΠΊΠΎ Π»Π΅ΡΠ½ΠΎ Π΅ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ΡΠΎ ΠΈ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π½Π°ΡΠΈΡ ΠΏΡΠΈΠΌΠ΅Ρ Π½Π° OpenShift Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ minikube.
ΠΠ΅ΠΊΠ° ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ΠΌ ΠΏΡΠ΅Π· ΠΏΡΠΎΡΠ΅ΡΠ° ΠΈ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠ°ΠΊΠ²ΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ.
Π’Π°ΠΊΠ° ΡΠ΅ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ° Ρ minikube Π·Π°ΠΏΠΎΡΠ½Π°Ρ ΠΌΠ΅ Ρ Dockerβ¦ Π§Π°ΠΊΠ°ΠΉΡΠ΅, Π²Π΅ΡΠ΅ Π½Π΅ ΡΠ΅ Π½ΡΠΆΠ΄Π°Π΅ΠΌ ΠΎΡ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ Docker Π½Π° ΠΌΠ°ΡΠΈΠ½Π°ΡΠ°.
Π Π½ΡΠΌΠ°ΠΌΠ΅ Π½ΡΠΆΠ΄Π° ΠΎΡ ΠΌΠ΅ΡΡΠ΅Π½ git.
Π ΠΠ΅ΠΉΠ²ΡΠ½ Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌ.
Π Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΡΡΠ·Π΄Π°Π²Π°ΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π½Π° ΡΡΠΊΠ°.
Π Π½Π΅ Π΅ Π½ΡΠΆΠ½ΠΎ Π΄Π° ΡΡΡΡΠΈΡΠ΅ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ.
Π Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΠ΅ Π²Ρ
ΠΎΠ΄Π΅Π½ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Ρ.
ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΡΠ΅ ingress.
Π Π°Π·Π±ΠΈΡΠ°Ρ Π»ΠΈ? ΠΠ° Π΄Π° Π²Π½Π΅Π΄ΡΠΈΠΌ ΠΈ ΡΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅ Π½Π°ΡΠ΅ΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° OpenShift, Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π½ΠΈΡΠΎ ΠΎΡ ΠΈΠ·Π±ΡΠΎΠ΅Π½ΠΎΡΠΎ ΠΏΠΎ-Π³ΠΎΡΠ΅. Π ΡΠ°ΠΌΠΈΡΡ ΠΏΡΠΎΡΠ΅Ρ Π΅ ΡΠ»Π΅Π΄Π½ΠΈΡΡ.
Π‘ΡΡΠΏΠΊΠ° 1 β Π‘ΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° Π²Π°ΡΠΈΡ ΠΊΠ»ΡΡΡΠ΅Ρ OpenShift
ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π³ΠΎΡΠΎΠ²ΠΈ Π·Π° ΠΊΠΎΠ΄ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ ΠΎΡ Red Hat, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎ ΡΡΡΠ΅ΡΡΠ²ΠΎ Π΅ ΡΡΡΠΈΡΡ Minikube, Π½ΠΎ ΡΠ°ΠΌΠΎ Ρ ΠΏΡΠ»Π΅Π½ Openshift ΠΊΠ»ΡΡΡΠ΅Ρ Ρ Π΅Π΄ΠΈΠ½ Π²ΡΠ·Π΅Π».
crc start
Π‘ΡΡΠΏΠΊΠ° 2 - ΠΠ·Π³ΡΠ°Π΄Π΅ΡΠ΅ ΠΈ ΡΠ°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ° OpenShift
ΠΠΌΠ΅Π½Π½ΠΎ Π½Π° ΡΠ°Π·ΠΈ ΡΡΡΠΏΠΊΠ° ΠΏΡΠΎΡΡΠΎΡΠ°ΡΠ° ΠΈ ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎΡΠΎ Π½Π° OpenShift ΡΠ΅ ΠΏΡΠΎΡΠ²ΡΠ²Π°Ρ Π² ΡΠ΅Π»ΠΈΡ ΡΠΈ Π±Π»ΡΡΡΠΊ. ΠΠ°ΠΊΡΠΎ ΠΏΡΠΈ Π²ΡΠΈΡΠΊΠΈ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠΈ Π½Π° Kubernetes, ΠΈΠΌΠ°ΠΌΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ Π½Π°ΡΠΈΠ½ΠΈ Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΊΠ»ΡΡΡΠ΅Ρ. Π ΠΊΠ°ΠΊΡΠΎ Π² ΡΠ»ΡΡΠ°Ρ Ρ KUK, Π½ΠΈΠ΅ ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΎ ΠΈΠ·Π±ΠΈΡΠ°ΠΌΠ΅ Π½Π°ΠΉ-ΠΏΡΠΎΡΡΠΈΡ.
OpenShift Π²ΠΈΠ½Π°Π³ΠΈ Π΅ Π±ΠΈΠ» ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½ ΠΊΠ°ΡΠΎ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ ΠΈ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Π²ΠΈΠ½Π°Π³ΠΈ Π΅ Π±ΠΈΠ»ΠΎ Π½Π΅ΡΠ°Π·Π΄Π΅Π»Π½Π° ΡΠ°ΡΡ ΠΎΡ ΡΠ°Π·ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°, ΡΠ°ΠΊΠ° ΡΠ΅ ΠΈΠΌΠ° ΠΊΡΠΏ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΡΠ΅ΡΡΡΡΠΈ Π½Π° Kubernetes Π·Π° ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΈΡΠ΅ Π·Π°Π΄Π°ΡΠΈ.
Π©Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΏΡΠΎΡΠ΅ΡΠ° Source 2 Image (S2I) Π½Π° OpenShift, ΠΊΠΎΠΉΡΠΎ ΠΈΠΌΠ° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π½Π°ΡΠΈΠ½Π° Π΄Π° Π²Π·Π΅ΠΌΠ΅ΠΌ Π½Π°ΡΠΈΡ ΠΈΠ·ΡΠΎΡΠ½ΠΈΠΊ (ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ Π΄Π²ΠΎΠΈΡΠ½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅) ΠΈ Π΄Π° Π³ΠΎ ΠΏΡΠ΅Π²ΡΡΠ½Π΅ΠΌ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΠ·ΠΈΡΠ°Π½ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ΅ΡΠΎ ΡΠ°Π±ΠΎΡΠΈ Π½Π° ΠΊΠ»ΡΡΡΠ΅Ρ OpenShift.
ΠΠ° ΡΠΎΠ²Π° ΠΈΠΌΠ°ΠΌΠ΅ Π½ΡΠΆΠ΄Π° ΠΎΡ Π΄Π²Π΅ Π½Π΅ΡΠ°:
- ΠΠ°ΡΠΈΡΡ ΠΈΠ·Ρ ΠΎΠ΄Π΅Π½ ΠΊΠΎΠ΄ Π² git Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ
- Builder-ΠΎΠ±ΡΠ°Π·, Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠΈ ΡΠ³Π»ΠΎΠ±ΡΠ²Π°Π½Π΅ΡΠΎ.
ΠΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΊΠΈΠ²Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½ΠΈ ΠΊΠ°ΠΊΡΠΎ ΠΎΡ Red Hat, ΡΠ°ΠΊΠ° ΠΈ ΠΎΡ ΠΎΠ±ΡΠ½ΠΎΡΡΡΠ°, ΠΈ Π½ΠΈΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° OpenJDK, Π΄ΠΎΠ±ΡΠ΅, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΡΡΠ·Π΄Π°Π²Π°ΠΌ Java ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅ S2I ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ ΠΊΠ°ΠΊΡΠΎ ΠΎΡ Π³ΡΠ°ΡΠΈΡΠ½Π°ΡΠ° ΠΊΠΎΠ½Π·ΠΎΠ»Π° Π½Π° OpenShift Developer, ΡΠ°ΠΊΠ° ΠΈ ΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΈΡ ΡΠ΅Π΄. Π©Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° new-app, ΠΊΠ°ΡΠΎ ΠΉ ΠΊΠ°ΠΆΠ΅ΠΌ ΠΎΡΠΊΡΠ΄Π΅ Π΄Π° ΠΏΠΎΠ»ΡΡΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡΠ° ΠΈ Π½Π°ΡΠΈΡ ΠΈΠ·Ρ ΠΎΠ΄Π΅Π½ ΠΊΠΎΠ΄.
oc new-app registry.access.redhat.com/ubi8/openjdk-11:latest~https://github.com/gcolman/quarkus-hello-world.git
Π’ΠΎΠ²Π° Π΅ Π²ΡΠΈΡΠΊΠΎ, Π½Π°ΡΠ΅ΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΅ ΡΡΠ·Π΄Π°Π΄Π΅Π½ΠΎ. ΠΡΠΈ ΡΠΎΠ²Π° ΠΏΡΠΎΡΠ΅ΡΡΡ S2I Π½Π°ΠΏΡΠ°Π²ΠΈ ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ Π½Π΅ΡΠ°:
- Π‘ΡΠ·Π΄Π°Π΄Π΅Π½ ΠΏΠ°ΠΊΠ΅Ρ Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΡΡΠ»ΡΠ³ΠΈ Π·Π° Π²ΡΡΠΊΠ°ΠΊΠ²ΠΈ Π½Π΅ΡΠ°, ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ.
- Π‘ΡΠ·Π΄Π°Π΄Π΅Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π½Π° OpenShift Build.
- ΠΠ·ΡΠ΅Π³Π»ΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡΠ° Π²ΡΠ² Π²ΡΡΡΠ΅ΡΠ½ΠΈΡ Π΄ΠΎΠΊΠ΅Ρ ΡΠ΅Π³ΠΈΡΡΡΡ Π½Π° OpenShift.
- ΠΠ»ΠΎΠ½ΠΈΡΠ°Π½ βHello Worldβ Π² Π»ΠΎΠΊΠ°Π»Π½ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅.
- ΠΠΈΠ΄ΡΡ , ΡΠ΅ ΡΠ°ΠΌ ΠΈΠΌΠ° maven pom ΠΈ ΡΠ°ΠΊΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Ρ maven.
- Π‘ΡΠ·Π΄Π°Π΄Π΅Π½ΠΎ Π½ΠΎΠ²ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, ΡΡΠ΄ΡΡΠΆΠ°ΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ΠΎΡΠΎ Java ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΈ ΠΏΠΎΡΡΠ°Π²ΠΈ ΡΠΎΠ²Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΠ² Π²ΡΡΡΠ΅ΡΠ½ΠΈΡ ΡΠ΅Π³ΠΈΡΡΡΡ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°.
- Π‘ΡΠ·Π΄Π°Π΄Π΅ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π½Π° Kubernetes ΡΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π·Π° ΠΏΠΎΠ΄, ΡΡΠ»ΡΠ³Π° ΠΈ Ρ.Π½.
- Π‘ΡΠ°ΡΡΠΈΡΠ°Π½ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π·Π° ΡΠ°Π·Π³ΡΡΡΠ°Π½Π΅.
- ΠΡΠ΅ΠΌΠ°Ρ Π½Π°ΡΠ° ΡΠ΅ΡΠ²ΠΈΠ·Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ.
ΠΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π² ΡΠΎΠ·ΠΈ ΡΠΏΠΈΡΡΠΊ, Π½ΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΡΠΎ Π΅, ΡΠ΅ ΡΡΠ»ΠΎΡΠΎ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π° ΠΈΠ·ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ Π² OpenShift, Π²ΡΡΡΠ΅ΡΠ½ΠΈΡΡ ΡΠ΅Π³ΠΈΡΡΡΡ Π½Π° Docker Π΅ Π² OpenShift ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΡ Π½Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ ΡΡΠ·Π΄Π°Π²Π° Π²ΡΠΈΡΠΊΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ Π½Π° Kubernetes ΠΈ Π³ΠΈ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ°.
ΠΠΊΠΎ Π²ΠΈΠ·ΡΠ°Π»Π½ΠΎ Π½Π°Π±Π»ΡΠ΄Π°Π²Π°ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° S2I Π² ΠΊΠΎΠ½Π·ΠΎΠ»Π°ΡΠ°, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ ΠΊΠ°ΠΊ ΠΌΠΎΠ΄ΡΠ»ΡΡ Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ° ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ΡΠΎ.
Π ΡΠ΅Π³Π° Π½Π΅ΠΊΠ° Π΄Π° ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° builder pod: ΠΏΡΡΠ²ΠΎ, ΡΠ°ΠΌ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ ΠΊΠ°ΠΊ maven Π²ΡΡΡΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΠ° ΡΠΈ ΠΈ ΠΈΠ·ΡΠ΅Π³Π»Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, Π·Π° Π΄Π° ΠΈΠ·Π³ΡΠ°Π΄ΠΈ Π½Π°ΡΠ΅ΡΠΎ java ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
Π‘Π»Π΅Π΄ Π·Π°Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° maven ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½ΠΎΡΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΠ° Π²ΡΠ² Π²ΡΡΡΠ΅ΡΠ½ΠΎΡΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅.
ΠΡΠΈΡΠΊΠΎ, ΠΏΡΠΎΡΠ΅ΡΡΡ Π½Π° ΡΠ³Π»ΠΎΠ±ΡΠ²Π°Π½Π΅ Π΅ Π·Π°Π²ΡΡΡΠ΅Π½. Π‘Π΅Π³Π° Π½Π΅ΠΊΠ° ΡΠ΅ ΡΠ²Π΅ΡΠΈΠΌ, ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈΡΠ΅ ΠΈ ΡΡΠ»ΡΠ³ΠΈΡΠ΅ Π½Π° Π½Π°ΡΠ΅ΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ° ΡΡΠ°ΡΡΠΈΡΠ°Π»ΠΈ Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ°.
oc get service
Π’ΠΎΠ²Π° Π΅ Π²ΡΠΈΡΠΊΠΎ. Π ΠΈΠΌΠ° ΡΠ°ΠΌΠΎ Π΅Π΄ΠΈΠ½ ΠΎΡΠ±ΠΎΡ. ΠΡΠΈΡΠΊΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ, Π΅ Π΄Π° ΠΈΠ·Π»ΠΎΠΆΠΈΠΌ ΡΠ°Π·ΠΈ ΡΡΠ»ΡΠ³Π° Π·Π° Π²ΡΠ½ΡΠ΅Π½ Π΄ΠΎΡΡΡΠΏ.
Π‘ΡΡΠΏΠΊΠ° 3 - ΠΈΠ·Π»ΠΎΠΆΠ΅ΡΠ΅ ΡΡΠ»ΡΠ³Π°ΡΠ° Π·Π° Π΄ΠΎΡΡΡΠΏ ΠΎΡΠ²ΡΠ½
ΠΠ°ΠΊΡΠΎ Π² ΡΠ»ΡΡΠ°Ρ Ρ KUK, Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° OpenShift, Π½Π°ΡΠΈΡΡ βHello Worldβ ΡΡΡΠΎ ΡΠ΅ Π½ΡΠΆΠ΄Π°Π΅ ΠΎΡ ΡΡΡΠ΅Ρ Π·Π° Π½Π°ΡΠΎΡΠ²Π°Π½Π΅ Π½Π° Π²ΡΠ½ΡΠ΅Π½ ΡΡΠ°ΡΠΈΠΊ ΠΊΡΠΌ ΡΡΠ»ΡΠ³Π° Π²ΡΡΡΠ΅ Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ°. Π OpenShift ΡΠΎΠ²Π° Π³ΠΎ ΠΏΡΠ°Π²ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π»Π΅ΡΠ½ΠΎ. ΠΡΡΠ²ΠΎ, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡΡ Π·Π° ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅ HAProxy Π΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ° ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ (ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΡΠΎΠΌΠ΅Π½Π΅Π½ Π½Π° ΡΡΡΠΈΡ NGINX). ΠΡΠΎΡΠΎ, ΠΈΠΌΠ° ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΈ ΠΈ ΡΠΈΠ»Π½ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΡΠ΅ΠΌΠΈ ΡΠ΅ΡΡΡΡΠΈ, Π½Π°ΡΠ΅ΡΠ΅Π½ΠΈ Routes, ΠΊΠΎΠΈΡΠΎ Π½Π°ΠΏΠΎΠΌΠ½ΡΡ Π½Π° Ingress ΠΎΠ±Π΅ΠΊΡΠΈ Π² Π΄ΠΎΠ±ΡΠΈΡ ΡΡΠ°Ρ Kubernetes (Π²ΡΡΡΠ½ΠΎΡΡ Routes Π½Π° OpenShift ΡΠΈΠ»Π½ΠΎ ΠΏΠΎΠ²Π»ΠΈΡΡ Π° Π½Π° Π΄ΠΈΠ·Π°ΠΉΠ½Π° Π½Π° Ingress ΠΎΠ±Π΅ΠΊΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅Π³Π° ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π² OpenShift), Π½ΠΎ Π·Π° Π½Π°ΡΠΈΡ "ΠΠ΄ΡΠ°Π²Π΅ΠΉ Π‘Π²ΡΡ", Π° Π² ΠΏΠΎΡΡΠΈ Π²ΡΠΈΡΠΊΠΈ ΠΎΡΡΠ°Π½Π°Π»ΠΈ ΡΠ»ΡΡΠ°ΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈΡΡ ΠΌΠ°ΡΡΡΡΡ Π΅ Π΄ΠΎΡΡΠ°ΡΡΡΠ΅Π½ Π·Π° Π½Π°Ρ Π±Π΅Π· Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ.
ΠΠ° Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΠΌ FQDN Π·Π° ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅ Π·Π° βHello Worldβ (Π΄Π°, OpenShiift ΠΈΠΌΠ° ΡΠΎΠ±ΡΡΠ²Π΅Π½ DNS Π·Π° ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅ ΠΏΠΎ ΠΈΠΌΠ΅Π½Π° Π½Π° ΡΡΠ»ΡΠ³ΠΈ), Π½ΠΈΠ΅ ΠΏΡΠΎΡΡΠΎ ΠΈΠ·Π»Π°Π³Π°ΠΌΠ΅ Π½Π°ΡΠ°ΡΠ° ΡΡΠ»ΡΠ³Π°:
oc expose service quarkus-hello-world
ΠΠΊΠΎ ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠ·Π΄Π°Π΄Π΅Π½ΠΈΡ ΠΌΠ°ΡΡΡΡΡ, ΡΠΎΠ³Π°Π²Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°ΠΌΠ΅ΡΠΈΡΠ΅ FQDN ΠΈ Π΄ΡΡΠ³Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅ ΡΠ°ΠΌ:
oc get route
Π Π½Π°ΠΊΡΠ°Ρ, Π½ΠΈΠ΅ ΠΎΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΠΌΠ΅ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π½Π°ΡΠ°ΡΠ° ΡΡΠ»ΡΠ³Π° ΠΎΡ Π±ΡΠ°ΡΠ·ΡΡΠ°:
ΠΠΎ ΡΠ΅Π³Π° Π±Π΅ΡΠ΅ Π½Π°ΠΈΡΡΠΈΠ½Π° Π»Π΅ΡΠ½ΠΎ!
ΠΠ±ΠΈΡΠ°ΠΌΠ΅ Kubernetes ΠΈ Π²ΡΠΈΡΠΊΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΡΠ°Π·ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΏΡΠ°Π²ΠΈΡΠ΅, ΠΈ ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΎΠ±ΠΈΡΠ°ΠΌΠ΅ ΠΏΡΠΎΡΡΠΎΡΠ°ΡΠ° ΠΈ Π»Π΅ΠΊΠΎΡΠ°ΡΠ°. Kubernetes Π΅ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ°Π½ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡΠ΅, ΠΌΠ°ΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Π½Π΅Π²Π΅ΡΠΎΡΡΠ½ΠΎ Π»Π΅ΡΠ½ΠΈ Π·Π° ΡΠ°Π±ΠΎΡΠ°, Π½ΠΎ Π½Π΅Π³ΠΎΠ²Π°ΡΠ° ΠΏΡΠΎΡΡΠΎΡΠ° Π²Π΅ΡΠ΅ Π½Π΅ Π΅ Π΄ΠΎΡΡΠ°ΡΡΡΠ½Π°, Π·Π° Π΄Π° Π²ΡΠ²Π΅Π΄Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ° Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎ Π΄Π½Π΅Ρ. Π’ΠΎΠ²Π° Π΅ ΠΌΡΡΡΠΎΡΠΎ, ΠΊΡΠ΄Π΅ΡΠΎ OpenShift Π²Π»ΠΈΠ·Π° Π² ΠΈΠ³ΡΠ°, ΠΊΠ°ΡΠΎ Π΅ Π² ΠΊΡΠ°ΠΊ Ρ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ ΠΈ ΠΏΡΠ΅Π΄Π»Π°Π³Π° Kubernetes, ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠ°Π½ ΠΊΡΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅. ΠΡΡ Π° ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠΈΠ»ΠΈΡ, Π·Π° Π΄Π° ΡΠ΅ Π°Π΄Π°ΠΏΡΠΈΡΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° OpenShift ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΎ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ ΠΊΠ°ΡΠΎ S2I, ODI, ΠΏΠΎΡΡΠ°Π» Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ, OpenShift Operator Framework, IDE ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ, ΠΊΠ°ΡΠ°Π»ΠΎΠ·ΠΈ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ, ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Π½Π° Helm, ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΈ.
ΠΠ°Π΄ΡΠ²Π°ΠΌΠ΅ ΡΠ΅, ΡΠ΅ ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ Π΅ Π±ΠΈΠ»Π° ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π° ΠΈ ΠΏΠΎΠ»Π΅Π·Π½Π° Π·Π° Π²Π°Ρ. Π ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°ΠΌΠ΅ΡΠΈΡΠ΅ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΡΠ΅ΡΡΡΡΠΈ, ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΈ ΠΈ Π΄ΡΡΠ³ΠΈ Π½Π΅ΡΠ°, ΠΏΠΎΠ»Π΅Π·Π½ΠΈ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° OpenShift Π½Π° ΠΏΠΎΡΡΠ°Π»Π°
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com