ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ – Π½Π° ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€: CRI-O Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² OpenShift Container Platform 4

ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Red Hat OpenShift Container Platform 4 позволяСт ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π½Π° ΠΏΠΎΡ‚ΠΎΠΊ созданиС хостов для развСртывания ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ², Π² Ρ‚ΠΎΠΌ числС Π² инфраструктурС поставщиков ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Ρ… сСрвисов, Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ… Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ Π² bare-metal систСмах. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π² ΠΏΠΎΠ»Π½ΠΎΠΌ смыслС ΠΎΠ±Π»Π°Ρ‡Π½ΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ, Π½Π°ΠΌ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ Π²Π·ΡΡ‚ΡŒ ΠΏΠΎΠ΄ ТСсткий ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ всС примСняСмыС элСмСнты ΠΈ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ слоТного процСсса Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ.

ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ – Π½Π° ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€: CRI-O Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² OpenShift Container Platform 4

ΠžΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ стало использованиС Π² качСствС стандарта Red Hat Enterprise Linux CoreOS (разновидности Red Hat Enterprise Linux) ΠΈ CRI-O, ΠΈ Π²ΠΎΡ‚ почСму…

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ‚Π΅ΠΌΠ° морСплавания являСтся вСсьма ΡƒΠ΄Π°Ρ‡Π½ΠΎΠΉ для поиска Π°Π½Π°Π»ΠΎΠ³ΠΈΠΉ ΠΏΡ€ΠΈ объяснСнии Ρ€Π°Π±ΠΎΡ‚Ρ‹ Kubernetes ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ², ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎ Ρ‚Π΅Ρ… бизнСс-ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π΅ΡˆΠ°ΡŽΡ‚ CoreOS ΠΈ CRI-O, Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ изобрСтСния Π‘Ρ€ΡŽΠ½Π΅Π»Ρ для производства Ρ‚Π°ΠΊΠ΅Π»Π°ΠΆΠ½Ρ‹Ρ… Π±Π»ΠΎΠΊΠΎΠ². Π’ 1803 Π³ΠΎΠ΄Ρƒ ΠΏΠ΅Ρ€Π΅Π΄ ΠœΠ°Ρ€ΠΊΠΎΠΌ Π‘Ρ€ΡŽΠ½Π΅Π»Π΅ΠΌ Π±Ρ‹Π»Π° поставлСна Π·Π°Π΄Π°Ρ‡Π° ΠΈΠ·Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒ 100 тысяч Ρ‚Π°ΠΊΠ΅Π»Π°ΠΆΠ½Ρ‹Ρ… Π±Π»ΠΎΠΊΠΎΠ² для Π½ΡƒΠΆΠ΄ растущСго морского Ρ„Π»ΠΎΡ‚Π° Π’Π΅Π»ΠΈΠΊΠΎΠ±Ρ€ΠΈΡ‚Π°Π½ΠΈΠΈ. Π’Π°ΠΊΠ΅Π»Π°ΠΆΠ½Ρ‹ΠΉ Π±Π»ΠΎΠΊ – Ρ‚ΠΈΠΏ оснастки, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для крСплСния ΠΊΠ°Π½Π°Ρ‚ΠΎΠ² ΠΊ парусам. Π’ΠΏΠ»ΠΎΡ‚ΡŒ Π΄ΠΎ самого Π½Π°Ρ‡Π°Π»Π° 19-Π³ΠΎ столСтия эти Π±Π»ΠΎΠΊΠΈ ΠΈΠ·Π³ΠΎΡ‚Π°Π²Π»ΠΈΠ²Π°Π»ΠΈΡΡŒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, Π½ΠΎ Π‘Ρ€ΡŽΠ½Π΅Π»ΡŽ ΡƒΠ΄Π°Π»ΠΎΡΡŒ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ производство ΠΈ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΈΠ·Π³ΠΎΡ‚Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ стандартизированныС Π±Π»ΠΎΠΊΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ станков. Автоматизация этого процСсса ΠΎΠ·Π½Π°Ρ‡Π°Π»Π°, Ρ‡Ρ‚ΠΎ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ всС Π±Π»ΠΎΠΊΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π»ΠΈΡΡŒ практичСски ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ, ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹Ρ‚ΡŒ с Π»Π΅Π³ΠΊΠΎΡΡ‚ΡŒΡŽ Π·Π°ΠΌΠ΅Π½Π΅Π½Ρ‹ Π² случаС ΠΏΠΎΠ»ΠΎΠΌΠΊΠΈ ΠΈ ΠΌΠΎΠ³Π»ΠΈ ΠΈΠ·Π³ΠΎΡ‚Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΡ… количСствах.

А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π‘Ρ€ΡŽΠ½Π΅Π»ΡŽ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ Π±Ρ‹ ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Ρ‚ΡŒ эту Ρ€Π°Π±ΠΎΡ‚Ρƒ для 20 Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ судов (вСрсий Kubernetes) ΠΈ для пяти Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΠ»Π°Π½Π΅Ρ‚ с ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ морскими тСчСниями ΠΈ Π²Π΅Ρ‚Ρ€Π°ΠΌΠΈ (ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Ρ‹). К Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎΡΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ всС ΠΊΠΎΡ€Π°Π±Π»ΠΈ (кластСры OpenShift), нСзависимо ΠΎΡ‚ ΠΏΠ»Π°Π½Π΅Ρ‚, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ осущСствляСтся навигация, с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния ΠΊΠ°ΠΏΠΈΡ‚Π°Π½ΠΎΠ² (ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ², ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ кластСров) Π²Π΅Π»ΠΈ сСбя ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ. ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ ΠΌΠΎΡ€ΡΠΊΡƒΡŽ аналогию, ΠΊΠ°ΠΏΠΈΡ‚Π°Π½Π°ΠΌ ΠΊΠΎΡ€Π°Π±Π»Π΅ΠΉ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ Π½Π΅ Π²Π°ΠΆΠ½ΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚Π°ΠΊΠ΅Π»Π°ΠΆΠ½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ (CRI-O) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π½Π° ΠΈΡ… кораблях – для Π½ΠΈΡ… Π³Π»Π°Π²Π½ΠΎΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ эти Π±Π»ΠΎΠΊΠΈ Π±Ρ‹Π»ΠΈ ΠΏΡ€ΠΎΡ‡Π½Ρ‹ΠΌΠΈ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΌΠΈ.

ΠŸΠ΅Ρ€Π΅Π΄ OpenShift 4, ΠΊΠ°ΠΊ ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ, стоит ΠΎΡ‡Π΅Π½ΡŒ похоТая бизнСс-Π·Π°Π΄Π°Ρ‡Π°. НовыС Π½ΠΎΠ΄Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒΡΡ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ создания кластСра, Π² случаС сбоя Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΡƒΠ·Π»ΠΎΠ², ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ кластСра. ΠŸΡ€ΠΈ создании ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡƒΠ·Π»Π° Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ соотвСтствСнно сконфигурированы ΠΈ критичСскиС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ хоста, Π² Ρ‚ΠΎΠΌ числС CRI-O. Как ΠΈ Π² любом Π΄Ρ€ΡƒΠ³ΠΎΠΌ производствС Π² Π½Π°Ρ‡Π°Π»Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄Π°Ρ‚ΡŒ Β«ΡΡ‹Ρ€ΡŒΠ΅Β». Π’ случаС ΠΊΠΎΡ€Π°Π±Π»Π΅ΠΉ Π² качСствС ΡΡ‹Ρ€ΡŒΡ Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°ΡŽΡ‚ ΠΌΠ΅Ρ‚Π°Π»Π» ΠΈ дрСвСсина. Однако Π² случаС создания хоста для развСртывания ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² Π² кластСрС OpenShift 4, Π½Π° Π²Ρ…ΠΎΠ΄Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΈ прСдоставляСмыС API сСрвСры. ПослС Ρ‡Π΅Π³ΠΎ OpenShift Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ всСго ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π°, прСдлагая Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ²ΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ для ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ окупая Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ инвСстиции Π² ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ.

OpenShift 4 создавалась Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ обновлСния систСмы Π½Π° протяТСнии всСго ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ (для вСрсий 4.X) для всСх основных поставщиков ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Ρ… вычислСний, ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ Π΄Π°ΠΆΠ΅ bare metal систСм. Для этого ΡƒΠ·Π»Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒΡΡ Π½Π° Π±Π°Π·Π΅ взаимозамСняСмых элСмСнтов. Когда кластСр Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ Kubernetes, ΠΎΠ½ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ CRI-O Π½Π° CoreOS. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ вСрсия CRI-O привязана нСпосрСдствСнно ΠΊ Kubernetes, всС это Π² Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ стСпСни ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Π»ΡŽΠ±Ρ‹Π΅ пСрСстановки с Ρ†Π΅Π»ΡŒΡŽ тСстирования, устранСния Π½Π΅ΠΏΠΎΠ»Π°Π΄ΠΎΠΊ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ позволяСт ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ ΠΈΠ·Π΄Π΅Ρ€ΠΆΠΊΠΈ для ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ Red Hat.

Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½ΠΎ Π½ΠΎΠ²Ρ‹ΠΉ взгляд Π½Π° кластСры Kubernetes, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π΅Ρ‚ основу для планирования Π½ΠΎΠ²Ρ‹Ρ… вСсьма ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΈ ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. CRI-O (ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Container Runtime Interface β€” Open Container Initiative, сокращСнно CRI-OCI) оказался Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡƒΠ΄Π°Ρ‡Π½Ρ‹ΠΌ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ для массового создания ΡƒΠ·Π»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с OpenShift. CRI-O ΠΏΡ€ΠΈΠ΄Π΅Ρ‚ Π½Π° смСну ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π²ΡˆΠ΅ΠΌΡƒΡΡ Ρ€Π°Π½Π΅Π΅ Π΄Π²ΠΈΠΆΠΊΡƒ Docker, прСдлагая ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ OpenShift экономный, ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ, простой ΠΈ скучный – Π΄Π°, Π²Ρ‹ Π½Π΅ ΠΎΡΠ»Ρ‹ΡˆΠ°Π»ΠΈΡΡŒ – скучный ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½Ρ‹ΠΉ Π΄Π²ΠΈΠΆΠΎΠΊ, созданный ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Kubernetes.

ΠœΠΈΡ€ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ²

ΠœΠΈΡ€ ΡƒΠΆΠ΅ Π΄Π°Π²Π½ΠΎ двиТСтся ΠΊ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌ. Π‘ΡƒΠ΄ΡŒ Ρ‚ΠΎ Π² Kubernetes, ΠΈΠ»ΠΈ Π½Π° Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΈΡ… уровнях, Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½Ρ‹Ρ… стандартов ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ появлСнию экосистСмы ΠΈΠ½Π½ΠΎΠ²Π°Ρ†ΠΈΠΉ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅.

ВсС Π½Π°Ρ‡Π°Π»ΠΎΡΡŒ с создания ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ‚ΠΈΠ²Ρ‹ Open Containers Initiative Π² июнС 2015 Π³ΠΎΠ΄Π°. На этом Ρ€Π°Π½Π½Π΅ΠΌ этапС Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±Ρ‹Π»ΠΈ сформированы спСцификации ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½ΠΎΠ³ΠΎ ΠΎΠ±Ρ€Π°Π·Π° (image) ΠΈ срСды исполнСния (runtime). Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ инструмСнты ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΄ΠΈΠ½Ρ‹ΠΉ стандарт ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½Ρ‹Ρ… ΠΎΠ±Ρ€Π°Π·ΠΎΠ² ΠΈ Π΅Π΄ΠΈΠ½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π½ΠΈΠΌΠΈ. ПозднСС Π±Ρ‹Π»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ спСцификации дистрибуции (distribution), Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ с Π»Π΅Π³ΠΊΠΎΡΡ‚ΡŒΡŽ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½Ρ‹ΠΌΠΈ ΠΎΠ±Ρ€Π°Π·Π°ΠΌΠΈ.

Π—Π°Ρ‚Π΅ΠΌ сообщСство Kubernetes Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΎ Π΅Π΄ΠΈΠ½Ρ‹ΠΉ стандарт ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΠΎΠ³ΠΎ интСрфСйса (pluggable interface), ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ²ΡˆΠ΅Π³ΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Container Runtime Interface (CRI). Благодаря этому ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Kubernetes смогли ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π΄Π²ΠΈΠΆΠΊΠΈ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ Π² Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ Docker.

Π˜Π½ΠΆΠ΅Π½Π΅Ρ€Ρ‹ Red Hat ΠΈ Google ΡƒΠ²ΠΈΠ΄Π΅Π»ΠΈ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Π²ΡˆΡƒΡŽ Π½Π° Ρ€Ρ‹Π½ΠΊΠ΅ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎΡΡ‚ΡŒ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½ΠΎΠΌ Π΄Π²ΠΈΠΆΠΊΠ΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠ³ Π±Ρ‹ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ запросы ΠΎΡ‚ Kubelet ΠΏΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρƒ CRI ΠΈ прСдставили ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ совмСстимы с упомянутыми Π²Ρ‹ΡˆΠ΅ спСцификациями OCI. Π’Π°ΠΊ появился OCID. Но ΠΏΠΎΠ·Π²ΠΎΠ»ΡŒΡ‚Π΅, вСдь ΠΌΡ‹ ΠΆΠ΅ сказали, Ρ‡Ρ‚ΠΎ этот ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» Π±ΡƒΠ΄Π΅Ρ‚ посвящСн CRI-O? На самом Π΄Π΅Π»Π΅ Ρ‚Π°ΠΊ ΠΈ Π΅ΡΡ‚ΡŒ, просто с выпуском вСрсии 1.0 ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π±Ρ‹Π» ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ Π² CRI-O.

Рис. 1.

ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ – Π½Π° ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€: CRI-O Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² OpenShift Container Platform 4

Π˜Π½Π½ΠΎΠ²Π°Ρ†ΠΈΠΈ с CRI-O ΠΈ CoreOS

Π‘ запуском ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ OpenShift 4, Π±Ρ‹Π» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½Ρ‹ΠΉ Π΄Π²ΠΈΠΆΠΎΠΊ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π² ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΈ Π½Π° смСну Docker ΠΏΡ€ΠΈΡˆΠ΅Π» CRI-O, ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ²ΡˆΠΈΠΉ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‡Π½ΡƒΡŽ, ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΡƒΡŽ, ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ ΠΈ ΡΠΊΡƒΡ‡Π½ΡƒΡŽ срСду для запуска ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°, которая развиваСтся ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ с Kubernetes. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ кластСра. ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½ΠΎΠ³ΠΎ Π΄Π²ΠΈΠΆΠΊΠ° ΠΈ хоста, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠΌΠΈ становится Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… OpenShift 4.

Π‘Ρ‚ΠΎΠΏ, ΠΊΠ°ΠΊ это?

ИмСнно Ρ‚Π°ΠΊ, с появлСниСм OpenShift 4, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ большС Π½Π΅Ρ‚ Π½ΡƒΠΆΠ΄Ρ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ хостам ΠΈ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½Ρ‹ΠΉ Π΄Π²ΠΈΠΆΠΎΠΊ, ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅, Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ сСрвСра для поиска ΠΈΠ»ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ΅Ρ‚ΡŒ. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° OpenShift 4 Π±Ρ‹Π»Π° ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° для использования the Operator Framework Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Π½ΠΎ ΠΈ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Π±Π°Π·ΠΎΠ²Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠ², ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ систСмы ΠΈΠ»ΠΈ установка ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ.

Kubernetes всСгда позволял ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ прилоТСниями, опрСдСляя ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ΅ состояниС ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹ (Controllers), Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ фактичСскоС состояниС максимально соотвСтствуСт Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡƒ ΡΠΎΡΡ‚ΠΎΡΠ½ΠΈΡŽ. Π­Ρ‚ΠΎΡ‚ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ с использованиСм Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ состояния ΠΈ фактичСского состояния ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ большиС возмоТности ΠΊΠ°ΠΊ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Ρ‚Π°ΠΊ ΠΈ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠ΅ состояниС, ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρƒ Π² Π²ΠΈΠ΄Π΅ YAML ΠΈΠ»ΠΈ JSON Ρ„Π°ΠΉΠ»Π°, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π² эксплуатационной срСдС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ экзСмпляр прилоТСния, ΠΏΡ€ΠΈ этом Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ состояниС этого экзСмпляра Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡƒ.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ (Operators) Π² ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅, OpenShift 4 привносит эту Π½ΠΎΠ²ΡƒΡŽ ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΡƒ (с использованиСм ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΈ фактичСского состояния) Π² ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ RHEL CoreOS ΠΈ CRI-O. Π—Π°Π΄Π°Ρ‡ΠΈ конфигурирования ΠΈ управлСния вСрсиями ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½ΠΎΠ³ΠΎ Π΄Π²ΠΈΠΆΠΊΠ° автоматизируСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ (Machine Config Operator, MCO). MCO Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ администратора кластСра, ΠΏΠΎ сути автоматизируя послСдниС этапы установки, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ послС установки (day two operations). ВсС это Π΄Π΅Π»Π°Π΅Ρ‚ OpenShift 4 настоящСй ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ. ΠœΡ‹ остановимся Π½Π° этом Ρ‡ΡƒΡ‚ΡŒ ΠΏΠΎΠ·ΠΆΠ΅.

Запуск ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ²

Π£ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π±Ρ‹Π»Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π²ΠΈΠΆΠΎΠΊ CRI-O Π² ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ OpenShift начиная с вСрсии 3.7 Π² статусС Tech Preview ΠΈ с вСрсии 3.9 Π² статусС Generally Available (поддСрТиваСтся Π² настоящСС врСмя). ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Red Hat массово ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ CRI-O для запуска производствСнных Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… Π½Π°Π³Ρ€ΡƒΠ·ΠΎΠΊ Π² OpenShift Online начиная с вСрсии 3.10. ВсС это ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅ΠΉ Π½Π°Π΄ CRI-O, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹ΠΉ ΠΎΠΏΡ‹Ρ‚ массового запуска ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² Π½Π° ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… кластСрах Kubernetes. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ прСдставлСния ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Kubernetes ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ CRI-O, Π΄Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΡŽ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠΊΠ°Π·Π°Π½ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹.

Рис. 2. Как Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ Π² кластСрС Kubernetes

ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ – Π½Π° ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€: CRI-O Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² OpenShift Container Platform 4

CRI-O ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ созданиС Π½ΠΎΠ²Ρ‹Ρ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½Ρ‹Ρ… хостов Π·Π° счСт синхронизации всСго Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ уровня ΠΏΡ€ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½ΠΎΠ²Ρ‹Ρ… Π½ΠΎΠ΄, Π° ΠΏΡ€ΠΈ выпускС Π½ΠΎΠ²Ρ‹Ρ… вСрсий ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ OpenShift. РСвизия всСй ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ обновлСния / ΠΎΡ‚ΠΊΠ°Ρ‚Ρ‹, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π²Π·Π°ΠΈΠΌΠ½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Π² зависимостях ΠΌΠ΅ΠΆΠ΄Ρƒ ядром ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½ΠΎΠ³ΠΎ хвоста, ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½Ρ‹ΠΌ Π΄Π²ΠΈΠΆΠΊΠΎΠΌ, Π½ΠΎΠ΄Π°ΠΌΠΈ (Kubelets) ΠΈ мастСр-Π½ΠΎΠ΄ΠΎΠΉ Kubernetes Master. ΠŸΡ€ΠΈ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΌ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ всСми ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, с ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅ΠΌ ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ вСрсиями, ΠΌΠΎΠΆΠ½ΠΎ всСгда ΠΎΡ‚ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Ρ‡Π΅Ρ‚ΠΊΠΈΠΉ ΠΏΡƒΡ‚ΡŒ ΠΈΠ· состояния A Π² состояниС B. Π­Ρ‚ΠΎ позволяСт ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ процСсс ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ, ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ, ΡƒΠ»ΡƒΡ‡ΡˆΠ°Π΅Ρ‚ Π²Π΅Π΄Π΅Π½ΠΈΠ΅ отчСтности ΠΏΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ Π·Π°Ρ‚Ρ€Π°Ρ‚Ρ‹ Π½Π° обновлСния ΠΈ установку Π½ΠΎΠ²Ρ‹Ρ… вСрсий.

ДСмонстрация ΠΌΠΎΡ‰ΠΈ смСнных элСмСнтов

Как Π±Ρ‹Π»ΠΎ упомянуто Ρ€Π°Π½Π΅Π΅, использованиС Machine Config Operator для управлСния хостом ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½Ρ‹ΠΌ Π΄Π²ΠΈΠΆΠΊΠΎΠΌ Π² OpenShift 4 обСспСчиваСт Π½ΠΎΠ²Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ Π±Ρ‹Π» Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Kubernetes Ρ€Π°Π½Π΅Π΅. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ возмоТности, ΠΌΡ‹ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ Π²Π½ΠΎΡΠΈΡ‚ΡŒ измСнСния Π² Ρ„Π°ΠΉΠ» crio.conf. Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π·Π°ΠΏΡƒΡ‚Π°Ρ‚ΡŒΡΡ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, ΡΡ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ ΡΠΊΠΎΠ½Ρ†Π΅Π½Ρ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°Ρ….

Π‘Π½Π°Ρ‡Π°Π»Π°, Π΄Π°Π²Π°ΠΉΡ‚Π΅ создадим Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ называСтся ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠ΅ΠΉ срСды исполнСния ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° – Container Runtime Config. Π‘Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅, Ρ‡Ρ‚ΠΎ это Π½Π΅ΠΊΠΈΠΉ рСсурс Kubernetes, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдставляСт ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ для CRI-O. Π’ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΆΠ΅ это спСциализированная вСрсия Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ называСтся MachineConfig, Ρ‡Ρ‚ΠΎ прСдставляСт собой Π»ΡŽΠ±ΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ, Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π΅ΠΌΡƒΡŽ Π½Π° машинС RHEL CoreOS Π² Ρ€Π°ΠΌΠΊΠ°Ρ… кластСра OpenShift.

Π­Ρ‚ΠΎΡ‚ кастомный рСсурс, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ ContainerRuntimeConfig, Π±Ρ‹Π» ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π½ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΡ‚ΡŒ для администраторов кластСра настройку CRI-O. Π­Ρ‚ΠΎ достаточно ΠΌΠΎΡ‰Π½Ρ‹ΠΉ инструмСнт, Ρ‡Ρ‚ΠΎ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ ΡƒΠ·Π»Π°ΠΌ Π² зависимости ΠΎΡ‚ настроСк MachineConfigPool. Π‘Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ это Π³Ρ€ΡƒΠΏΠΏΠΎΠΉ машин, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ слуТат ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ Ρ†Π΅Π»ΠΈ.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π΄Π²Π΅ послСдниС строчки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ собираСмся ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π² Ρ„Π°ΠΉΠ»Π΅ /etc/crio/crio.conf. Π­Ρ‚ΠΈ Π΄Π²Π΅ строчки ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠΈ Π½Π° строчки Π² Ρ„Π°ΠΉΠ»Π΅ crio.conf, это:

vi ContainerRuntimeConfig.yaml

Π’Ρ‹Π²ΠΎΠ΄:

apiVersion: machineconfiguration.openshift.io/v1
kind: ContainerRuntimeConfig
metadata:
 name: set-log-and-pid
spec:
 machineConfigPoolSelector:
   matchLabels:
     debug-crio: config-log-and-pid
 containerRuntimeConfig:
   pidsLimit: 2048
   logLevel: debug

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠΌ этот Ρ„Π°ΠΉΠ» Π² кластСр Kubernetes ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ создан. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π° осущСствляСтся Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ с Π»ΡŽΠ±Ρ‹ΠΌ Π΄Ρ€ΡƒΠ³ΠΈΠΌ рСсурсом Kubernetes:

oc create -f ContainerRuntimeConfig.yaml
oc get ContainerRuntimeConfig

Π’Ρ‹Π²ΠΎΠ΄:

NAME              AGE
set-log-and-pid   22h

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ‹ создали ContainerRuntimeConfig, Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· MachineConfigPools, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π°Ρ‚ΡŒ ΠΏΠΎΠ½ΡΡ‚ΡŒ Kubernetes, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ эту ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΠ΅ машин Π² кластСрС. Π’ этом случаС ΠΌΡ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ MachineConfigPool для мастСр-ΡƒΠ·Π»ΠΎΠ²:

oc edit MachineConfigPool/master

Π’Ρ‹Π²ΠΎΠ΄ (для наглядности оставлСна основная ΡΡƒΡ‚ΡŒ):

...
metadata:
 creationTimestamp: 2019-04-10T23:42:28Z
 generation: 1
 labels:
   debug-crio: config-log-and-pid
   operator.machineconfiguration.openshift.io/required-for-upgrade: ""
...

Π’ этот ΠΌΠΎΠΌΠ΅Π½Ρ‚ MCO Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» crio.conf для кластСра. ΠŸΡ€ΠΈ этом ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ срСдствами Kubernetes API. ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, ContainerRuntimeConfig – это всСго лишь спСциализированная вСрсия MachineConfig, поэтому ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, взглянув Π½Π° Π½ΡƒΠΆΠ½Ρ‹Π΅ строки Π² MachineConfigs:

oc get MachineConfigs | grep rendered

Π’Ρ‹Π²ΠΎΠ΄:

rendered-master-c923f24f01a0e38c77a05acfd631910b                  4.0.22-201904011459-dirty 2.2.0 16h
rendered-master-f722b027a98ac5b8e0b41d71e992f626                  4.0.22-201904011459-dirty 2.2.0 4m
rendered-worker-9777325797fe7e74c3f2dd11d359bc62                  4.0.22-201904011459-dirty 2.2.0 16h

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ для мастСр-ΡƒΠ·Π»ΠΎΠ² оказался Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²ΠΎΠΉ вСрсиСй, Ρ‡Π΅ΠΌ исходныС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π΅Π³ΠΎ, запуститС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ. ΠŸΠΎΠΏΡƒΡ‚Π½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ это, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π»ΡƒΡ‡ΡˆΠΈΡ… однострочных скриптов Π·Π° всю ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ Kubernetes:

python3 -c "import sys, urllib.parse; print(urllib.parse.unquote(sys.argv[1]))" $(oc get MachineConfig/rendered-master-f722b027a98ac5b8e0b41d71e992f626 -o YAML | grep -B4 crio.conf | grep source | tail -n 1 | cut -d, -f2) | grep pid

Π’Ρ‹Π²ΠΎΠ΄:

pids_limit = 2048

Π’Π΅ΠΏΠ΅Ρ€ΡŒ убСдимся, Ρ‡Ρ‚ΠΎ конфигурация Π±Ρ‹Π»Π° ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Π° ΠΊΠΎ всСм мастСр-ΡƒΠ·Π»Π°ΠΌ. Π‘Π½Π°Ρ‡Π°Π»Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ список ΡƒΠ·Π»ΠΎΠ² Π² кластСрС:

oc get node | grep master

Output:

ip-10-0-135-153.us-east-2.compute.internal   Ready master 23h v1.12.4+509916ce1

ip-10-0-154-0.us-east-2.compute.internal     Ready master 23h v1.12.4+509916ce1

ip-10-0-166-79.us-east-2.compute.internal    Ready master 23h v1.12.4+509916ce1

Π’Π΅ΠΏΠ΅Ρ€ΡŒ просмотрим установлСнный Ρ„Π°ΠΉΠ». Π’Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Ρ„Π°ΠΉΠ» Π±Ρ‹Π» ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ ΠΏΠΎ Π½ΠΎΠ²Ρ‹ΠΌ значСниям Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ² pid ΠΈ debug, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ ΡƒΠΊΠ°Π·Π°Π»ΠΈ Π² рСсурсС ContainerRuntimeConfig. Π‘Π°ΠΌΠ° ΡΠ»Π΅Π³Π°Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ:

oc debug node/ip-10-0-135-153.us-east-2.compute.internal β€” cat /host/etc/crio/crio.conf | egrep 'debug||pid’

Π’Ρ‹Π²ΠΎΠ΄:

...
pids_limit = 2048
...
log_level = "debug"
...

ВсС эти измСнСния Π² кластСрС Π±Ρ‹Π»ΠΈ внСсСны Π΄Π°ΠΆΠ΅ Π±Π΅Π· запуска SSH. Вся Ρ€Π°Π±ΠΎΡ‚Π° Π±Ρ‹Π»Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° ΠΏΡƒΡ‚Π΅ΠΌ обращСния ΠΊ мастСр-ΡƒΠ·Π»Ρƒ Kuberentes. Π’ΠΎ Π΅ΡΡ‚ΡŒ эти Π½ΠΎΠ²Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π±Ρ‹Π»ΠΈ сконфигурированы Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° мастСр-ΡƒΠ·Π»Π°Ρ…. Π Π°Π±ΠΎΡ‡ΠΈΠ΅ ΡƒΠ·Π»Ρ‹ ΠΏΡ€ΠΈ этом Π½Π΅ мСнялись, Ρ‡Ρ‚ΠΎ дСмонстрируСт прСимущСства ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ Kubernetes с использованиСм Π·Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… состояний ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊ хостам ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½Ρ‹Ρ… Π΄Π²ΠΈΠΆΠΊΠΎΠ² с взаимозамСняСмыми элСмСнтами.

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Π½ΠΎΡΠΈΡ‚ΡŒ измСнСния Π² нСбольшой кластСр OpenShift Container Platform 4 с трСмя Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌΠΈ Π½ΠΎΠ΄Π°ΠΌΠΈ ΠΈΠ»ΠΈ Π² ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹ΠΉ производствСнный кластСр с 3000 Π½ΠΎΠ΄ΠΎΠ². Π’ любом случаС объСм Ρ€Π°Π±ΠΎΡ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌ – ΠΈ совсСм нСбольшим – достаточно Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» ContainerRuntimeConfig, ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΌΠ΅Ρ‚ΠΊΡƒ (label) Π² MachineConfigPool. И Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Ρ‚ΡŒ это с любой вСрсиСй ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ Π² Kubernetes ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ OpenShift Container Platform 4.X Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ всСго Π΅Π΅ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π°.

Π—Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ тСхнологичСскиС ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ быстро, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π½Π΅ Π² состоянии ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΌΡ‹ Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Ρ‚Π΅ ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹Π΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ для Π±Π°Π·ΠΎΠ²Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½Ρ‹Π΅ Π΄Π²ΠΈΠΆΠΊΠΈ историчСски Π±Ρ‹Π»ΠΈ Ρ‚Π΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² Π·Π°ΠΊΠΎΠ½ΠΎΠΌΠ΅Ρ€Π½ΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Π»Π°ΡΡŒ с появлСния ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½Ρ‹Ρ… Π΄Π²ΠΈΠΆΠΊΠΎΠ², ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π½Π΅Ρ€Π΅Π΄ΠΊΠΎ ΠΏΡ€ΠΎΡΠ²Π»ΡΡŽΡ‚ ΠΊ Π½ΠΈΠΌ Π·Π°ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ. Π­Ρ‚ΠΎ Π΅Ρ‰Π΅ ΠΎΠ΄Π½Π° ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°, ΠΏΠΎΡ‡Π΅ΠΌΡƒ Red Hat остановила свой Π²Ρ‹Π±ΠΎΡ€ Π½Π° CRI-O. ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‚ΡΡ, ΠΏΡ€ΠΈ этом сСгодня основноС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ удСляСтся оркСстровкС, ΠΈ ΠΌΡ‹ ΠΏΡ€ΠΈΡˆΠ»ΠΈ ΠΊ Π²Ρ‹Π²ΠΎΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ CRI-O обСспСчиваСт Π½Π°ΠΈΠ»ΡƒΡ‡ΡˆΠΈΠΉ ΠΎΠΏΡ‹Ρ‚ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с OpenShift 4.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com