Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ openshift Π΄Π»Ρ ΡΠ°ΠΉΠ½ΠΈΠΊΠΎΠ²
Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² Openshift: ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
ΠΠ΄ΡΠ°Π²ΡΡΠ²ΡΠΉΡΠ΅ ΡΠ²Π°ΠΆΠ°Π΅ΠΌΡΠ΅ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠΈ ΠΠ’ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π°. ΠΠ΅Π½Ρ Π·ΠΎΠ²ΡΡ ΠΠ»Π΅Π³, Ρ ΡΠ°Π±ΠΎΡΠ°Ρ Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ ΠΠ. Π― Π·Π°Π½ΠΈΠΌΠ°ΡΡΡ ΡΡΡΠ½ΡΠΌ ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Linux ΠΈ Unix ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ² ΠΈ Ρ Ρ ΠΎΡΠ΅Π» Π±Ρ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΠΎΠΏΡΡΠΎΠΌ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² Openshift Origin.
Π¦Π΅Π»ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΠΏΡΠ΅ΡΠ»Π΅Π΄ΡΡ:
ΠΠ΅ΡΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» ΠΈΠ·Π»ΠΎΠΆΠ΅Π½ Π² ΡΡΡΡ ΡΡΠ°ΡΡΡΡ :
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: Ρ ΠΎΡΠ΅Π»ΠΎΡΡ Π±Ρ ΡΡΠ°Π·Ρ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΈΠ·Π»Π°Π³Π°Π΅ΠΌΡΠΉ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» ΠΊΠ°ΡΠ°Π΅ΡΡΡ Openshift v3, Π° Π½Π΅ Openshift v2 (ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ Red Hat Π΅ΡΠ΅ Π½Π΅ Π½Π°ΡΠ°Π»Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Kubernetes Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ΄ΡΠ° Π΄Π»Ρ ΡΠ²ΠΎΠΈΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ² ΠΈ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ²).
ΠΠΎΡΠ΅ΠΌΡ Π±ΡΠ» Π²ΡΠ±ΡΠ°Π½ Openshift Origin:
Π’Π°ΠΊ ΡΠ»ΡΡΠΈΠ»ΠΎΡΡ, ΡΡΠΎ ΠΏΠΎΡΠ»Π΅ ΡΡΡΠ΄ΠΎΡΡΡΡΠΎΠΉΡΡΠ²Π° Π½Π° ΡΠ΅ΠΊΡΡΠ΅Π΅ ΠΌΠ΅ΡΡΠΎ ΡΠ°Π±ΠΎΡΡ, Π²ΡΡΡΠ½ΠΈΠ»ΠΎΡΡ, ΡΡΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π΅Ρ Π² ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅. ΠΡΠΎΡΠ°Π±ΠΎΡΠ°Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅ΡΡΡΠ΅Π² Π² ΡΡΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΏΡΠΈΡΠ»ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π΄Π²ΡΡ Π²Π΅ΡΠ΅ΠΉ: ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° Π΄Π»Ρ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΠ΅ΡΡΠΈΡΡΠ΅ΠΌΡΡ ΡΡΠ΅Π΄, framework Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠ΅ΡΡΠΎΠ².
ΠΠ° ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎΠΌ ΡΡΠ°ΠΏΠ΅ Π΄Π»Ρ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΡΠ΅Π΄ Π±ΡΠ» ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΠΌΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Vagrant (VirtualBox), ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ ΠΈ ΡΠΏΠ°ΠΊΠΎΠ²ΡΠ²Π°Π΅Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΠ‘ Π² Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅. ΠΡΠΎ ΡΡΠ°Π»ΠΎ ΠΏΠΎΠ΄ΡΠΏΠΎΡΡΠ΅ΠΌ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π½ΠΎ ΠΈ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΠΏΠΎΡΠΎΠΌΡ ΠΊΠ°ΠΊ: Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠ°ΡΠΈΠ½Ρ Π±ΡΠ»ΠΈ ΡΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°Π½Ρ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ Π²ΡΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠΌ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌ; Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠ°ΡΠΈΠ½Ρ Π±ΡΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ, Π±ΡΠ»ΠΈ ΠΏΡΠ΅Π΄ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ; ΠΈΠΌΠ΅Π»ΠΈΡΡ ΡΡΠ΅Π½Π°ΡΠΈΠΈ Vagrant Π΄Π»Ρ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ ΡΠ»ΠΎΠΆΠ½ΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΉ. Π‘ΡΠΎΠΈΡ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ Π²ΡΠ΅ ΡΡΠ΅Π΄Ρ Vagrant ΡΠ°Π·Π²ΠΎΡΠ°ΡΠΈΠ²Π°ΡΡΡΡ Π½Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½Π°Ρ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠΎΠ² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, Π° Π½Π΅ Π² Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΠΎΠΌ IaaS, ΡΡΠΎ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎ Π²ΡΠ·ΡΠ²Π°Π»ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠ°Π±ΠΎΡΠΈΡ ΡΡΠ°Π½ΡΠΈΠΉ.
ΠΡΠ»ΠΎ Π²ΡΠΈΠ³ΡΠ°Π½ΠΎ Π²ΡΠ΅ΠΌΡ, ΡΡΠ°Π»ΠΎ ΡΠ΄ΠΎΠ±Π½Π΅Π΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ, ΠΏΠΎΡΠ²ΠΈΠ»ΠΈΡΡ Π½Π΅ΠΊΠΈΠΉ ΡΡΠ°Π½Π΄Π°ΡΡ ΠΈ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠΎΡΡΡ, Π½ΠΎ Π³Π»Π°Π²Π½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΎΡΡΠ°Π²Π°Π»Π°ΡΡ β Π΄ΠΎΠ»Π³ΠΎΠ΅ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΡΡΠΈΡΡΠ΅ΠΌΡΡ ΡΡΠ΅Π΄ (ΠΏΠΎΠ»Π½Π°Ρ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ, ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Ρ Linux, Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ (ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ°ΡΡΠ²ΡΡΡ Π² ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ)). Π Π°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΡΡΠΈΡΡΠ΅ΠΌΡΡ ΡΡΠ΅Π΄ ΠΌΠΎΠ³Π»ΠΎ Π·Π°Π½ΠΈΠΌΠ°ΡΡ Π΄Π΅ΡΡΡΠΊΠΈ ΠΌΠΈΠ½ΡΡ, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ ΡΠ°ΠΌ ΡΠ΅ΡΡ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΠ» Π·Π° ΡΡΠΈΡΠ°Π½Π½ΡΠ΅ ΡΠ΅ΠΊΡΠ½Π΄Ρ. ΠΡΠΈ ΡΡΠΎΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ΅ΡΡΠΎΠ² ΡΠΎΡΠ»ΠΎ ΠΈ ΠΎΠΆΠΈΠ΄Π°ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΠ»ΠΎΡΡ Π²ΡΡ Π΄ΠΎΠ»ΡΡΠ΅.
ΠΠ°ΠΊΠΎΠ½ΠΎΠΌΠ΅ΡΠ½ΡΠΌ ΡΡΠ°Π» Π²ΠΎΠΏΡΠΎΡ ΠΎΠ± ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΠ±ΠΎΡΠΎΠ±Π»Π΅Π½Π½ΠΎΠ³ΠΎ IaaS, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΠ»ΠΈ Π±Ρ Π²ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π½ΠΎ Π΄Π°Π½Π½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π±ΡΠ» Π½Π΅ ΠΈΠ΄Π΅Π°Π»Π΅Π½: Π²ΡΡ ΡΠ°ΠΊ ΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»Π°ΡΡ Π±Ρ ΠΏΠΎΠ»Π½Π°Ρ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ, Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ IaaS ΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΈΡΡ Π±Ρ ΡΠΈΠ½Π°Π½ΡΠΎΠ²ΡΠ΅ Π²Π»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° ΠΏΠΎΠΊΡΠΏΠΊΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ (Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΏΠ°ΡΠΊ ΡΠ»Π°Π±ΡΡ ΡΠ°Π±ΠΎΡΠΈΡ ΡΡΠ°Π½ΡΠΈΠΈ ΠΏΡΠΈΡΡΡΡΡΠ²ΠΎΠ²Π°Π»).
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΌ ΡΡΠ°ΠΏΠΎΠΌ ΡΡΠ°Π»Π° ΠΏΡΠΎΡΠ°Π±ΠΎΡΠΊΠ° Π±ΡΡΡΡΠΎΠ³ΠΎ (Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ Π±ΡΡΡΡΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΉ) CI/CD c ΡΡΠ΅ΡΠΎΠΌ Π½ΠΎΠ²ΡΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΈ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ (ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅, ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ°ΠΌ):
Π― Π½Π΅ Π±ΡΠ΄Ρ ΡΡΡΡΠΆΠ΄Π°ΡΡ ΡΠΈΡΠ°ΡΠ΅Π»Π΅ΠΉ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠΌ ΠΏΠ΅ΡΠ΅ΡΠΊΠ°Π·ΠΎΠΌ ΠΎ ΡΠ΅ΡΠ½ΠΈΡΡΠΎΠΌ ΠΏΡΡΠΈ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ², Π½ΠΎ Ρ ΠΎΡΡ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡ ΡΠΎ ΡΠΏΠΈΡΠΊΠΎΠΌ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΠ (ΡΠ΅Π²ΡΠ°Π»Ρ 2016):
ΠΠ΄Π½ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΏΠ»ΠΎΡ ΠΎ ΡΠΏΡΠ°Π²Π»ΡΠ»ΠΈΡΡ ΠΈΠ»ΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΈ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΠΈ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ, Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠ»ΠΎΡ ΠΎ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π»ΠΈΡΡ Ρ Jenkins ΠΈ Π½Π΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎΠ³ΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π°, ΡΡΠ΅ΡΡΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π½Π°ΡΠΈΠ½Π°Π»ΠΈ ΡΠ²ΠΎΠΉ ΠΏΡΡΡ. ΠΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΡΠΌ Π»ΠΈΠ΄Π΅ΡΠΎΠΌ Π²ΡΡΠΈΡΠΎΠ²ΡΠ²Π°Π»Π°ΡΡ Kubernetes ΠΈ Π΅Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΠ΅ (ΠΊΠΎΠΈΡ Π½Π΅ ΠΌΠ°Π»ΠΎ), Π½ΠΎ Π² ΡΠΈΡΡΠΎΠΌ Π²ΠΈΠ΄Π΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° ΠΎΡ Google Π±ΡΠ»Π° ΡΠ»ΠΎΠΆΠ½Π° Π² ΠΎΡΠ²ΠΎΠ΅Π½ΠΈΠΈ ΠΈ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠΈ (ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΡΠΈΠ»Π°Π³Π°ΡΡ Π±ΠΎΠ»ΡΡΠΈΠ΅ ΡΡΠΈΠ»ΠΈΡ Π΄Π»Ρ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ).
Π‘Π²ΠΎΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ oΠ± Openshift Origin:
Openshift Origin β ΡΡΠΎ Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ Open Source ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΠ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±Π°Π·ΠΈΡΡΠ΅ΡΡΡ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ ΠΎΡΠΊΠ΅ΡΡΡΠ°ΡΠΈΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² Kubernetes. ΠΠ»Π°ΡΡΠΎΡΠΌΠ° ΡΠ°ΡΡΠΈΡΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Kubernetes Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠ².
ΠΠ»Π°ΡΡΠ΅Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡ ΠΈΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² Ansible. ΠΠ½ΡΡΡΠΈ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΡΠ°ΠΊ ΠΈ Π²Π½Π΅ΡΠ½ΠΈΠΉ Docker ΡΠ΅Π³ΠΈΡΡΡ. Π£Π·Π»Ρ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π·Π°ΠΊΡΠ΅ΠΏΠ»Π΅Π½Ρ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΌΠ΅ΡΠΎΠΊ Π·Π° ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°ΠΌΠΈ. ΠΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ ΡΠ±ΠΎΡΡΠΈΠΊ ΠΌΡΡΠΎΡΠ° ΠΈ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΠΉ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ. ΠΠ»Π°ΡΡΠ΅Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡ Π²Π½ΡΡΡΠΈ Openstack ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½ Ρ Π½ΠΈΠΌ Ρ ΡΠ΅Π»ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° Π΄Π°Π½Π½ΡΡ . Π‘ΡΠ΅Π΄Ρ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½Ρ ΠΎΠ± ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΡΡ ΡΠ΅ΡΠ²ΠΈΡΠ°Ρ ΠΈ Π΄ΡΡΠ³ΠΈΡ ΡΠ·Π»Π°Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΉ ΠΈ DNS ΠΈΠΌΠ΅Π½. ΠΠΎΠ·ΠΌΠΎΠΆΠ½Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΠΈ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² ΡΠ΅ΡΠ΅Π· HTTP/TCP Π·Π°ΠΏΡΠΎΡ ΠΈ/ΠΈΠ»ΠΈ ΡΠ΅ΡΠ΅Π· Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π²Π½ΡΡΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°. Π Π΅ΡΡΡΡΡ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΊΠ²ΠΎΡΠΈΡΠΎΠ²Π°Π½Ρ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² (ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ, ΠΏΠ°ΠΌΡΡΡ, ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈ Ρ.Π΄.). ΠΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° ΠΊΠ»Π°ΡΡΠ΅ΡΠ° Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² ΠΈ ΡΠ°Π±ΠΎΡΠΈΡ ΡΠ·Π»ΠΎΠ².
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠΏΠΎΡΠΎΠ±Π° Ρ Π°ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΌΠΎΠ³ΡΡ Π²ΡΡΡΡΠΏΠ°ΡΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈΠ»ΠΈ ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΠ΅ ΡΠΎΠΌΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ½ΡΠΈΡΡΡΡΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ. Backend Π΄Π»Ρ Π΄Π°Π½Π½ΡΡ ΡΠΎΠΌΠΎΠ² ΠΌΠΎΠ³ΡΡ Π²ΡΡΡΡΠΏΠ°ΡΡ: NFS, GlusterFS, OpenStack Cinder, Ceph RBD, AWS Elastic Block Store (EBS), GCE Persistent Disk ΠΈ Ρ.Π΄. ΠΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ (hostPath) ΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° ΡΠΎΠ³ΠΎ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΡΠ·Π»Π°, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ Π·Π°ΠΏΡΡΠ΅Π½ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ.
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π²ΡΠ΅ ΠΊΠΎΠΌΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΠΈ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Open vSwitch, Π½ΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π΄ΡΡΠ³ΠΈΡ ΡΠ΅ΡΠ΅Π²ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ ΡΠ΅ΡΠ΅Π· ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² Kubernetes. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π²ΡΠ΅ ΡΡΠ΅Π΄Ρ ΠΌΠΎΠ³Ρ ΠΊΠΎΠΌΠΌΡΠ½ΠΈΡΠΈΡΠΎΠ²Π°ΡΡ Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³ΠΎΠΌ, Π½ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° ΠΈΠ·ΠΎΠ»ΡΡΠΈΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ². ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ DNS ΠΈΠΌΠ΅Π½ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΉ ΡΠ»ΡΠΆΠ±Ρ SkyDNS. ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΡΠ΅ Π²Π½ΡΡΡΠΈ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° ΡΠ΅ΡΠ²ΠΈΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΠΈΠ·Π²Π½Π΅. ΠΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΠΏΠΎ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ ΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌ NAT Π±Π΅ΡΠ΅Ρ Π½Π° ΡΠ΅Π±Ρ Iptables.
Π Π°Π·Π³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠ°Π² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠΎΠ»Π΅ΠΉ. ΠΠ·ΠΎΠ»ΡΡΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ SELinux (ΠΈ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ). ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ΅ΠΊΡΠ΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌ ΡΠ΅ΡΡΡΡΠ°ΠΌ. ΠΡΠ΅ ΠΊΠΎΠΌΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π±ΠΎΡΠΈΠΌΠΈ ΡΠ·Π»Π°ΠΌΠΈ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° ΠΈ ΠΌΠ°ΡΡΠ΅ΡΠΎΠΌ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅ΡΠ΅Π· ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ (ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ CA, Π²ΡΠ΄Π°ΡΡΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ).
ΠΠΎΡΡΡΠΏΠ½Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ API ΠΊΠ°ΠΊ Π΄Π»Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ Openshift, ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ Kubernetes. ΠΠΎΡΡΡΠΏΠ΅Π½ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΠΉ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΡΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ. ΠΠΎΡΡΡΠΏΠ΅Π½ Π²Π΅Π±-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΌΠΎΠ³ΡΡ: ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ Ρ ΡΡΠ΅ΡΠΎΠΌ ΠΈΡ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΠΉ, Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΠΌΠΈ Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°ΠΌΠΈ, ΠΎΠ±ΠΎΠ·ΡΠ΅Π²Π°ΡΡ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΡΠΎΠ±ΡΡΠΈΡ ΠΈ Ρ.Π΄.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅:
ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΠΎΠ±ΠΈΠ»ΠΈΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ Π½Π° ΡΡΠ½ΠΊΠ΅, Π½Π°ΠΉΡΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎ. ΠΠ°Π»Π°Π½ΡΠΈΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ½ΠΈΡΠΈΠΊΠ°ΡΠΈΠ΅ΠΉ ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠ΅ΠΉ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² CI/CD, ΡΡΠΈΡΡΠ²Π°Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΡ, ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ ΡΠ΅ΠΏΠΎΡΠΊΠΈ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½Π½ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, Π²ΡΡ ΠΆΠ΅ Π±ΡΠ»Π° Π½Π°ΠΉΠ΄Π΅Π½Π° Kubernetes, Π° Π·Π°ΡΠ΅ΠΌ ΠΈ Openshift Origin. Π ΠΎΡΠ»ΠΈΡΠΈΠΈ ΠΎΡ Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ ΠΎΡΠΊΠ΅ΡΡΡΠ°ΡΠΈΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°ΠΌΠΈ Kubernetes, Openshift ΠΏΡΠΈΠ²Π½ΠΎΡΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΡΠ΄ΠΎΠ±Π½ΠΎΠΉ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ OpenShift Π² Azure
ΠΠ±Π»Π°ΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ: ✔️ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½ Linux ✔️ Π³ΠΈΠ±ΠΊΠΈΡ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΡΡ Π½Π°Π±ΠΎΡΠΎΠ²
OpenShift β ΡΡΠΎ ΠΎΡΠΊΡΡΡΠ°Ρ ΠΈ ΡΠ°ΡΡΠΈΡΡΠ΅ΠΌΠ°Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Docker ΠΈ Kubernetes Π½Π° ΠΏΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΠΈ.
OpenShift Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Kubernetes Π΄Π»Ρ ΠΎΡΠΊΠ΅ΡΡΡΠ°ΡΠΈΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈΠΌΠΈ. ΠΠ΄Π΅ΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠ΅:
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ Π²Π΅ΡΡΠΈΠΉ OpenShift. ΠΠ· ΡΡΠΈΡ Π²Π΅ΡΡΠΈΠΉ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π²Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ Π² Azure: ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² OpenShift ΠΈ OKD (ΠΏΡΠ΅ΠΆΠ½Π΅Π΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ OpenShift Origin).
Azure Red Hat OpenShift
Microsoft Azure Red Hat OpenShift ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠ΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ OpenShift, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ΅ Π² Azure. ΠΡΠ° ΡΠ»ΡΠΆΠ±Π° ΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ΅ΠΉ ΠΠ°ΠΉΠΊΡΠΎΡΠΎΡΡ ΠΈ Red Hat. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΌ. Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΏΠΎ ΡΠ»ΡΠΆΠ±Π΅ Azure Red Hat OpenShift.
ΠΠ»Π°ΡΡΠΎΡΠΌΠ° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² OpenShift
OpenShift Container Platform β ΡΡΠΎ ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠ°Ρ Π²Π΅ΡΡΠΈΡ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Red Hat. Π§ΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡ Π²Π΅ΡΡΠΈΡ, ΠΊΠ»ΠΈΠ΅Π½ΡΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠΈΠΎΠ±ΡΠ΅ΡΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΏΡΠ°Π²Π° Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ OpenShift Container Platform. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΎΠ½ΠΈ ΡΠ°ΠΌΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΡΡΡ Π²ΡΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ.
Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΊΠ»ΠΈΠ΅Π½ΡΡ ΡΠ²Π»ΡΡΡΡΡ Π²Π»Π°Π΄Π΅Π»ΡΡΠ°ΠΌΠΈ ΡΠ°ΠΌΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ, ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΅Π΅ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ ΡΠ΅Π½ΡΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π°Π½Π½ΡΡ ΠΈΠ»ΠΈ Π² ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΌ ΠΎΠ±Π»Π°ΠΊΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² Azure).
OKD β ΡΡΠΎ Π²ΡΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ OpenShift Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎΠΌ. OKD ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π² ΠΠ‘ CentOS ΠΈΠ»ΠΈ Red Hat Enterprise Linux (RHEL).
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ OpenShift (ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ)
ΠΡΡΡΠΏΠ»Π΅Π½ΠΈΠ΅
/app-root/data). Π Π°Π·Π½ΠΈΡΠ° Π² ΡΠΎΠΌ, ΡΡΠΎ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½Π°ΡΡΡΠΎΠ΅ΡΠ½ΡΠ΅ ΡΠΊΡΠΈΠΏΡΡ (action_hooks, ΡΠΌ. Π½ΠΈΠΆΠ΅) ΠΈ ΡΠ°ΠΉΠ»Ρ Π΄Π°Π½Π½ΡΡ , ΠΏΠ°ΡΡΠΈ, etc. ΠΠΎ Π½Π΅ ΡΠ°ΠΌΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ.
ΠΠΈΠ½ΠΈ-ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΈΠ»Π»ΡΡΡΡΠΈΡΡΠ΅Ρ ΡΡΠ΄ ΠΏΡΠΈΠ΅ΠΌΠΎΠ² ΡΠ°Π±ΠΎΡΡ Ρ OpenShift. Π Π°Π±ΠΎΡΠ° Ρ github.com, git Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎ Π½Π΅ ΡΠ°Π·Π±ΠΈΡΠ°Π΅ΡΡΡ, ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ, ΡΡΠΎ ΡΠΈΡΠ°ΡΠ΅Π»Ρ ΡΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅.
Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ «step-by-step», ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π½Π° ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅.
ΠΠ΅ΡΠ΅Π΄ Π½Π°ΡΠ°Π»ΠΎΠΌ
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π½Π° Π»ΡΠ±ΠΎΠΉ PaaS-Ρ ΠΎΡΡΠΈΠ½Π³(ΡΠΎΡ ΠΆΠ΅ Redhat Openshift) ΡΡΠ΅Π±ΡΠ΅Ρ, ΡΠΎΠ±Π»ΡΠ΄Π΅Π½ΠΈΡ Π΅Π³ΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΉ:
Π Π΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ: Π·Π΄Π΅ΡΡ
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΊΠ»ΠΈΠ΅Π½ΡΠ°: Π·Π΄Π΅ΡΡ (ΠΡ ΡΠΆΠ΅ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Ρ), ΡΠ°ΠΌ ΠΆΠ΅ ΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ, Π½ΠΎ Π½Π° Π²ΡΡ English
ΠΠ΅ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΉΡΠ΅ΡΡ ΠΎΠ± ΠΠ‘ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎΡΡΠΈ Π²Π΅Π·Π΄Π΅ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ. ΠΠ° ΠΈ ΠΠ°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠ°ΠΊ Π½ΠΈ ΠΊΡΡΡΠΈ ΠΏΠΎΠ΄ RHEL 6.7.
ΠΡΠ΅Π΄Π»ΠΎΠΆΠ°Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π΄ΠΎΠΌΠ΅Π½ (ΡΡΠΎ ΠΏΠΎΠ΄Π΄ΠΎΠΌΠ΅Π½ 3-Π³ΠΎ ΡΡΠΎΠ²Π½Ρ, Π²Π°ΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π±ΡΠ΄ΡΡ ΠΈΠΌΠ΅ΡΡ Π°Π΄ΡΠ΅Ρ http://myapp-mydom.rhcloud.com).
ΠΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Ρ ΡΠ°Π½ΡΡΡΡ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ Π²ΠΈΠ΄Π° OPENSHIFT_, ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊ.
ΠΡΠΈΡΡΡΠΏΠ°Π΅ΠΌ
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ SalesPlatform-6.4.0, ΡΠ°ΠΌΠΎΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΠΈΠΉΡΡ LAMP.
Π‘ΠΈΡΡΠ΅ΠΌΠ° CentOS 7.2 (Π½ΠΎ ΡΠ°Π·Π½ΠΈΡΠ° Π² Π΄Π΅ΡΠ°Π»ΡΡ ).
ΠΌΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ example, ΠΠ°ΡΠ΅ β Π½Π° ΠΠ°ΡΠ΅ ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΠ΅. (Π ΠΈΠΌΠ΅Π½ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π»Π°ΡΠΈΠ½ΡΠΊΠΈΠ΅ Π±ΡΠΊΠ²Ρ ΠΈ ΡΠΈΡΡΡ).
ΠΌΠΎΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π½Π° github.com https://github.com/zirf0/example, ΠΏΠΎΠ΄ΡΠΌΠ°ΡΡΠΈΠ²Π°ΠΉΡΠ΅, Π΅ΡΠ»ΠΈ ΡΡΠΎ.
Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ «Π·Π°Π³Π»ΡΡΠΊΡ» ΠΈ ΠΊΠ»ΠΎΠ½ΠΈΡΡΠ΅ΠΌ Π΅Π΅ Π² ΡΠ²ΠΎΠΉ Π΄ΠΎΠΌΠ°ΡΠ½ΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³.
$rhc app create example php-5.3 mysql-5.5
$cd example
Π‘ΡΡΠΎΠ³ΠΎ Π³ΠΎΠ²ΠΎΡΡ Π½Π°Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΡΡ action_hooks. ΠΡΠΎ Π½Π°Π±ΠΎΡ ΡΠΊΡΠΈΠΏΡΠΎΠ² Π΄Π»Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ΅Π»Π΅ΠΉ, Π½ΠΎ Π΄Π»Ρ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠΎΠ»ΡΠΊΠΎ build ΠΈ deploy, Π²ΠΎΠΎΠ±ΡΠ΅ ΠΈΠΌΠ΅Π½Π° ΡΠΊΡΠΈΠΏΡΠΎΠ² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΠΎΠΌΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ. ΠΡΠ΄Π΅ΠΌ ΡΠ΅ΡΠ°ΡΡ ΠΏΡΠΎΡΡΠ΅Π½ΡΠΊΡΡ Π·Π°Π΄Π°ΡΡ:
ΠΡΠΊΠ°ΡΠ°ΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΈ Π½Π° PaaS-Ρ ΠΎΡΡΠΈΠ½Π³.
ΠΠ½Π΅ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ (ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π‘Π£ΠΠ Π½Π° Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ OpenShift).
/.ssh/id_rsa.pub. ΠΠΎΠ±Π°Π²ΡΡΠ΅ Π΅Π³ΠΎ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π½Π° github.com.
ΠΠ°Π»ΠΈΠ²Π°Π΅ΠΌ Π½Π°ΡΠΈ ΡΡΡΠ΄Ρ Π½Π° github.com
$git push upstream master
Π Π°Π·Π²Π΅ΡΡΡΠ²Π°Π΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° PaaS Openshift:
$git push
Π§ΡΠΎ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎ $git push origin master.
ΠΡΠ΅, ΡΠ΅ΡΠ΅Π· web Π΄ΠΎΠ»ΠΆΠ½Π° Π·Π°ΠΏΡΡΡΠΈΡΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ°.
ΠΡΠΎΡΡΠΈ, OpenShift, ΠΌΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ΅Π½ΠΈΠ»ΠΈ ΡΠ΅Π±Ρ ΠΈ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π»ΠΈ ΠΊΠ°ΠΊ Π΄ΠΎΠ»ΠΆΠ½ΠΎΠ΅
ΠΡΠΎΡ ΠΏΠΎΡΡ Π½Π°ΠΏΠΈΡΠ°Π½ ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Ρ Π½Π°ΡΠΈΡ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΎΠ² Π±ΡΠ»ΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π³ΠΎΠ²ΠΎΡΠΎΠ² Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌΠΈ ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Kubernetes ΠΈ ΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ΅ ΡΠ°ΠΊΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π° OpenShift.
ΠΠ°ΡΠΈΠ½Π°Π΅ΠΌ ΠΌΡ ΠΎΠ±ΡΡΠ½ΠΎ Ρ ΡΠ΅Π·ΠΈΡΠ°, ΡΡΠΎ Kubernetes β ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ Kubernetes, Π° OpenShift β ΡΡΠΎ ΡΠΆΠ΅ Kubernetes-ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°, ΠΊΠ°ΠΊ Microsoft AKS ΠΈΠ»ΠΈ Amazon EKS. Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΡΡΠΈΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌ Π΅ΡΡΡ ΡΠ²ΠΎΠΈ ΠΏΠ»ΡΡΡ, ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π½Π° ΡΡ ΠΈΠ»ΠΈ ΠΈΠ½ΡΡ ΡΠ΅Π»Π΅Π²ΡΡ Π°ΡΠ΄ΠΈΡΠΎΡΠΈΡ. Π ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΡΠ°Π·Π³ΠΎΠ²ΠΎΡ ΡΠΆΠ΅ ΠΏΠ΅ΡΠ΅ΡΠ΅ΠΊΠ°Π΅Ρ Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΡΠΈΠ»ΡΠ½ΡΡ ΠΈ ΡΠ»Π°Π±ΡΡ ΡΡΠΎΡΠΎΠ½ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌ.
Π ΠΎΠ±ΡΠ΅ΠΌ, ΠΌΡ Π΄ΡΠΌΠ°Π»ΠΈ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΡΠΎΡ ΠΏΠΎΡΡ Ρ Π²ΡΠ²ΠΎΠ΄ΠΎΠΌ ΡΠΈΠΏΠ° Β«Π‘Π»ΡΡΠ°ΠΉΡΠ΅, Π΄Π° Π±Π΅Π· ΡΠ°Π·Π½ΠΈΡΡ, Π³Π΄Π΅ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΊΠΎΠ΄, Π½Π° OpenShift ΠΈΠ»ΠΈ Π½Π° AKS, Π½Π° EKS, Π½Π° ΠΊΠ°ΠΊΠΎΠΌ-ΡΠΎ ΠΊΠ°ΡΡΠΎΠΌΠ½ΠΎΠΌ Kubernetes, Π΄Π° Π½Π° ΠΊΠ°ΠΊΠΎΠΌ-ΡΠ³ΠΎΠ΄Π½ΠΎ-Kubernetes (Π΄Π»Ρ ΠΊΡΠ°ΡΠΊΠΎΡΡΠΈ Π½Π°Π·ΠΎΠ²Π΅ΠΌ Π΅Π³ΠΎ ΠΠ£Π) β ΡΡΠΎ ΡΠ΅Π°Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ, ΠΈ ΡΠ°ΠΌ, ΠΈ ΡΠ°ΠΌΒ».
ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π»ΠΈ Π²Π·ΡΡΡ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠΈΠΉ Β«Hello WorldΒ» ΠΈ Π½Π° Π΅Π³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΠΎΠ±ΡΠ΅Π³ΠΎ ΠΈ Π² ΡΠ΅ΠΌ ΡΠ°Π·Π»ΠΈΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΠ£Π ΠΈ Red Hat OpenShift Container Platform (Π΄Π°Π»Π΅Π΅, OCP ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ OpenShift).
ΠΠ΄Π½Π°ΠΊΠΎ ΠΏΠΎ Ρ ΠΎΠ΄Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ°, ΠΌΡ ΠΏΠΎΠ½ΡΠ»ΠΈ, ΡΡΠΎ ΡΠ°ΠΊ Π΄Π°Π²Π½ΠΎ ΠΈ ΡΠΈΠ»ΡΠ½ΠΎ ΠΏΡΠΈΠ²ΡΠΊΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ OpenShift, ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ Π½Π΅ ΠΎΡΠΎΠ·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½ Π²ΡΡΠΎΡ ΠΈ ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΠ»ΡΡ Π² ΠΏΠΎΡΡΡΡΠ°ΡΡΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΡΠ°Π»Π° Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎ Kubernetes-Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ². ΠΡ ΠΏΡΠΈΠ²ΡΠΊΠ»ΠΈ Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π·ΡΠ΅Π»ΠΎΡΡΡ ΠΈ ΠΏΡΠΎΡΡΠΎΡΡ OpenShift ΠΊΠ°ΠΊ Π΄ΠΎΠ»ΠΆΠ½ΠΎΠ΅, ΡΠΏΡΡΠΊΠ°Ρ ΠΈΠ· Π²ΠΈΠ΄Ρ Π΅Π³ΠΎ Π²Π΅Π»ΠΈΠΊΠΎΠ»Π΅ΠΏΠΈΠ΅.
Π ΠΎΠ±ΡΠ΅ΠΌ, ΠΏΡΠΈΡΠ»Π° ΠΏΠΎΡΠ° Π΄Π΅ΡΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΡΠΊΠ°ΡΠ½ΠΈΡ, ΠΈ ΡΠ΅ΠΉΡΠ°Ρ ΠΌΡ ΠΏΠΎΡΠ°Π³ΠΎΠ²ΠΎ ΡΡΠ°Π²Π½ΠΈΠΌ Π²Π²ΠΎΠ΄ Π² ΡΡΡΠΎΠΉ ΡΠ²ΠΎΠ΅Π³ΠΎ Β«Hello WorldΒ» Π½Π° ΠΠ£Π ΠΈ Π½Π° OpenShift, ΠΈ ΡΠ΄Π΅Π»Π°Π΅ΠΌ ΡΡΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ (Π½Ρ ΡΠ°Π·Π²Π΅ ΡΡΠΎ Π²ΡΠΊΠ°Π·ΡΠ²Π°Ρ ΠΈΠ½ΠΎΠ³Π΄Π° Π»ΠΈΡΠ½ΠΎΠ΅ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ ΠΊ ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΡ). ΠΡΠ»ΠΈ Π²Π°ΠΌ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ ΡΡΠ³ΡΠ±ΠΎ ΡΡΠ±ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΠΌΠ½Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΡΠΎΠΌΡ Π²ΠΎΠΏΡΠΎΡΡ, ΡΠΎ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ Π·Π΄Π΅ΡΡ (EN). Π Π² ΡΡΠΎΠΌ ΠΏΠΎΡΡΠ΅ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΡΠ°ΠΊΡΠΎΠ² ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΊΡΠΎΠ².
ΠΠ»Π°ΡΡΠ΅ΡΡ
ΠΡΠ°ΠΊ, Π΄Π»Ρ Π½Π°ΡΠ΅Π³ΠΎ Β«Hello WorldΒ» Π½ΡΠΆΠ½Ρ ΠΊΠ»Π°ΡΡΠ΅ΡΡ. Π‘ΡΠ°Π·Ρ ΡΠΊΠ°ΠΆΠ΅ΠΌ Β«Π½Π΅ΡΒ» Π²ΡΡΠΊΠΈΠΌ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΌ ΠΎΠ±Π»Π°ΠΊΠ°ΠΌ, ΡΡΠΎΠ±Ρ Π½Π΅ ΠΏΠ»Π°ΡΠΈΡΡ Π·Π° ΡΠ΅ΡΠ²Π΅ΡΠ°, ΡΠ΅Π΅ΡΡΡΡ, ΡΠ΅ΡΠΈ, ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π΄Π°Π½Π½ΡΡ ΠΈ Ρ.Π΄. Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, ΠΌΡ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΠΏΡΠΎΡΡΠΎΠΉ ΠΎΠ΄Π½ΠΎΡΠ·Π»ΠΎΠ²ΠΎΠΉ ΠΊΠ»Π°ΡΡΠ΅Ρ Π½Π° Minikube (Π΄Π»Ρ ΠΠ£Π) ΠΈ Code Ready Containers (Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° OpenShift). ΠΠ±Π° ΡΡΠΈΡ Π²Π°ΡΠΈΠ°Π½ΡΠ° ΡΠ΅Π°Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΡ Π² ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅, Π½ΠΎ ΠΏΠΎΡΡΠ΅Π±ΡΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΡΡΠΎΠ² Π½Π° Π²Π°ΡΠ΅ΠΌ Π½ΠΎΡΡΠ΅.
Π‘Π±ΠΎΡΠΊΠ° Π½Π° ΠΠ£Π-Π΅
Π¨Π°Π³ 1 β ΡΠΎΠ±ΠΈΡΠ°Π΅ΠΌ Π½Π°Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΡΠΉ ΠΎΠ±ΡΠ°Π·
ΠΠ°ΡΠ½Π΅ΠΌ Ρ Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΠ°Π·Π²Π΅ΡΠ½Π΅ΠΌ Π½Π°Ρ Β«Hello WorldΒ» Π½Π° minikube. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ:
Π‘Π°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠΎΠ±ΡΠ°ΡΡ Π½Π°Ρ Β«Hello WorldΒ» Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΡΠΉ ΠΎΠ±ΡΠ°Π· β ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ quarkus-maven Π΄Π»Ρ DockerβΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈ ΠΏΡΠΎΠ΄Π΅Π»Π°ΡΡ Π²ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ ΡΠ°Π±ΠΎΡΡ. Π‘ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ Quarkus ΡΡΠΎ ΡΡΠ°Π»ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΈ ΠΏΡΠΎΡΡΠΎ: Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ container-image-docker ΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΎΠ±ΡΠ°Π·Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ maven.
Π, Π½Π°ΠΊΠΎΠ½Π΅Ρ, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΡΠ±ΠΎΡΠΊΡ Π½Π°ΡΠ΅Π³ΠΎ ΠΎΠ±ΡΠ°Π·Π°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Maven. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π½Π°Ρ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΏΡΠ΅Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π² Π³ΠΎΡΠΎΠ²ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΡΠΉ ΠΎΠ±ΡΠ°Π·, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π² ΡΡΠ΅Π΄Π΅ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ².
ΠΠΎΡ, ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ, ΠΈ Π²ΡΡ, ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ docker run, ΠΏΠΎΠ΄ΠΌΠ°ΠΏΠΈΠ² Π½Π°Ρ ΡΠ΅ΡΠ²ΠΈΡ Π½Π° ΠΏΠΎΡΡ 8080, ΡΡΠΎΠ±Ρ ΠΊ Π½Π΅ΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ.
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΡΠΉ ΠΈΠ½ΡΡΠ°Π½Ρ Π·Π°ΠΏΡΡΡΠΈΠ»ΡΡ, ΠΎΡΡΠ°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ curl, ΡΡΠΎ Π½Π°Ρ ΡΠ΅ΡΠ²ΠΈΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ:
ΠΡΠ°ΠΊ, Π²ΡΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΠΈ ΡΡΠΎ Π±ΡΠ»ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΈ ΠΏΡΠΎΡΡΠΎ.
Π¨Π°Π³ 2 β ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌ Π½Π°Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΡΡ ΠΎΠ±ΡΠ°Π·ΠΎΠ²
ΠΠΎΠΊΠ° ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ Π½Π°ΠΌΠΈ ΠΎΠ±ΡΠ°Π· Ρ ΡΠ°Π½ΠΈΡΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ, Π² Π½Π°ΡΠ΅ΠΌ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΠΎΠΌ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅. ΠΡΠ»ΠΈ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΠΎΠ±ΡΠ°Π· Π² ΡΠ²ΠΎΠ΅ΠΉ ΡΡΠ΅Π΄Π΅ ΠΠ£Π, ΡΠΎ Π΅Π³ΠΎ Π½Π°Π΄ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΡ Π² ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ Π΄ΡΡΠ³ΠΎΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ. Π Kubernetes Π½Π΅Ρ ΡΠ°ΠΊΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ dockerhub. ΠΠΎΡΠΎΠΌΡ ΡΡΠΎ, Π²ΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , ΠΎΠ½ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ, Π° Π²ΠΎ-Π²ΡΠΎΡΡΡ , (ΠΏΠΎΡΡΠΈ) Π²ΡΠ΅ ΡΠ°ΠΊ Π΄Π΅Π»Π°ΡΡ.
ΠΡΠΎ ΡΠΎΠΆΠ΅ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎ, ΠΈ Π½ΡΠΆΠ΅Π½ Π·Π΄Π΅ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π°ΠΊΠΊΠ°ΡΠ½Ρ Π½Π° dockerhub.
ΠΡΠ°ΠΊ, ΡΡΠ°Π²ΠΈΠΌ dockerhub ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌ ΡΡΠ΄Π° Π½Π°Ρ ΠΎΠ±ΡΠ°Π·.
Π¨Π°Π³ 3 β Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ Kubernetes
ΠΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΠΎΠ±ΡΠ°ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ kubernetes Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° Π½Π°ΡΠ΅Π³ΠΎ Β«Hello WorldΒ», Π½ΠΎ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π°ΠΈΠΏΡΠΎΡΡΠ΅ΠΉΡΠΈΠΉ ΠΈΠ· Π½ΠΈΡ , ΡΠΆ ΡΠ°ΠΊΠΈΠ΅ ΠΌΡ Π»ΡΠ΄ΠΈβ¦
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΠΊΠ»Π°ΡΡΠ΅Ρ minikube:
Π¨Π°Π³ 4 β ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π΅ΠΌ Π½Π°Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΡΠΉ ΠΎΠ±ΡΠ°Π·
Π’Π΅ΠΏΠ΅ΡΡ Π½Π°Π΄ΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ Π½Π°Ρ ΠΊΠΎΠ΄ ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΡΠΉ ΠΎΠ±ΡΠ°Π· Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ kubernetes. ΠΠ½Π°ΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ, Π½Π°ΠΌ Π½ΡΠΆΠ΅Π½ pod ΠΈ deployment definition Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Π½Π° Π½Π°Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΡΠΉ ΠΎΠ±ΡΠ°Π· Π½Π° dockerhub. ΠΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ°ΠΌΡΡ ΠΏΡΠΎΡΡΡΡ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ β Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ create deployment, ΡΠΊΠ°Π·Π°Π² Π½Π° Π½Π°Ρ ΠΎΠ±ΡΠ°Π·:
ΠΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΌΡ ΡΠΊΠ°Π·Π°Π»ΠΈ Π½Π°ΡΠ΅ΠΉ ΠΠ£Π ΡΠΎΠ·Π΄Π°ΡΡ deployment configuration, ΠΊΠΎΡΠΎΡΠ°Ρ Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ podβΠ° Π΄Π»Ρ Π½Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°Π·Π°. ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡ ΡΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΊ Π½Π°ΡΠ΅ΠΌΡ ΠΊΠ»Π°ΡΡΠ΅ΡΡ minikube, ΠΈ ΡΠΎΠ·Π΄Π°ΡΡ deployment, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΊΠ°ΡΠ°Π΅Ρ Π½Π°Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΡΠΉ ΠΎΠ±ΡΠ°Π· ΠΈ Π·Π°ΠΏΡΡΡΠΈΡ pod Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅.
Π¨Π°Π³ 5 β ΠΎΡΠΊΡΡΠ²Π°Π΅ΠΌ Π΄ΠΎΡΡΡΠΏ ΠΊ Π½Π°ΡΠ΅ΠΌΡ ΡΠ΅ΡΠ²ΠΈΡΡ
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° Ρ Π½Π°Ρ Π΅ΡΡΡ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΡΠΉ ΠΎΠ±ΡΠ°Π·, ΠΏΠΎΡΠ° ΠΏΠΎΠ΄ΡΠΌΠ°ΡΡ, ΠΊΠ°ΠΊ ΡΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°ΡΡ Π²Π½Π΅ΡΠ½ΠΈΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΡΠΎΠΌΡ Restful-ΡΠ΅ΡΠ²ΠΈΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ, ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ, ΠΈ Π·Π°ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ Π² Π½Π°ΡΠ΅ΠΌ ΠΊΠΎΠ΄Π΅.
Π’ΡΡ Π΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ expose, ΡΡΠΎΠ±Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ Kubernetes-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ services ΠΈ endpoints. Π‘ΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ, ΡΠ°ΠΊ ΠΌΡ ΠΈ ΡΠ΄Π΅Π»Π°Π΅ΠΌ, Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ expose Π΄Π»Ρ Π½Π°ΡΠ΅Π³ΠΎ deployment-ΠΎΠ±ΡΠ΅ΠΊΡΠ°:
ΠΠ°Π²Π°ΠΉΡΠ΅ Π½Π° ΠΌΠΈΠ½ΡΡΠΊΡ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΠΌΡΡ Π½Π° ΠΎΠΏΡΠΈΠΈ Β« β typeΒ» ΠΊΠΎΠΌΠ°Π½Π΄Ρ expose.
ΠΠΎΠ³Π΄Π° ΠΌΡ Π΄Π΅Π»Π°Π΅ΠΌ expose ΠΈ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° Π½Π°ΡΠ΅Π³ΠΎ ΡΠ΅ΡΠ²ΠΈΡΠ°, Π½Π°ΠΌ, ΡΡΠ΅Π΄ΠΈ ΠΏΡΠΎΡΠ΅Π³ΠΎ, Π½Π°Π΄ΠΎ, ΡΡΠΎΠ±Ρ ΡΠ½Π°ΡΡΠΆΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ ΡΠ»ΡΠΆΠ±Π΅ hello-quarkus, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΈΠ΄ΠΈΡ Π²Π½ΡΡΡΠΈ Π½Π°ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎ-ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΠΎΠΉ ΡΠ΅ΡΠΈ. Π ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ type ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΌ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΡΠ°ΠΊΠΈΠ΅ Π²Π΅ΡΠΈ, ΠΊΠ°ΠΊ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊΠΈ Π½Π°Π³ΡΡΠ·ΠΊΠΈ, ΡΡΠΎΠ±Ρ ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠ°ΡΠΈΠΊ Π² ΡΡΡ ΡΠ΅ΡΡ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΎΠΏΠΈΡΠ°Π² type=LoadBalancer, ΠΌΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΠΌ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊ Π½Π°Π³ΡΡΠ·ΠΊΠΈ Π² ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎΠΌ ΠΎΠ±Π»Π°ΠΊΠ΅, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΊ Π½Π°ΡΠ΅ΠΌΡ ΠΊΠ»Π°ΡΡΠ΅ΡΡ Kubernetes. ΠΡΠΎ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, Π·Π°ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ, Π½ΠΎ Π½Π°Π΄ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΡΡΠΎ ΡΠ°ΠΊΠ°Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΆΠ΅ΡΡΠΊΠΎ ΠΏΡΠΈΠ²ΡΠ·Π°Π½Π° ΠΊ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌΡ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎΠΌΡ ΠΎΠ±Π»Π°ΠΊΡ ΠΈ Π΅Π΅ Π±ΡΠ΄Π΅Ρ ΡΠ»ΠΎΠΆΠ½Π΅Π΅ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Kubernetes-ΠΈΠ½ΡΡΠ°Π½ΡΠ°ΠΌ Π² ΡΠ°Π·Π½ΡΡ ΡΡΠ΅Π΄Π°Ρ .
Π Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ type=NodePort, ΡΠΎ Π΅ΡΡΡ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ Π½Π°ΡΠ΅ΠΌΡ ΡΠ΅ΡΠ²ΠΈΡΡ ΠΈΠ΄Π΅Ρ ΠΏΠΎ IP-Π°Π΄ΡΠ΅ΡΡ ΡΠ·Π»Π° ΠΈ Π½ΠΎΠΌΠ΅ΡΡ ΠΏΠΎΡΡΠ°. Π’Π°ΠΊΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠ΅ ΠΎΠ±Π»Π°ΠΊΠ°, Π½ΠΎ ΡΡΠ΅Π±ΡΠ΅Ρ ΡΡΠ΄ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ°Π³ΠΎΠ². ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , Π½ΡΠΆΠ΅Π½ ΡΠ²ΠΎΠΉ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊ Π½Π°Π³ΡΡΠ·ΠΊΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ ΡΠ°Π·Π²Π΅ΡΠ½Π΅ΠΌ Π² ΡΠ²ΠΎΠ΅ΠΌ ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΡΠΈΠΊ Π½Π°Π³ΡΡΠ·ΠΊΠΈ NGINX.
Π¨Π°Π³ 6 β ΡΡΠ°Π²ΠΈΠΌ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊ Π½Π°Π³ΡΡΠ·ΠΊΠΈ
Π£ minikube Π΅ΡΡΡ ΡΡΠ΄ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΎΠ±Π»Π΅Π³ΡΠ°ΡΡΠΈΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΈΠ·Π²Π½Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², Π²ΡΠΎΠ΄Π΅ ingress-ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ². Minikube ΠΈΠ΄Π΅Ρ Π² ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ΅ Ρ ingress-ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠΌ Nginx, ΠΈ Π½Π°ΠΌ ΠΎΡΡΠ°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π²ΠΊΠ»ΡΡΠΈΡΡ Π΅Π³ΠΎ ΠΈ Π½Π°ΡΡΡΠΎΠΈΡΡ.
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ Π²ΡΠ΅Π³ΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ΡΠΎΠ·Π΄Π°ΠΌ ingress-ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Nginx, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π²Π½ΡΡΡΠΈ Π½Π°ΡΠ΅Π³ΠΎ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° minikube:
Π¨Π°Π³ 7 β ΠΠ°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌ ingress
Π’Π΅ΠΏΠ΅ΡΡ Π½Π°ΠΌ Π½Π°Π΄ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ ingress-ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Nginx, ΡΡΠΎΠ±Ρ ΠΎΠ½ Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°Π» Π·Π°ΠΏΡΠΎΡΡ hello-quarkus.
Π, Π½Π°ΠΊΠΎΠ½Π΅Ρ, Π½Π°ΠΌ Π½Π°Π΄ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΡΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ.
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΡ Π΄Π΅Π»Π°Π΅ΠΌ Π²ΡΠ΅ ΡΡΠΎ Π½Π° ΡΠ²ΠΎΠ΅ΠΌ ΠΊΠΎΠΌΠΏΠ΅, ΡΠΎ ΠΏΡΠΎΡΡΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ IP-Π°Π΄ΡΠ΅Ρ ΡΠ²ΠΎΠ΅ΠΉ Π½ΠΎΠ΄Ρ Π² ΡΠ°ΠΉΠ» /etc/ hosts, ΡΡΠΎΠ±Ρ Π½Π°ΠΏΡΠ°Π²Π»ΡΡΡ http-Π·Π°ΠΏΡΠΎΡΡ ΠΊ Π½Π°ΡΠ΅ΠΌΡ minikube Π½Π° Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊ Π½Π°Π³ΡΡΠ·ΠΊΠΈ NGINX.
ΠΡΡ, ΡΠ΅ΠΏΠ΅ΡΡ Π½Π°Ρ ΡΠ΅ΡΠ²ΠΈΡ minikube Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΡΠ½Π°ΡΡΠΆΠΈ ΡΠ΅ΡΠ΅Π· ingress-ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Nginx.
ΠΡ ΡΡΠΎ, ΡΡΠΎ ΠΆΠ΅ Π±ΡΠ»ΠΎ Π»Π΅Π³ΠΊΠΎ, Π΄Π°? ΠΠ»ΠΈ Π½Π΅ ΠΎΡΠ΅Π½Ρ?
ΠΠ°ΠΏΡΡΠΊ Π½Π° OpenShift (Code Ready Containers)
Π ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΡΡΠΎ Π²ΡΠ΅ Π΄Π΅Π»Π°Π΅ΡΡΡ Π½Π° Red Hat OpenShift Container Platform (OCP).
ΠΠ°ΠΊ Π² ΡΠ»ΡΡΠ°Π΅ Ρ minikube, ΠΌΡ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΡΡ Π΅ΠΌΡ Ρ ΠΎΠ΄Π½ΠΎΡΠ·Π»ΠΎΠ²ΡΠΌ ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΠΌ OpenShift Π² ΡΠΎΡΠΌΠ΅ Code Ready Containers (CRC). Π Π°Π½ΡΡΠ΅ ΡΡΠΎ Π½Π°Π·ΡΠ²Π°Π»ΠΎΡΡ minishift ΠΈ Π±Π°Π·ΠΈΡΠΎΠ²Π°Π»ΠΎΡΡ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ΅ OpenShift Origin, Π° ΡΠ΅ΠΏΠ΅ΡΡ ΡΡΠΎ CRC ΠΈ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΎ Π½Π° Red HatβΠΎΠ²ΡΠΊΠΎΠΉ OpenShift Container Platform.
ΠΠ΄Π΅ΡΡ ΠΌΡ, ΠΈΠ·Π²ΠΈΠ½ΠΈΡΠ΅, Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π΅ΡΠΆΠ°ΡΡΡΡ ΠΈ Π½Π΅ ΡΠΊΠ°Π·Π°ΡΡ: Β«OpenShift ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½!Β»
ΠΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΠΌΡ Π΄ΡΠΌΠ°Π»ΠΈ Π½Π°ΠΏΠΈΡΠ°ΡΡ, ΡΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° OpenShift Π½ΠΈΡΠ΅ΠΌ Π½Π΅ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π° Kubernetes. Π ΠΏΠΎ ΡΡΡΠΈ ΡΠ°ΠΊ ΠΎΠ½ΠΎ ΠΈ Π΅ΡΡΡ. ΠΠΎ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ° ΠΌΡ Π²ΡΠΏΠΎΠΌΠ½ΠΈΠ»ΠΈ, ΡΠΊΠΎΠ»ΡΠΊΠΎ Π»ΠΈΡΠ½ΠΈΡ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΉ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΡΠΎΠ²Π΅ΡΡΠ°ΡΡ, ΠΊΠΎΠ³Π΄Π° Ρ Π²Π°Ρ Π½Π΅Ρ OpenShift, ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ½, ΠΏΠΎΠ²ΡΠΎΡΠΈΠΌΡΡ, ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½. ΠΡ Π»ΡΠ±ΠΈΠΌ, ΠΊΠΎΠ³Π΄Π° Π²ΡΡ Π΄Π΅Π»Π°Π΅ΡΡΡ Π»Π΅Π³ΠΊΠΎ, ΠΈ ΡΠΎ, ΠΊΠ°ΠΊ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ minikube Π½Π°Ρ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π΅ΡΡΡ ΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π½Π° OpenShift, ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ, ΠΈ ΠΏΠΎΠ΄Π²ΠΈΠ³Π»ΠΎ Π½Π°Ρ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΡΠΎΡ ΠΏΠΎΡΡ.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΡΠΎΠ±Π΅ΠΆΠΈΠΌΡΡ ΠΏΠΎ ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΡΡΠΎ Π½Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠ΄Π΅Π»Π°ΡΡ.
ΠΡΠ°ΠΊ, Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Ρ minikube ΠΌΡ Π½Π°ΡΠΈΠ½Π°Π»ΠΈ Ρ Dockerβ¦ Π‘ΡΠΎΠΏ, Π½Π°ΠΌ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π½Π°Π΄ΠΎ, ΡΡΠΎΠ±Ρ Π½Π° ΠΌΠ°ΡΠΈΠ½Π΅ Π±ΡΠ» ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Docker.
Π Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ git Π½Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ΅Π½.
Π Maven Π½Π΅ Π½ΡΠΆΠ΅Π½.
Π Π½Π΅ Π½Π°Π΄ΠΎ ΡΡΠΊΠ°ΠΌΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΡΠΉ ΠΎΠ±ΡΠ°Π·.
Π Π½Π΅ Π½Π°Π΄ΠΎ ΠΈΡΠΊΠ°ΡΡ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡΠ΄Ρ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΡΡ
ΠΎΠ±ΡΠ°Π·ΠΎΠ².
Π Π½Π΅ Π½Π°Π΄ΠΎ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ingress-ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ.
Π ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°ΡΡ ingress ΡΠΎΠΆΠ΅ Π½Π΅ Π½Π°Π΄ΠΎ.
ΠΡ ΠΏΠΎΠ½ΡΠ»ΠΈ, Π΄Π°? Π§ΡΠΎΠ±Ρ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ Π½Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° OpenShift, Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π½ΠΈΡΠ΅Π³ΠΎ ΠΈΠ· Π²ΡΡΠ΅ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΠΎΠ³ΠΎ. Π ΡΠ°ΠΌ ΠΏΡΠΎΡΠ΅ΡΡ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ.
Π¨Π°Π³ 1 β ΠΠ°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΡΠ²ΠΎΠΉ ΠΊΠ»Π°ΡΡΠ΅Ρ OpenShift
ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Code Ready Containers ΠΎΡ Red Hat, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎ ΡΡΡΠΈ Π΅ΡΡΡ ΡΠΎΡ ΠΆΠ΅ Minikube, Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΡΠΌ ΠΎΠ΄Π½ΠΎΡΠ·Π»ΠΎΠ²ΡΠΌ ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΠΌ Openshift.
Π¨Π°Π³ 2 β ΠΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΡΠ±ΠΎΡΠΊΡ ΠΈ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅ OpenShift
ΠΠΌΠ΅Π½Π½ΠΎ Π½Π° ΡΡΠΎΠΌ ΡΠ°Π³Π΅ ΠΏΡΠΎΡΡΠΎΡΠ° ΠΈ ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎ OpenShift ΠΏΡΠΎΡΠ²Π»ΡΡΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΉ ΠΊΡΠ°ΡΠ΅. ΠΠ°ΠΊ ΠΈ Π²ΠΎ Π²ΡΠ΅Ρ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π°Ρ Kubernetes, Ρ Π½Π°Ρ Π΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅. Π, ΠΊΠ°ΠΊ ΠΈ Π² ΡΠ»ΡΡΠ°Π΅ ΠΠ£Π, ΠΌΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΡΠ°ΠΌΡΠΉ Π½Π°ΠΈΠΏΡΠΎΡΡΠ΅ΠΉΡΠΈΠΉ.
OpenShift Π²ΡΠ΅Π³Π΄Π° ΡΡΡΠΎΠΈΠ»ΡΡ ΠΊΠ°ΠΊ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈ Π·Π°ΠΏΡΡΠΊΠ° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π‘Π±ΠΎΡΠΊΠ° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ»Π° Π½Π΅ΠΎΡΡΠ΅ΠΌΠ»Π΅ΠΌΠΎΠΉ ΡΠ°ΡΡΡΡ ΡΡΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π·Π΄Π΅ΡΡ Π΅ΡΡΡ ΠΊΡΡΠ° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ Kubernetes-ΡΠ΅ΡΡΡΡΠΎΠ² Π΄Π»Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ Π·Π°Π΄Π°Ρ.
ΠΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ OpenShift’ΠΎΠ²ΡΠΊΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡ Source 2 Image (S2I), Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π²Π·ΡΡΡ Π½Π°Ρ ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊ (ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ Π΄Π²ΠΎΠΈΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ) ΠΈ ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΡΡ Π΅Π³ΠΎ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΡΠΉ ΠΎΠ±ΡΠ°Π·, Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌΡΠΉ Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅ OpenShift.
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΡΡΡΡ Π΄Π²Π΅ Π²Π΅ΡΠΈ:
ΠΠ°ΠΏΡΡΡΠΈΡΡ S2I-ΡΠ±ΠΎΡΠΊΡ ΠΌΠΎΠΆΠ½ΠΎ, ΠΊΠ°ΠΊ ΠΈ ΠΈΠ· Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ OpenShift Developer, ΡΠ°ΠΊ ΠΈ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ. ΠΡ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ new-app, ΡΠΊΠ°Π·Π°Π² Π΅ΠΉ, Π³Π΄Π΅ Π±ΡΠ°ΡΡ builder-ΠΎΠ±ΡΠ°Π· ΠΈ Π½Π°Ρ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄.
ΠΡΡ, Π½Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΎ. ΠΡΠΈ ΡΡΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡ S2I Π²ΡΠΏΠΎΠ»Π½ΠΈΠ» ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π²Π΅ΡΠΈ:
ΠΡΠ»ΠΈ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ Π·Π°ΠΏΡΡΠΊ S2I Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ, ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ, ΠΊΠ°ΠΊ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΡΠ±ΠΎΡΠΊΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ build pod.
Π ΡΠ΅ΠΏΠ΅ΡΡ Π²Π·Π³Π»ΡΠ½Π΅ΠΌ Π»ΠΎΠ³ΠΈ builder podβΠ°: Π²ΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , ΡΠ°ΠΌ Π²ΠΈΠ΄Π½ΠΎ, ΠΊΠ°ΠΊ maven Π΄Π΅Π»Π°Π΅Ρ ΡΠ²ΠΎΡ ΡΠ°Π±ΠΎΡΡ ΠΈ ΡΠΊΠ°ΡΠΈΠ²Π°Π΅Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π΄Π»Ρ ΡΠ±ΠΎΡΠΊΠΈ Π½Π°ΡΠ΅Π³ΠΎ java-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π·Π°ΠΊΠΎΠ½ΡΠ΅Π½Π° maven-ΡΠ±ΠΎΡΠΊΠ°, Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΡΠ±ΠΎΡΠΊΠ° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°Π·Π°, ΠΈ Π·Π°ΡΠ΅ΠΌ ΡΡΠΎΡ ΡΠΎΠ±ΡΠ°Π½Π½ΡΠΉ ΠΎΠ±ΡΠ°Π· ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π²ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ.
ΠΡΡ, ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ±ΠΎΡΠΊΠΈ Π·Π°Π²Π΅ΡΡΠ΅Π½. Π’Π΅ΠΏΠ΅ΡΡ ΡΠ±Π΅Π΄ΠΈΠΌΡΡ, ΡΡΠΎ Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΠ»ΠΈΡΡ podβΡ ΠΈ ΡΠ΅ΡΠ²ΠΈΡΡ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠΎΡ ΠΈ Π²ΡΡ. Π Π²ΡΠ΅Π³ΠΎ ΠΎΠ΄Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°. ΠΠ°ΠΌ ΠΎΡΡΠ°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΄Π΅Π»Π°ΡΡ expose ΡΡΠΎΠ³ΠΎ ΡΠ΅ΡΠ²ΠΈΡΠ° Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΈΠ·Π²Π½Π΅.
Π¨Π°Π³ 3 β Π΄Π΅Π»Π°Π΅ΠΌ expose ΡΠ΅ΡΠ²ΠΈΡΠ° Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΈΠ·Π²Π½Π΅
ΠΠ°ΠΊ ΠΈ Π² ΡΠ»ΡΡΠ°Π΅ ΠΠ£Π, Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ OpenShift Π½Π°ΡΠ΅ΠΌΡ Β«Hello WorldΒ» ΡΠΎΠΆΠ΅ Π½ΡΠΆΠ΅Π½ ΡΠΎΡΡΠ΅Ρ, ΡΡΠΎΠ±Ρ Π½Π°ΠΏΡΠ°Π²Π»ΡΡΡ Π²Π½Π΅ΡΠ½ΠΈΠΉ ΡΡΠ°ΡΠΈΠΊ Π½Π° ΡΠ΅ΡΠ²ΠΈΡ Π²Π½ΡΡΡΠΈ ΠΊΠ»Π°ΡΡΠ΅ΡΠ°. Π OpenShift ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎ. ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΠΈ HAProxy (Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅Π½ΡΡΡ Π½Π° ΡΠΎΡ ΠΆΠ΅ NGINX). ΠΠΎ-Π²ΡΠΎΡΡΡ , Π·Π΄Π΅ΡΡ Π΅ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΈ Π΄ΠΎΠΏΡΡΠΊΠ°ΡΡΠΈΠ΅ ΡΠΈΡΠΎΠΊΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ΅ΡΡΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ Routes ΠΈ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡΡ Ingress-ΠΎΠ±ΡΠ΅ΠΊΡΡ Π² ΡΡΠ°ΡΠΎΠΌ Π΄ΠΎΠ±ΡΠΎΠΌ Kubernetes (Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ OpenShiftβΠΎΠ²ΠΊΠΈΠ΅ Routes ΡΠΈΠ»ΡΠ½ΠΎ ΠΏΠΎΠ²Π»ΠΈΡΠ»ΠΈ Π½Π° Π΄ΠΈΠ·Π°ΠΉΠ½ Ingress-ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈ Π² OpenShift), Π½ΠΎ Π΄Π»Ρ Π½Π°ΡΠ΅Π³ΠΎ Β«Hello WorldΒ», Π΄Π° ΠΈ ΠΏΠΎΡΡΠΈ Π²ΠΎ Π²ΡΠ΅Ρ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΡΠ»ΡΡΠ°ΡΡ , Π½Π°ΠΌ Ρ Π²Π°ΡΠΈΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ Route Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ.
Π§ΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π΄Π»Ρ Β«Hello WorldΒ» ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΡΠ΅ΠΌΡΠΉ FQDN (Π΄Π°, Π² OpenShiift Π΅ΡΡΡ ΡΠ²ΠΎΠΉ DNS Π΄Π»Ρ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎ ΠΈΠΌΠ΅Π½Π°ΠΌ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ²), ΠΌΡ ΠΏΡΠΎΡΡΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΠΌ expose Π΄Π»Ρ Π½Π°ΡΠ΅Π³ΠΎ ΡΠ΅ΡΠ²ΠΈΡΠ°:
ΠΡΠ»ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ Route, ΡΠΎ ΡΠ°ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ FQDN ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΏΠΎ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΠΈ:
Π Π½Π°ΠΊΠΎΠ½Π΅Ρ, ΠΎΠ±ΡΠ°ΡΠ°Π΅ΠΌΡΡ ΠΊ Π½Π°ΡΠ΅ΠΌΡ ΡΠ΅ΡΠ²ΠΈΡΡ ΠΈΠ· Π±ΡΠ°ΡΠ·Π΅ΡΠ°:
Π Π²ΠΎΡ ΡΠ΅ΠΏΠ΅ΡΡ ΡΡΠΎ Π±ΡΠ»ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ!
ΠΠ°Π΄Π΅Π΅ΠΌΡΡ, ΡΡΠΎ ΡΡΠ° ΡΡΠ°ΡΡΡΡ Π±ΡΠ»Π° Π΄Π»Ρ Π²Π°Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠΉ ΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ. Π Π½Π°ΠΉΡΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ΅ΡΡΡΡΡ, ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Ρ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ OpenShift Π²Π΅ΡΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π° ΠΏΠΎΡΡΠ°Π»Π΅ Red Hat Developers.
Azure Red Hat OpenShift
Π‘Π»ΡΠΆΠ±Π° Microsoft Azure Red Hat OpenShift ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°ΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΠ΅ ΠΊΠ»Π°ΡΡΠ΅ΡΡ OpenShift.
Azure Red Hat OpenShift ΡΠ°ΡΡΠΈΡΡΠ΅Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Kubernetes. ΠΠ»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² Π² ΡΠ°Π±ΠΎΡΠ΅ΠΉ ΡΡΠ΅Π΄Π΅ Ρ Kubernetes ΡΡΠ΅Π±ΡΡΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° ΠΈ ΡΠ΅ΡΡΡΡΡ. ΠΠ°ΡΠ°ΡΡΡΡ Π² ΠΈΡ ΡΠΈΡΠ»ΠΎ Π²Ρ ΠΎΠ΄ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅Π΅ΡΡΡΠΎΠ² ΠΎΠ±ΡΠ°Π·ΠΎΠ², ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ, ΡΠ΅ΡΠ΅Π²ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΡΠ΅Π΄ΡΡΠ² Π²Π΅Π΄Π΅Π½ΠΈΡ ΠΆΡΡΠ½Π°Π»Π° ΠΈ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π°, Π²ΡΠ΅ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠ΅ΡΡ ΡΠ²ΠΎΡ Π²Π΅ΡΡΠΈΡ ΠΈ Π±ΡΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½Ρ. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΡΡΠ΅Π±ΡΠ΅Ρ Π΄Π°ΠΆΠ΅ Π±ΠΎΠ»ΡΡΠ΅ΠΉ ΡΠ°Π±ΠΎΡΡ Π½Π°Π΄ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠ΅ΠΉ Ρ ΠΠ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠ»ΠΎΡ, ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΠΌΠΈ, Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ ΠΈ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ CI/CD. Π‘Π»ΡΠΆΠ±Π° Azure Red Hat OpenShift ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ Π²ΡΠ΅ ΡΡΠΎ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ, ΡΡΠΎ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΡ Π΄Π»Ρ ΠΠ’-ΠΎΡΠ΄Π΅Π»ΠΎΠ², ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡ ΠΎΡΠ΄Π΅Π»Π°ΠΌ ΠΏΠΎ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ Π·Π°Π΄Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠΌ Π½ΡΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ.
ΠΠΎΡΠΏΠΎΡΠ°ΡΠΈΡ ΠΠ°ΠΉΠΊΡΠΎΡΠΎΡΡ ΠΈ Red Hat ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π·Π°Π΄Π°ΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΠ»ΡΠΆΠ±Ρ Azure Red Hat OpenShift, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Ρ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ. ΠΠ° ΡΡΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ Π½Π΅Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½, ΠΊΠΎΡΠΎΡΡΠΌΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΏΡΠ°Π²Π»ΡΡΡ, ΠΈ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ. ΠΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅, ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΡΠ·Π»Π°, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ·Π»ΠΎΠ² ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΎΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Red Hat ΠΈ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ΅ΠΉ ΠΠ°ΠΉΠΊΡΠΎΡΠΎΡΡ. ΠΠ»Π°ΡΡΠ΅ΡΡ Azure Red Hat OpenShift ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°ΡΡΡΡ Π² ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΠ΅ Azure ΠΈ Π²ΠΊΠ»ΡΡΠ°ΡΡΡΡ Π² ΡΡΠ΅Ρ Azure.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ±ΡΠ°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠ΅Π΅ΡΡΡ, ΡΠ΅ΡΡ, Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ CI/CD ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΡ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ, ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΎΠ³ΠΎ. Π‘Π»ΡΠΆΠ±Π° Azure Red Hat OpenShift ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ Π²Ρ ΠΎΠ΄Π° ΡΠ΅ΡΠ΅Π· Azure Active Directory.
Π§ΡΠΎΠ±Ρ ΠΏΡΠΈΡΡΡΠΏΠΈΡΡ ΠΊ ΡΠ°Π±ΠΎΡΠ΅, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΈΠ· ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° ΠΏΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° Azure Red Hat OpenShift.
ΠΠΎΡΡΡΠΏ, Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ ΠΈ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³
ΠΠ»Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΈ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Azure Red Hat OpenShift ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ Azure Active Directory ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΡΡΡΠΏΠΎΠΌ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠΎΠ»Π΅ΠΉ Kubernetes (Kubernetes RBAC). Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° ΠΈ ΡΠ΅ΡΡΡΡΠΎΠ².
ΠΠ»Π°ΡΡΠ΅Ρ ΠΈ ΡΠ·Π΅Π»
Π£Π·Π»Ρ Azure Red Hat OpenShift Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π½Π° Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½Π°Ρ Azure. ΠΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΠΊ ΡΠ·Π»Π°ΠΌ ΠΈ pod ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΊΠ»Π°ΡΡΠ΅ΡΠ°.
Π‘ΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΡΡΠΎΠ²Π½Π΅ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ
Azure Red Hat OpenShift ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΡΡΠΎΠ²Π½Π΅ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ Ρ Π³Π°ΡΠ°Π½ΡΠΈΠ΅ΠΉ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΠΈ ΡΠ»ΡΠΆΠ±Ρ Π½Π° ΡΡΠΎΠ²Π½Π΅ 99,95 %. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠΈ ΠΎΠ± ΡΡΠΎΠ²Π½Π΅ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ Π΄Π»Ρ Azure Red Hat OpenShift ΡΠΌ. Π½Π° ΡΡΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅.
ΠΠ°Π»ΡΠ½Π΅ΠΉΡΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ
ΠΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΌΠΈ ΡΡΠ»ΠΎΠ²ΠΈΡΠΌΠΈ Π΄Π»Ρ Azure Red Hat OpenShift: