ΠΠ»Π°ΡΡΠΎΡΠΌΠ°
ΠΡΠ΅Π²ΠΈΠ΄Π½ΡΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΡΠ°Π»ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ° Red Hat Enterprise Linux CoreOS (ΡΠ°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡΠΈ Red Hat Enterprise Linux) ΠΈ CRI-O, ΠΈ Π²ΠΎΡ ΠΏΠΎΡΠ΅ΠΌΡβ¦
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ΅ΠΌΠ° ΠΌΠΎΡΠ΅ΠΏΠ»Π°Π²Π°Π½ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²Π΅ΡΡΠΌΠ° ΡΠ΄Π°ΡΠ½ΠΎΠΉ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° Π°Π½Π°Π»ΠΎΠ³ΠΈΠΉ ΠΏΡΠΈ ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΠΈ ΡΠ°Π±ΠΎΡΡ Kubernetes ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ², ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ ΠΎ ΡΠ΅Ρ
Π±ΠΈΠ·Π½Π΅Ρ-ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°Ρ
, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΅ΡΠ°ΡΡ CoreOS ΠΈ CRI-O, Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅
Π ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅, ΡΡΠΎ ΠΡΡΠ½Π΅Π»Ρ ΠΏΡΠΈΡΠ»ΠΎΡΡ Π±Ρ ΠΏΡΠΎΠ΄Π΅Π»Π°ΡΡ ΡΡΡ ΡΠ°Π±ΠΎΡΡ Π΄Π»Ρ 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, ΠΈΠ»ΠΈ Π½Π° Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΈΡ
ΡΡΠΎΠ²Π½ΡΡ
,
ΠΡΠ΅ Π½Π°ΡΠ°Π»ΠΎΡΡ Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈΠ½ΠΈΡΠΈΠ°ΡΠΈΠ²Ρ Open Containers Initiative
ΠΠ°ΡΠ΅ΠΌ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎ Kubernetes ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π»ΠΎ Π΅Π΄ΠΈΠ½ΡΠΉ ΡΡΠ°Π½Π΄Π°ΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° (pluggable interface), ΠΏΠΎΠ»ΡΡΠΈΠ²ΡΠ΅Π³ΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅
ΠΠ½ΠΆΠ΅Π½Π΅ΡΡ Red Hat ΠΈ Google ΡΠ²ΠΈΠ΄Π΅Π»ΠΈ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π²ΡΡΡ Π½Π° ΡΡΠ½ΠΊΠ΅ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΡ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΠΎΠΌ Π΄Π²ΠΈΠΆΠΊΠ΅, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠ³ Π±Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π·Π°ΠΏΡΠΎΡΡ ΠΎΡ Kubelet ΠΏΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ CRI ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡ Ρ ΡΠΏΠΎΠΌΡΠ½ΡΡΡΠΌΠΈ Π²ΡΡΠ΅ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΠΌΠΈ OCI. Π’Π°ΠΊ
Π ΠΈΡ. 1.
ΠΠ½Π½ΠΎΠ²Π°ΡΠΈΠΈ Ρ CRI-O ΠΈ CoreOS
Π‘ Π·Π°ΠΏΡΡΠΊΠΎΠΌ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ OpenShift 4, Π±ΡΠ» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½
Π‘ΡΠΎΠΏ, ΠΊΠ°ΠΊ ΡΡΠΎ?
ΠΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΊ, Ρ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ OpenShift 4, ΡΠ΅ΠΏΠ΅ΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅Ρ Π½ΡΠΆΠ΄Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΊ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌ Ρ
ΠΎΡΡΠ°ΠΌ ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΡΠΉ Π΄Π²ΠΈΠΆΠΎΠΊ, ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°ΡΡ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅, Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ° Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΡΡ. ΠΠ»Π°ΡΡΠΎΡΠΌΠ° OpenShift 4 Π±ΡΠ»Π° ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΏΠ΅ΡΠ΅ΡΠ°Π±ΠΎΡΠ°Π½Π° Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ the
Kubernetes Π²ΡΠ΅Π³Π΄Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ» ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ
ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ (Operators) Π² ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅, OpenShift 4 ΠΏΡΠΈΠ²Π½ΠΎΡΠΈΡ ΡΡΡ Π½ΠΎΠ²ΡΡ ΠΏΠ°ΡΠ°Π΄ΠΈΠ³ΠΌΡ (Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΈ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ) Π² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ RHEL CoreOS ΠΈ CRI-O. ΠΠ°Π΄Π°ΡΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²Π΅ΡΡΠΈΡΠΌΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΠΎΠ³ΠΎ Π΄Π²ΠΈΠΆΠΊΠ° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ
ΠΠ°ΠΏΡΡΠΊ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ²
Π£ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π±ΡΠ»Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π²ΠΈΠΆΠΎΠΊ CRI-O Π² ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ OpenShift Π½Π°ΡΠΈΠ½Π°Ρ Ρ Π²Π΅ΡΡΠΈΠΈ 3.7 Π² ΡΡΠ°ΡΡΡΠ΅ Tech Preview ΠΈ Ρ Π²Π΅ΡΡΠΈΠΈ 3.9 Π² ΡΡΠ°ΡΡΡΠ΅ Generally Available (ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ). ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Red Hat ΠΌΠ°ΡΡΠΎΠ²ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ
Π ΠΈΡ. 2. ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅ Kubernetes
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