CRI-O ΠΊΠ°Ρ‚ΠΎ замСститСл Π½Π° Docker ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·ΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½Π° срСда Π·Π° Kubernetes: настройка Π½Π° CentOS 8

Π—Π΄Ρ€Π°Π²Π΅ΠΉΡ‚Π΅! Казвам сС Π‘Π΅Ρ€Π³Π΅ΠΉ ΠΈ съм DevOps Π² Surf. DevOps ΠΎΡ‚Π΄Π΅Π»ΡŠΡ‚ Π² Surf Π½Π΅ само, Ρ‡Π΅ сС Π³Ρ€ΠΈΠΆΠΈ Π·Π° взаимодСйствиСто ΠΌΠ΅ΠΆΠ΄Ρƒ спСциалиститС ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΡ‚Π΅ процСси, Π½ΠΎ ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ изслСдва ΠΈ внСдрява ΡΡŠΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΊΠ°ΠΊΡ‚ΠΎ Π² собствСната инфраструктура, Ρ‚Π°ΠΊΠ° ΠΈ Π² инфраструктурата Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°.

По-Π΄ΠΎΠ»Ρƒ Ρ‰Π΅ Π²ΠΈ Ρ€Π°Π·ΠΊΠ°ΠΆΠ° ΠΌΠ°Π»ΠΊΠΎ Π·Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ Π² тСхнологичния стСк Π·Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ, с ΠΊΠΎΠΈΡ‚ΠΎ сС ΡΠ±Π»ΡŠΡΠΊΠ²Π°Ρ…ΠΌΠ΅ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΡƒΡ‡Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° дистрибуцията CentOS 8 ΠΈ ΠΊΠ°ΠΊΠ²ΠΎ прСдставлява CRI-O ΠΈ ΠΊΠ°ΠΊ Π±ΡŠΡ€Π·ΠΎ Π΄Π° настроитС с Π½Π΅Π³ΠΎΠ²Π° ΠΏΠΎΠΌΠΎΡ‰ ΠΈΠ·ΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½Π° срСда Π·Π° Kubernetes.

CRI-O ΠΊΠ°Ρ‚ΠΎ замСститСл Π½Π° Docker ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·ΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½Π° срСда Π·Π° Kubernetes: настройка Π½Π° CentOS 8

Π—Π°Ρ‰ΠΎ Docker липсва Π² стандартната вСрсия Π½Π° CentOS 8

Π‘Π»Π΅Π΄ инсталиранСто Π½Π° послСднитС Π³ΠΎΠ»Π΅ΠΌΠΈ вСрсии RHEL 8 ΠΈΠ»ΠΈ CentOS 8 Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π½Π΅ Π·Π°Π±Π΅Π»Π΅ΠΆΠΈ, Ρ‡Π΅ Π² Ρ‚Π΅Π·ΠΈ дистрибуции ΠΈ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»Π½ΠΈ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° липсва ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Docker, ΠΊΠΎΠ΅Ρ‚ΠΎ идСологичСски ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΎ замСства ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈΡ‚Π΅ Podman, Buildah (Π½Π°Π»ΠΈΡ‡Π½ΠΈ Π² дистрибуцията ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅) ΠΈ CRI-O. Π’ΠΎΠ²Π° Π΅ ΡΠ²ΡŠΡ€Π·Π°Π½ΠΎ с практичСското Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° стандартитС, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½ΠΈ, ΠΌΠ΅ΠΆΠ΄Ρƒ Π΄Ρ€ΡƒΠ³ΠΎΡ‚ΠΎ, ΠΎΡ‚ Red Hat Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Open Container Initiative (OCI).

Π¦Π΅Π»Ρ‚Π° Π½Π° OCI, която Π΅ част ΠΎΡ‚ The Linux Foundation, Π΅ ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ΠΈ индустриални стандарти Π·Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈ ΠΈ ΠΈΠ·ΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ срСди Π·Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π΄Π° Ρ€Π΅ΡˆΠ°Π²Π°Ρ‚ няколко Π·Π°Π΄Π°Ρ‡ΠΈ. ΠŸΡŠΡ€Π²ΠΎ, Π΄Π° Π½Π΅ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡Π°Ρ‚ Π½Π° философията Π½Π° Linux (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² частта, Π² която всяка ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° трябва Π΄Π° изпълнява само Π΅Π΄Π½ΠΎ дСйствиС, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ Docker прСдставлява Π½Π΅Ρ‰ΠΎ ΠΊΠ°Ρ‚ΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π°Π½Π° систСма всичко Π² Π΅Π΄Π½ΠΎ). На Π²Ρ‚ΠΎΡ€ΠΎ място, Π΄Π° отстранят всички ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰ΠΈ Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ†ΠΈ Π² софтуСра. DockerНа Ρ‚Ρ€Π΅Ρ‚ΠΎ място, Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ напълно ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΈ с бизнСс изискванията, поставСни ΠΎΡ‚ Π²ΠΎΠ΄Π΅Ρ‰ΠΈΡ‚Π΅ Ρ‚ΡŠΡ€Π³ΠΎΠ²ΡΠΊΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΈ Π·Π° Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π°Π½Π΅, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ обслуТванС Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ прилоТСния (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Red Hat OpenShift).

ΠΠ΅Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ†ΠΈ Docker ΠΈ прСдимствата Π½Π° новия софтуСр Π²Π΅Ρ‡Π΅ бяха доста ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ описани Π² Ρ‚Π°Π·ΠΈ статия, Π° Π·Π° ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ описаниС Π½Π° всичко, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π½ΠΎ Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° OCI, ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½ΠΈΡ‚Π΅ ΠΌΡƒ особСности ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° сС Π·Π°ΠΏΠΎΠ·Π½Π°Π΅Ρ‚Π΅ с ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»Π½Π°Ρ‚Π° докумСнтация ΠΈ статиитС ΠΊΠ°ΠΊΡ‚ΠΎ ΠΎΡ‚ самия Red Hat (нСподходяща статия Π² Red Hat blog), Ρ‚Π°ΠΊΠ° ΠΈ Π² нСзависимитС Ρ€Π΅Π²ΡŽΡ‚Π°..

Π’Π°ΠΆΠ½ΠΎ Π΅ Π΄Π° сС ΠΎΡ‚Π±Π΅Π»Π΅ΠΆΠΈ ΠΊΠ°ΠΊΠ²Π° функционалност ΠΈΠΌΠ°Ρ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈΡ‚Π΅ Π½Π° прСдлагания стСк:

  • Podman β€” Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ взаимодСйствиС с ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΡ‚Π΅ ΠΈ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅Ρ‚ΠΎ Π½Π° ΠΎΠ±Ρ€Π°Π·ΠΈ Ρ‡Ρ€Π΅Π· процСса runC;
  • Buildah β€” ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ ΠΈ ΠΊΠ°Ρ‡Π²Π°Π½Π΅ Π² Ρ€Π΅Π³ΠΈΡΡ‚ΡŠΡ€ Π½Π° ΠΎΠ±Ρ€Π°Π·ΠΈ;
  • CRI-O β€” ΠΈΠ·ΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½Π° срСда Π·Π° систСми Π·Π° оркСстрация Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Kubernetes).

Бмятам, Ρ‡Π΅ Π·Π° Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΎΠ±Ρ‰Π°Ρ‚Π° схСма Π½Π° взаимодСйствиС ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈΡ‚Π΅ Π½Π° стСка, Π΅ Ρ†Π΅Π»Π΅ΡΡŠΠΎΠ±Ρ€Π°Π·Π½ΠΎ Π΄Π° прСдставим Ρ‚ΡƒΠΊ схСмата Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈΡ‚Π΅. Kubernetes с runC ΠΈ нискоуровнСвитС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ с ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° CRI-O:

CRI-O ΠΊΠ°Ρ‚ΠΎ замСститСл Π½Π° Docker ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·ΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½Π° срСда Π·Π° Kubernetes: настройка Π½Π° CentOS 8

CRI-O ΠΈ Kubernetes сС ΠΏΡ€ΠΈΠ΄ΡŠΡ€ΠΆΠ°Ρ‚ към Π΅Π΄ΠΈΠ½ ΠΈ ΡΡŠΡ‰ Ρ†ΠΈΠΊΡŠΠ» Π½Π° ΠΈΠ·Π΄Π°Π²Π°Π½Π΅ ΠΈ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° (ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°Ρ‚Π° Π½Π° ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ проста: ΠΌΠ°ΠΆΠΎΡ€Π½ΠΈΡ‚Π΅ вСрсии Kubernetes ΠΈ CRI-O съcoΠΏΠ°Π΄Π°Ρ‚), Π° Ρ‚ΠΎΠ²Π°, ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄ насокитС Π·Π° пълно ΠΈ всСстранно тСстванС Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° Ρ‚ΠΎΠ·ΠΈ стСк ΠΎΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅, Π½ΠΈ Π΄Π°Π²Π° основаниС Π΄Π° ΠΎΡ‡Π°ΠΊΠ²Π°ΠΌΠ΅ максимално постиТима стабилност Π² Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° ΠΏΡ€ΠΈ всякакви сцСнарии Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ (Ρ‚ΡƒΠΊ допринася ΠΈ относитСлната Π»Π΅ΠΊΠΎΡ‚Π° CRI-O Π² сравнСниС с Docker ΠΏΠΎΡ€Π°Π΄ΠΈ цСлСнасочСното ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π°Π²Π°Π½Π΅ Π½Π° функционалността).

ΠŸΡ€ΠΈ инсталиранС Kubernetes ΠΏΠΎ "правилния Π½Π°Ρ‡ΠΈΠ½" (спорСд OCI, Ρ€Π°Π·Π±ΠΈΡ€Π° сС) с ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° CRI-O Π½Π° CentOS 8 сС ΡΠ±Π»ΡŠΡΠΊΠ°Ρ…ΠΌΠ΅ с ΠΌΠ°Π»ΠΊΠΈ затруднСния, ΠΊΠΎΠΈΡ‚ΠΎ ΠΎΠ±Π°Ρ‡Π΅ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ прСодоляхмС. Π©Π΅ сС Ρ€Π°Π΄Π²Π°ΠΌ Π΄Π° сподСля с вас инструкция Π·Π° инсталация ΠΈ настройка, ΠΊΠΎΠΈΡ‚ΠΎ ΠΎΠ±Ρ‰ΠΎ Π²Π·Π΅Ρ‚ΠΎ Ρ‰Π΅ ΠΎΡ‚Π½Π΅ΠΌΠ°Ρ‚ Π½Π΅ ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ 10 ΠΌΠΈΠ½ΡƒΡ‚ΠΈ.

Как Π΄Π° Ρ€Π°Π·Π²Π΅Ρ€Π½Π΅ΠΌ Kubernetes Π½Π° CentOS 8 с ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° срСда CRI-O

ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΈ изисквания: Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π½Π° ΠΏΠΎΠ½Π΅ Π΅Π΄ΠΈΠ½ хост (2 ядра, 4 GB RAM, устройство с ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ 15 GB) с инсталирана CentOS 8 (ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Π΅ Π΄Π° сС ΠΈΠ·Π±Π΅Ρ€Π΅ ΠΏΡ€ΠΎΡ„ΠΈΠ» "Π‘ΡŠΡ€Π²ΡŠΡ€"), ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ записи Π·Π° Π½Π΅Π³ΠΎ Π² локалния DNS (Π² ΠΊΡ€Π°Π΅Π½ случай ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·Π±Π΅Π³Π½Π΅ с запис Π² /etc/hosts). И Π½Π΅ забравяйтС Π΄Π° ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ swap.

Всички ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π° хоста ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°ΠΌΠ΅ ΠΎΡ‚ ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° потрСбитСля root, моля, Π±ΡŠΠ΄Π΅Ρ‚Π΅ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»Π½ΠΈ.

  1. На ΠΏΡŠΡ€Π²ΠΈΡ Π΅Ρ‚Π°ΠΏ Ρ‰Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°ΠΌΠ΅ ОБ, Ρ‰Π΅ инсталирамС ΠΈ настройвамС ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΈΡ‚Π΅ зависимости Π·Π° CRI-O.
    • АктуализирамС ОБ:
      dnf -y update
      

    • Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° настроим Π·Π°Ρ‰ΠΈΡ‚Π½Π°Ρ‚Π° стСна ΠΈ SELinux. Π’ΡƒΠΊ зависим ΠΎΡ‚ срСдата, Π² която Ρ‰Π΅ работят Π½Π°ΡˆΠΈΡΡ‚ хост ΠΈΠ»ΠΈ хостовС. ΠœΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ»ΠΈ Π΄Π° настроитС Π·Π°Ρ‰ΠΈΡ‚Π½Π°Ρ‚Π° стСна съгласно ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΠΊΠΈΡ‚Π΅ ΠΎΡ‚ докумСнтацията, ΠΈΠ»ΠΈ, Π°ΠΊΠΎ стС Π² Π΄ΠΎΠ²Π΅Ρ€Π΅Π½Π° ΠΌΡ€Π΅ΠΆΠ° ΠΈΠ»ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ външна Π·Π°Ρ‰ΠΈΡ‚Π½Π° стСна, Π΄Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‰Π°Ρ‚Π° сС Π·ΠΎΠ½Π° Π½Π° Π΄ΠΎΠ²Π΅Ρ€Π΅Π½Π° ΠΈΠ»ΠΈ Π΄Π° ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Π·Π°Ρ‰ΠΈΡ‚Π½Π°Ρ‚Π° стСна:
      firewall-cmd --set-default-zone trusted
      
      firewall-cmd --reload

      Π—Π° Π΄Π° ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Π·Π°Ρ‰ΠΈΡ‚Π½Π°Ρ‚Π° стСна, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ слСдната ΠΊΠΎΠΌΠ°Π½Π΄Π°:

      systemctl disable --now firewalld
      

      SELinux трябва Π΄Π° бъдС ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΈΠ»ΠΈ Π΄Π° бъдС ΠΏΡ€Π΅Π²Π΅Π΄Π΅Π½ Π² Ρ€Π΅ΠΆΠΈΠΌ "permissive":

      setenforce 0
      
      sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config

    • Ρ‰Π΅ Π·Π°Ρ€Π΅Π΄ΠΈΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ ядрови ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ, Ρ‰Π΅ настроим Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎΡ‚ΠΎ Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΌΠΎΠ΄ΡƒΠ»Π° "br_netfilter" ΠΏΡ€ΠΈ стартиранС Π½Π° систСмата:
      modprobe overlay
      
      modprobe br_netfilter
      
      echo "br_netfilter" >> /etc/modules-load.d/br_netfilter.conf
      
      dnf -y install iproute-tc
      

    • Π—Π° Π΄Π° Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°ΠΌΠ΅ прСнасочванСто Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ ΠΈ Π΄Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°ΠΌΠ΅ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ, Ρ‰Π΅ Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΈΡ‚Π΅ настройки:
      cat > /etc/sysctl.d/99-kubernetes-cri.conf <<EOF
      net.bridge.bridge-nf-call-iptables = 1
      net.ipv4.ip_forward = 1
      net.bridge.bridge-nf-call-ip6tables = 1
      EOF
      

      Π©Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠΈΠΌ Π½Π°ΠΏΡ€Π°Π²Π΅Π½ΠΈΡ‚Π΅ настройки:

      sysctl --system

    • Π©Π΅ Π·Π°Π΄Π°Π΄Π΅ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ°Ρ‚Π° вСрсия CRI-O (Π³Π»Π°Π²Π½Π° вСрсия CRI-O, ΠΊΠ°ΠΊΡ‚ΠΎ Π²Π΅Ρ‡Π΅ бСшС спомСнато, съвпада с изискваната вСрсия Kubernetes), Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ послСдната стабилна вСрсия Kubernetes Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π΅ 1.18:
      export REQUIRED_VERSION=1.18
      

      Π©Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ:

      dnf -y install 'dnf-command(copr)'
      
      dnf -y copr enable rhcontainerbot/container-selinux
      
      curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable.repo https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable/CentOS_8/devel:kubic:libcontainers:stable.repo
      
      curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable:cri-o:$REQUIRED_VERSION.repo https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable:cri-o:$REQUIRED_VERSION/CentOS_8/devel:kubic:libcontainers:stable:cri-o:$REQUIRED_VERSION.repo

    • Π‘Π΅Π³Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° инсталирамС CRI-O:
      dnf -y install cri-o
      

      ΠžΠ±ΡŠΡ€Π½Π΅Ρ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΏΡŠΡ€Π²ΠΈΡ нюанс, ΠΊΠΎΠΉΡ‚ΠΎ срСщамС ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° инсталацията: Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΅ Π΄Π° Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€Π°ΠΌΠ΅ конфигурацията CRI-O ΠΏΡ€Π΅Π΄ΠΈ стартиранС Π½Π° услугата, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ изискваният ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ conmon ΠΈΠΌΠ° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎ ΠΎΡ‚ посочСното мСстополоТСниС:

      sed -i 's//usr/libexec/crio/conmon//usr/bin/conmon/' /etc/crio/crio.conf

      Π‘Π΅Π³Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°ΠΌΠ΅ ΠΈ стартирамС Π΄Π΅ΠΌΠΎΠ½Π° CRI-O:

      systemctl enable --now crio
      

      МоТСм Π΄Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ статуса Π½Π° Π΄Π΅ΠΌΠΎΠ½Π°:

      systemctl status crio
      

  2. Π˜Π½ΡΡ‚Π°Π»Π°Ρ†ΠΈΡ ΠΈ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½Π΅ Kubernetes.
    • Π©Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ нСобходимия Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ:
      cat < /etc/yum.repos.d/kubernetes.repo
      [kubernetes]
      name=Kubernetes
      baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-$basearch
      enabled=1
      gpgcheck=1
      repo_gpgcheck=1
      gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
      exclude=kubelet kubeadm kubectl
      EOF
      

      Π‘Π΅Π³Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° инсталирамС Kubernetes (вСрсия 1.18, ΠΊΠ°ΠΊΡ‚ΠΎ Π²Π΅Ρ‡Π΅ бСшС посочСно ΠΏΠΎ-Π³ΠΎΡ€Π΅):

      dnf install -y kubelet-1.18* kubeadm-1.18* kubectl-1.18* --disableexcludes=kubernetes

    • Вторият Π²Π°ΠΆΠ΅Π½ нюанс: Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π΄Π΅ΠΌΠΎΠ½ Docker, Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π΄Π΅ΠΌΠΎΠ½ CRI-O, ΠΏΡ€Π΅Π΄ΠΈ стартиранС ΠΈ инициализация Kubernetes Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΈΡ‚Π΅ настройки Π² конфигурационния Ρ„Π°ΠΉΠ» /var/lib/kubelet/config.yaml, ΠΊΠ°Ρ‚ΠΎ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ създадСм Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ°Ρ‚Π° дирСктория:
      mkdir /var/lib/kubelet
      
      cat < /var/lib/kubelet/config.yaml
      apiVersion: kubelet.config.k8s.io/v1beta1
      kind: KubeletConfiguration
      cgroupDriver: systemd
      EOF

    • ВрСтият Π²Π°ΠΆΠ΅Π½ ΠΌΠΎΠΌΠ΅Π½Ρ‚, с ΠΊΠΎΠΉΡ‚ΠΎ сС сблъсквамС ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° инсталацията: Π²ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ ΡƒΠΊΠ°Π·Π°Ρ…ΠΌΠ΅ използвания Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ cgroup, ΠΈ Π½Π΅Π³ΠΎΠ²Π°Ρ‚Π° настройка Ρ‡Ρ€Π΅Π· Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΡ€Π΅Π΄Π°Π²Π°ΠΌΠ΅ kubelet Π΅ остаряла (ΠΊΠ°ΠΊΡ‚ΠΎ Π΅ посочСно Π² докумСнтацията), Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΅ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈ Π² Ρ„Π°ΠΉΠ»Π°, ΠΈΠ½Π°Ρ‡Π΅ Π½Π°ΡˆΠΈΡΡ‚ ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ няма Π΄Π° бъдС ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½:
      cat /dev/null > /etc/sysconfig/kubelet
      
      cat < /etc/sysconfig/kubelet
      KUBELET_EXTRA_ARGS=--container-runtime=remote --cgroup-driver=systemd --container-runtime-endpoint='unix:///var/run/crio/crio.sock'
      EOF

    • Π‘Π΅Π³Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°ΠΌΠ΅ Π΄Π΅ΠΌΠΎΠ½Π° kubelet:
      sudo systemctl enable --now kubelet
      

      Π—Π° Π΄Π° настроим ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½Π° Ρ€Π°Π²Π½ΠΈΠ½Π° ΠΈΠ»ΠΈ Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΠΊ възли Π·Π° ΠΌΠΈΠ½ΡƒΡ‚ΠΈ, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Ρ‚ΠΎΠ·ΠΈ скрипт.

  3. Π’Ρ€Π΅ΠΌΠ΅ Π΅ Π΄Π° ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅ нашия ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€.
    • Π—Π° инициализация Π½Π° ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π° ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°:
      kubeadm init --pod-network-cidr=10.244.0.0/16
      

      НС забравяйтС Π΄Π° Π·Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° Π·Π° ΠΏΡ€ΠΈΡΡŠΠ΅Π΄ΠΈΠ½ΡΠ²Π°Π½Π΅ към ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π° β€žkubeadm join β€¦β€œ, която сС ΠΏΡ€Π΅Π΄Π»Π°Π³Π° Π² края Π½Π° ΠΈΠ·Ρ…ΠΎΠ΄Π°, ΠΈΠ»ΠΈ ΠΏΠΎΠ½Π΅ посочСнитС Ρ‚ΠΎΠΊΠ΅Π½ΠΈ.

    • Π”Π° инсталирамС плъгин (CNI) Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с Pod ΠΌΡ€Π΅ΠΆΠ°. ΠŸΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π²Π°ΠΌ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Calico. МоТС Π±ΠΈ ΠΏΠΎ-популярният Flannel ΠΈΠΌΠ° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ с ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚Ρ‚Π° с nftables, Π° ΠΈ Calico Π΅ СдинствСната рСализация Π½Π° CNI, която Π΅ ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π°Π½Π° ΠΈ напълно тСствана ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Kubernetes:
      kubectl --kubeconfig /etc/kubernetes/admin.conf apply -f https://docs.projectcalico.org/v3.15/manifests/calico.yaml 

    • Π—Π° ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π½Π° възСл към нашия ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€, тя трябва Π΄Π° бъдС настроСна спорСд Ρ‚ΠΎΡ‡ΠΊΠΈΡ‚Π΅ ΠΎΡ‚ инструкции 1 ΠΈ 2, ΠΈΠ»ΠΈ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ скрипт, слСд Ρ‚ΠΎΠ²Π° ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° ΠΎΡ‚ ΠΈΠ·Ρ…ΠΎΠ΄Π° β€žkubeadm init β€¦β€œ, която записахмС Π½Π° ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½ΠΈΡ Π΅Ρ‚Π°ΠΏ:
      kubeadm join $CONTROL_PLANE_ADDRESS:6443 --token $TOKEN 
          --discovery-token-ca-cert-hash $TOKEN_HASH

    • Π©Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ, Ρ‡Π΅ Π½Π°ΡˆΠΈΡΡ‚ ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½ ΠΈ Π΅ Π·Π°ΠΏΠΎΡ‡Π½Π°Π» Ρ€Π°Π±ΠΎΡ‚Π°:
      kubectl --kubeconfig=/etc/kubernetes/admin.conf get pods -A
      

    Π“ΠΎΡ‚ΠΎΠ²ΠΎ! Π’Π΅Ρ‡Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Ρ€Π°Π·ΠΏΠΎΠ»Π°Π³Π°Ρ‚Π΅ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Ρ‚ΠΎΠ²Π°Ρ€ Π½Π° вашия K8s ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€.

Какво Π½ΠΈ Ρ‡Π°ΠΊΠ° Π½Π°ΠΏΡ€Π΅Π΄

Надявам сС, Ρ‡Π΅ Π³ΠΎΡ€Π½Π°Ρ‚Π° инструкция Π²ΠΈ Π΅ ΠΏΠΎΠΌΠΎΠ³Π½Π°Π»Π° Π΄Π° спСститС ΠΌΠ°Π»ΠΊΠΎ Π²Ρ€Π΅ΠΌΠ΅ ΠΈ Π½Π΅Ρ€Π²ΠΈ.
Π˜Π·Ρ…ΠΎΠ΄ΡŠΡ‚ Π½Π° процСситС Π² индустрията чСсто зависи ΠΎΡ‚ Π½Π°Ρ‡ΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΠΉΡ‚ΠΎ Π³ΠΈ Π²ΡŠΠ·ΠΏΡ€ΠΈΠ΅ΠΌΠ° основната маса ΠΎΡ‚ ΠΊΡ€Π°ΠΉΠ½ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ Π½Π° Π΄Ρ€ΡƒΠ³ΠΎ софтуСрно Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π² ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π°Ρ‰Π°Ρ‚Π° ниша. ВсС ΠΎΡ‰Π΅ Π½Π΅ Π΅ съвсСм ясно какъв Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Ρ‰Π΅ Π΄ΠΎΠ²Π΅Π΄Π°Ρ‚ ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ‚ΠΈΠ²ΠΈΡ‚Π΅ Π½Π° OCI ΠΏΡ€Π΅Π· слСдващитС Π³ΠΎΠ΄ΠΈΠ½ΠΈ, Π½ΠΎ Ρ‰Π΅ сС Ρ€Π°Π΄Π²Π°ΠΌΠ΅ Π΄Π° слСдим Ρ‚ΠΎΠ²Π°. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° сподСлитС ΠΌΠ½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ си Π²Π΅Π΄Π½Π°Π³Π° Π² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΡ‚Π΅.

ΠžΡΡ‚Π°Π½Π΅Ρ‚Π΅ Π½Π° линия!

Π’Π°Π·ΠΈ статия сС появи Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½ΠΈΠ΅ Π½Π° слСднитС ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΡ†ΠΈ:



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

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster