CRI-O рдбрдХрд░рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрдирдХреЛ рд░реВрдкрдорд╛ Kubernetes рдХреЛ рд▓рд╛рдЧрд┐ рд░рдирдЯрд╛рдЗрдо рд╡рд╛рддрд╛рд╡рд░рдгрдХреЛ рд░реВрдкрдорд╛: CentOS 8 рдорд╛ рд╕реЗрдЯрдЕрдк

рдирдорд╕реНрддреЗ! рдореЗрд░реЛ рдирд╛рдо Sergey рд╣реЛ, рдо рд╕рд░реНрдл рдорд╛ DevOps рд╣реБрдБред рд╕рд░реНрдлрдХреЛ DevOps рд╡рд┐рднрд╛рдЧрд▓реЗ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮрд╣рд░реВ рдмреАрдЪрдХреЛ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛ рд░ рдХрд╛рд░реНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВрд▓рд╛рдИ рдПрдХреАрдХреГрдд рдЧрд░реНрдиреЗ рдорд╛рддреНрд░ рд╣реЛрдЗрди, рддрд░ рдпрд╕рдХреЛ рдЖрдлреНрдиреИ рдкреВрд░реНрд╡рд╛рдзрд╛рд░ рд░ рдЧреНрд░рд╛рд╣рдХрдХреЛ рдкреВрд░реНрд╡рд╛рдзрд╛рд░рдорд╛ рд╣рд╛рд▓рдХреЛ рдкреНрд░рд╡рд┐рдзрд┐рд╣рд░реВрд▓рд╛рдИ рд╕рдХреНрд░рд┐рдп рд░реВрдкрдорд╛ рдЕрдиреБрд╕рдиреНрдзрд╛рди рд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрдиреЗ рд▓рдХреНрд╖реНрдп рд░рд╛рдЦреЗрдХреЛ рдЫред

рддрд▓ рдо рдХрдиреНрдЯреЗрдирд░рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЯреЗрдХреНрдиреЛрд▓реЛрдЬреА рд╕реНрдЯреНрдпрд╛рдХрдорд╛ рднрдПрдХрд╛ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдереЛрд░реИ рдХреБрд░рд╛ рдЧрд░реНрдиреЗрдЫреБ рдЬреБрди рд╣рд╛рдореАрд▓реЗ рд╡рд┐рддрд░рдгрдХреЛ рдЕрдзреНрдпрдпрди рдЧрд░реНрджрд╛ рд╕рд╛рдордирд╛ рдЧрд░реЗрдХрд╛ рдерд┐рдпреМрдВред CentOS 8 рд░ рдпреЛ рдХреЗ рд╣реЛ рднрдиреНрдиреЗ рдмрд╛рд░реЗ CRI-O рд░ рдХрд╕рд░реА рджреНрд░реБрдд рд░реВрдкрдорд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдпреЛрдЧреНрдп рд╡рд╛рддрд╛рд╡рд░рдг рд╕реЗрдЯрдЕрдк рдЧрд░реНрдиреЗ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕.

CRI-O рдбрдХрд░рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрдирдХреЛ рд░реВрдкрдорд╛ Kubernetes рдХреЛ рд▓рд╛рдЧрд┐ рд░рдирдЯрд╛рдЗрдо рд╡рд╛рддрд╛рд╡рд░рдгрдХреЛ рд░реВрдкрдорд╛: CentOS 8 рдорд╛ рд╕реЗрдЯрдЕрдк

рдХрд┐рди Docker CentOS 8 рдорд╛ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░рд┐рдПрдХреЛ рдЫреИрди?

рдирд╡реАрдирддрдо рдкреНрд░рдореБрдЦ рд╡рд┐рдЬреНрдЮрдкреНрддрд┐ рд╕реНрдерд╛рдкрдирд╛ рдкрдЫрд┐ RHEL рен.реи рд╡рд╛ CentOS 8 рдХрд╕реИрд▓реЗ рдорджреНрджрдд рдЧрд░реНрди рд╕рдХреНрджреИрди рддрд░ рдиреЛрдЯрд┐рд╕ рдЧрд░реНрди рд╕рдХреНрдЫ: рдпреА рд╡рд┐рддрд░рдг рд░ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рднрдгреНрдбрд╛рд░рд╣рд░реВрдорд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕рдорд╛рд╡реЗрд╢ рдЫреИрди рдбрдХрд░, рдЬрд╕рд▓реЗ рд╡реИрдЪрд╛рд░рд┐рдХ рд░ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд░реВрдкрдорд╛ рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдЧрд░реНрджрдЫ рдкреЛрдбрдореНрдпрд╛рди, рдирд┐рд░реНрдорд╛рдг (рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛ рд╡рд┐рддрд░рдгрдорд╛ рдЙрдкрд╕реНрдерд┐рдд) рд░ CRI-Oред рдпреЛ рдЦреБрд▓рд╛ рдХрдиреНрдЯреЗрдирд░ рдЗрдирд┐рд╕рд┐рдПрдЯрд┐рдн (OCI) рдкрд░рд┐рдпреЛрдЬрдирд╛рдХреЛ рднрд╛рдЧрдХреЛ рд░реВрдкрдорд╛ Red Hat рджреНрд╡рд╛рд░рд╛ рдЕрдиреНрдп рдЪреАрдЬрд╣рд░реВ рдмреАрдЪрдорд╛ рд╡рд┐рдХрд╕рд┐рдд рдорд╛рдирдХрд╣рд░реВрдХреЛ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рдХрд╛рд░рдг рд╣реЛред

OCI рдХреЛ рд▓рдХреНрд╖реНрдп, рдЬреБрди рд▓рд┐рдирдХреНрд╕ рдлрд╛рдЙрдиреНрдбреЗрд╕рдирдХреЛ рдЕрдВрд╢ рд╣реЛ, рдХрдиреНрдЯреЗрдирд░ рдврд╛рдБрдЪрд╛рд╣рд░реВ рд░ рд░рдирдЯрд╛рдЗрдорд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ рдЦреБрд▓рд╛ рдЙрджреНрдпреЛрдЧ рдорд╛рдирдХрд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБ рд╣реЛ рдЬрд╕рд▓реЗ рдПрдХреИ рдкрдЯрдХ рдзреЗрд░реИ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрджрдЫред рдкрд╣рд┐рд▓реЛ, рддрд┐рдиреАрд╣рд░реВрд▓реЗ рд▓рд┐рдирдХреНрд╕рдХреЛ рджрд░реНрд╢рдирдХреЛ рд╡рд┐рд░реЛрдз рдЧрд░реЗрдирдиреН (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рд░реНрдпрдХреНрд░рдорд▓реЗ рдПрдХ рдХрд╛рд░реНрдп рдЧрд░реНрдиреБрдкрд░реНрджрдЫ рднрдиреНрдиреЗ рдЕрдВрд╢рдорд╛, рд░ рдбрдХрд░ рдПрдХ рдкреНрд░рдХрд╛рд░рдХреЛ рд╕рдмреИ-рдорд╛-рдПрдХ рд╕рдВрдпреЛрдЬрди рд╣реЛ)ред рджреЛрд╕реНрд░реЛ, рддрд┐рдиреАрд╣рд░реВрд▓реЗ рд╕рдлреНрдЯрд╡реЗрдпрд░рдорд╛ рдЕрд╡рд╕реНрдерд┐рдд рд╕рдмреИ рдХрдореАрд╣рд░реВ рд╣рдЯрд╛рдЙрди рд╕рдХреНрдереЗ рдбрдХрд░ред рддреЗрд╕реНрд░реЛ, рддрд┐рдиреАрд╣рд░реВ рдХрдиреНрдЯреЗрдирд░рд╛рдЗрдЬреНрдб рдПрдкреНрд▓рд┐рдХреЗрд╕рдирд╣рд░реВ (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, Red Hat OpenShift) рддреИрдирд╛рддреА, рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рд░ рд╕реЗрд╡рд╛рдХрд╛ рд▓рд╛рдЧрд┐ рдЕрдЧреНрд░рдгреА рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдкреНрд▓реЗрдЯрдлрд░реНрдорд╣рд░реВрдХреЛ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдЖрд╡рд╢реНрдпрдХрддрд╛рд╣рд░реВрд╕рдБрдЧ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдЙрдкрдпреБрдХреНрдд рд╣реБрдиреЗрдЫрдиреНред

рдХрдореАрдХрдордЬреЛрд░реА рдбрдХрд░ рд░ рдирдпрд╛рдБ рд╕рдлреНрдЯрд╡реЗрдпрд░рдХреЛ рдлрд╛рдЗрджрд╛рд╣рд░реВ рдкрд╣рд┐рд▓реЗ рдиреИ рд╡рд┐рд╕реНрддреГрдд рд░реВрдкрдорд╛ рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХреЛ рдЫ рдпреЛ рд▓реЗрдЦ, рд░ OCI рдкрд░рд┐рдпреЛрдЬрдирд╛ рднрд┐рддреНрд░ рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░рд┐рдПрдХреЛ рд╕рдореНрдкреВрд░реНрдг рд╕рдлреНрдЯрд╡реЗрдпрд░ рд╕реНрдЯреНрдпрд╛рдХ рд░ рдпрд╕рдХреЛ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВрдХреЛ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдХрд╛рдЧрдЬрд╛рддрд╣рд░реВ рд░ Red Hat рдмрд╛рдЯ рд▓реЗрдЦрд╣рд░реВрдорд╛ рдлреЗрд▓рд╛ рдкрд╛рд░реНрди рд╕рдХрд┐рдиреНрдЫ (рдирд░рд╛рдореНрд░реЛ рд╣реЛрдЗрдиред рд▓реЗрдЦ Red Hat рдмреНрд▓рдЧ) рд░ рддреЗрд╕реНрд░реЛ-рдкрдХреНрд╖рдорд╛ рд╕рдореАрдХреНрд╖рд╛рд╣рд░реВ.

рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╕реНрдЯреНрдпрд╛рдХрдХрд╛ рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВрдорд╛ рдХрд╕реНрддреЛ рдкреНрд░рдХрд╛рд░реНрдпрддрд╛ рдЫ рднрдиреЗрд░ рдзреНрдпрд╛рди рджрд┐рдиреБ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдЫ:

  • рдкреЛрдбрдореНрдпрд╛рди - runC рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдорд╛рд░реНрдлрдд рдХрдиреНрдЯреЗрдирд░ рд░ рдЫрд╡рд┐ рднрдгреНрдбрд╛рд░рдг рд╕рдВрдЧ рдкреНрд░рддреНрдпрдХреНрд╖ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛;
  • рдирд┐рд░реНрдорд╛рдг - рд░рдЬрд┐рд╕реНрдЯреНрд░реАрдорд╛ рдЫрд╡рд┐рд╣рд░реВ рд░ рдЕрдкрд▓реЛрдб рдЧрд░реНрджреИ;
  • CRI-O тАФ рдХрдиреНрдЯреЗрдирд░ рдЕрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрд╕рди рдкреНрд░рдгрд╛рд▓реАрдХрд╛ рд▓рд╛рдЧрд┐ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдпреЛрдЧреНрдп рд╡рд╛рддрд╛рд╡рд░рдг (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдХреБрдмрд░реНрдиреЗрдЯреНрд╕)ред

рдорд▓рд╛рдИ рд▓рд╛рдЧреНрдЫ рдХрд┐ рд╕реНрдЯреНрдпрд╛рдХрдХреЛ рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВ рдмреАрдЪрдХреЛ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдпреЛрдЬрдирд╛ рдмреБрдЭреНрди, рдпрд╣рд╛рдБ рдЬрдбрд╛рди рд░реЗрдЦрд╛рдЪрд┐рддреНрд░ рдкреНрд░рджрд╛рди рдЧрд░реНрди рд╕рд▓реНрд▓рд╛рд╣ рджрд┐рдЗрдиреНрдЫред рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ c рд░рди рд╕реА рд░ рдирд┐рдореНрди-рд╕реНрддрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИ CRI-O:

CRI-O рдбрдХрд░рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрдирдХреЛ рд░реВрдкрдорд╛ Kubernetes рдХреЛ рд▓рд╛рдЧрд┐ рд░рдирдЯрд╛рдЗрдо рд╡рд╛рддрд╛рд╡рд░рдгрдХреЛ рд░реВрдкрдорд╛: CentOS 8 рдорд╛ рд╕реЗрдЯрдЕрдк

CRI-O ╨╕ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рдЙрд╣реА рд░рд┐рд▓реАрдЬ рд░ рд╕рдорд░реНрдерди рдЪрдХреНрд░ рдкрд╛рд▓рди рдЧрд░реНрдиреБрд╣реЛрд╕реН (рд╕рдВрдЧрддрддрд╛ рдореНрдпрд╛рдЯреНрд░рд┐рдХреНрд╕ рдзреЗрд░реИ рд╕рд░рд▓ рдЫ: рдкреНрд░рдореБрдЦ рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ ╨╕ CRI-O рдореЗрд▓ рдЦрд╛рдиреНрдЫ), рд░ рдпреЛ, рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВ рджреНрд╡рд╛рд░рд╛ рдпрд╕ рд╕реНрдЯреНрдпрд╛рдХрдХреЛ рд╕рдЮреНрдЪрд╛рд▓рдирдХреЛ рдкреВрд░реНрдг рд░ рд╡реНрдпрд╛рдкрдХ рдкрд░реАрдХреНрд╖рдгрдорд╛ рдзреНрдпрд╛рди рдХреЗрдиреНрджреНрд░рд┐рдд рдЧрд░реНрджреИ, рд╣рд╛рдореАрд▓рд╛рдИ рдХреБрдиреИ рдкрдирд┐ рдкреНрд░рдпреЛрдЧ рдкрд░рд┐рджреГрд╢реНрдпрд╣рд░реВ (рд╕рд╛рдкреЗрдХреНрд╖ рд╣рд▓реНрдХрд╛рдкрди рдкрдирд┐ рдпрд╣рд╛рдБ рд▓рд╛рднрджрд╛рдпрдХ рдЫ) рдЕрдиреНрддрд░реНрдЧрдд рд╕рдЮреНрдЪрд╛рд▓рдирдорд╛ рдЕрдзрд┐рдХрддрдо рдкреНрд░рд╛рдкреНрдд рдпреЛрдЧреНрдп рд╕реНрдерд┐рд░рддрд╛рдХреЛ рдЖрд╢рд╛ рдЧрд░реНрдиреЗ рдЕрдзрд┐рдХрд╛рд░ рджрд┐рдиреНрдЫред CRI-O рддреБрд▓рдирд╛рдорд╛ рдбрдХрд░ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдЙрджреНрджреЗрд╢реНрдпрдкреВрд░реНрдг рд╕реАрдорд╛ рдХреЛ рдХрд╛рд░рдг)ред

рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрджрд╛ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ "рд╕рд╣реА рдмрд╛рдЯреЛ" рддрд░рд┐рдХрд╛ (OCI рдЕрдиреБрд╕рд╛рд░, рдЕрд╡рд╢реНрдп рдкрдирд┐) рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ CRI-O рдорд╛ CentOS 8 рд╣рд╛рдореАрд▓реЗ рдХреЗрд╣реА рд╕рд╛рдирд╛рддрд┐рдирд╛ рдХрдард┐рдирд╛рдЗрд╣рд░реВрдХреЛ рд╕рд╛рдордирд╛ рдЧрд░реНрдпреМрдВ, рдЬрд╕рд▓рд╛рдИ рд╣рд╛рдореАрд▓реЗ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкрд╛рд░ рдЧрд░реНрдпреМрдВред рдо рддрдкрд╛рдИрд╕рдБрдЧ рд╕реНрдерд╛рдкрдирд╛ рд░ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВ рд╕рд╛рдЭрд╛ рдЧрд░реНрди рдкрд╛рдЙрдБрджрд╛ рдЦреБрд╕реА рд╣реБрдиреЗрдЫреБ, рдЬрд╕рдорд╛ рдХреБрд▓ резреж рдорд┐рдиреЗрдЯ рд▓рд╛рдЧреНрдиреЗрдЫред

CRI-O рдлреНрд░реЗрдорд╡рд░реНрдХ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ CentOS 8 рдорд╛ Kubernetes рдХрд╕рд░реА рддреИрдирд╛рдд рдЧрд░реНрдиреЗ

рдЖрд╡рд╢реНрдпрдХрддрд╛рд╣рд░реВ: рдХрдореНрддрд┐рдорд╛ рдПрдХ рд╣реЛрд╕реНрдЯрдХреЛ рдЙрдкрд╕реНрдерд┐рддрд┐ (2 рдХреЛрд░, 4 GB RAM, рдХрдореНрддрд┐рдорд╛ 15 GB рднрдгреНрдбрд╛рд░рдг) рд╕реНрдерд╛рдкрдирд╛ рднрдПрдХреЛ CentOS 8 ("рд╕рд░реНрднрд░" рд╕реНрдерд╛рдкрдирд╛ рдкреНрд░реЛрдлрд╛рдЗрд▓ рд╕рд┐рдлрд╛рд░рд┐рд╕ рдЧрд░рд┐рдПрдХреЛ рдЫ), рд╕рд╛рдереИ рд╕реНрдерд╛рдиреАрдп DNS рдорд╛ рдпрд╕рдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рд╣рд░реВ (рдЕрдиреНрддрд┐рдо рдЙрдкрд╛рдпрдХреЛ рд░реВрдкрдорд╛, рддрдкрд╛рдЗрдБ /etc/hosts рдорд╛ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдХреЛ рд╕рд╛рде рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ)ред рд░ рдирдмрд┐рд░реНрд╕рдиреБрд╣реЛрд╕реН рд╕реНрд╡реИрдк рдЕрд╕рдХреНрд╖рдо рдЧрд░реНрдиреБрд╣реЛрд╕реН.

рд╣рд╛рдореА рд░реВрдЯ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рдХреЛ рд░реВрдкрдорд╛ рд╣реЛрд╕реНрдЯрдорд╛ рд╕рдмреИ рдХрд╛рд░реНрдпрд╣рд░реВ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрдЫреМрдВ, рд╕рд╛рд╡рдзрд╛рди рд░рд╣рдиреБрд╣реЛрд╕реНред

  1. рдкрд╣рд┐рд▓реЛ рдЪрд░рдгрдорд╛, рд╣рд╛рдореА OS рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрдиреЗрдЫреМрдВ, CRI-O рдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рд╛рд░рдореНрднрд┐рдХ рдирд┐рд░реНрднрд░рддрд╛рд╣рд░реВ рд╕реНрдерд╛рдкрдирд╛ рд░ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрдиреЗрдЫреМрдВред
    • OS рдЕрдкрдбреЗрдЯ рдЧрд░реМрдВ:
      dnf -y update
      

    • рдЕрд░реНрдХреЛ рддрдкрд╛рдИрдВрд▓реЗ рдлрд╛рдпрд░рд╡рд╛рд▓ рд░ SELinux рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рдпрд╣рд╛рдБ рд╕рдмреИ рдХреБрд░рд╛ рд╣рд╛рдореНрд░реЛ рд╣реЛрд╕реНрдЯ рд╡рд╛ рд╣реЛрд╕реНрдЯрд╣рд░реВрд▓реЗ рдХрд╛рдо рдЧрд░реНрдиреЗ рд╡рд╛рддрд╛рд╡рд░рдгрдорд╛ рдирд┐рд░реНрднрд░ рдЧрд░реНрджрдЫред рддрдкрд╛рдИрдВ рдпрд╛ рдд рдмрд╛рдЯ рд╕рд┐рдлрд╛рд░рд┐рд╕рд╣рд░реВ рдЕрдиреБрд╕рд╛рд░ рдлрд╛рдпрд░рд╡рд╛рд▓ рд╕реЗрдЯрдЕрдк рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдХрд╛рдЧрдЬрд╛рдд, рд╡рд╛, рдпрджрд┐ рддрдкрд╛рдИрдВ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдиреЗрдЯрд╡рд░реНрдХрдорд╛ рд╣реБрдиреБрд╣реБрдиреНрдЫ рд╡рд╛ рддреЗрд╕реНрд░реЛ-рдкрдХреНрд╖ рдлрд╛рдпрд░рд╡рд╛рд▓ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреНрд╖реЗрддреНрд░рд▓рд╛рдИ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрдорд╛ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдиреБрд╣реЛрд╕реН рд╡рд╛ рдлрд╛рдпрд░рд╡рд╛рд▓ рдмрдиреНрдж рдЧрд░реНрдиреБрд╣реЛрд╕реН:
      firewall-cmd --set-default-zone trusted
      
      firewall-cmd --reload

      рдлрд╛рдпрд░рд╡рд╛рд▓ рдмрдиреНрдж рдЧрд░реНрди рддрдкрд╛рдИрдВрд▓реЗ рдирд┐рдореНрди рдЖрджреЗрд╢ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ:

      systemctl disable --now firewalld
      

      SELinux рд▓рд╛рдИ рдмрдиреНрдж рдЧрд░реНрди рд╡рд╛ "рдЕрдиреБрдорддрд┐ рджрд┐рдиреЗ" рдореЛрдбрдорд╛ рд╕реНрд╡рд┐рдЪ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ:

      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, рдкрд╣рд┐рд▓реЗ рдиреИ рдЙрд▓реНрд▓реЗрдЦ рдЧрд░рд┐рдП рдЕрдиреБрд╕рд╛рд░, рдЖрд╡рд╢реНрдпрдХ рд╕рдВрд╕реНрдХрд░рдг рдорд┐рд▓рд╛рдЙрдиреБрд╣реЛрд╕реН рдХреБрдмрд░реНрдиреЗрдЯреНрд╕), рдкрдЫрд┐рд▓реНрд▓реЛ рд╕реНрдерд┐рд░ рд╕рдВрд╕реНрдХрд░рдг рджреЗрдЦрд┐ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рд╣рд╛рд▓ рез.резрео:
      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 рд╕реЗрд╡рд╛ рд╕реБрд░реБ рдЧрд░реНрдиреБ рдЕрдШрд┐, рдЖрд╡рд╢реНрдпрдХ рдХрдиреНрдореЛрди рдХрдореНрдкреЛрдиреЗрдиреНрдЯ рддреЛрдХрд┐рдПрдХреЛ рднрдиреНрджрд╛ рдлрд░рдХ рд╕реНрдерд╛рди рднрдПрдХреЛ рд╣реБрдирд╛рд▓реЗ:

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

      рдЕрдм рддрдкрд╛рдЗрдБ рдбреЗрдорди рд╕рдХреНрд░рд┐рдп рд░ рд╕реБрд░реБ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ CRI-O:

      systemctl enable --now crio
      

      рддрдкрд╛рдИрдВ рдбреЗрдорди рд╕реНрдерд┐рддрд┐ рдЬрд╛рдБрдЪ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ:

      systemctl status crio
      

  2. рд╕реНрдерд╛рдкрдирд╛ рд░ рд╕рдХреНрд░рд┐рдпрддрд╛ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕.
    • рдЖрд╡рд╢реНрдпрдХ рднрдгреНрдбрд╛рд░ рдердкреМрдВ:
      cat <<EOF > /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
      

      рдЕрдм рд╣рд╛рдореА рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди рд╕рдХреНрдЫреМрдВ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ (рд╕рдВрд╕реНрдХрд░рдг рез.резрео, рдорд╛рдерд┐ рдЙрд▓реНрд▓реЗрдЦ рдЧрд░рд┐рдП рдЕрдиреБрд╕рд╛рд░):

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

    • рджреЛрд╕реНрд░реЛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг nuance: рд╣рд╛рдореА рдбреЗрдорди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИрдиреМрдВ рдбрдХрд░, рддрд░ рд╣рд╛рдореА рдбреЗрдорди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫреМрдВ CRI-O, рдкреНрд░рдХреНрд╖реЗрдкрдг рд░ рдкреНрд░рд╛рд░рдореНрдн рдЧрд░реНрдиреБ рдЕрдШрд┐ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рддрдкрд╛рдИрдВрд▓реЗ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдлрд╛рдЗрд▓ /var/lib/kubelet/config.yaml рдорд╛ рдЙрдкрдпреБрдХреНрдд рд╕реЗрдЯрд┐рдЩрд╣рд░реВ рдмрдирд╛рдЙрди рдЖрд╡рд╢реНрдпрдХ рдЫ, рдкрд╣рд┐рд▓реЗ рдЗрдЪреНрдЫрд┐рдд рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реА рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реЗрд░:
      mkdir /var/lib/kubelet
      
      cat <<EOF > /var/lib/kubelet/config.yaml
      apiVersion: kubelet.config.k8s.io/v1beta1
      kind: KubeletConfiguration
      cgroupDriver: systemd
      EOF

    • рддреЗрд╕реНрд░реЛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдмрд┐рдиреНрджреБ рдЬреБрди рд╣рд╛рдореАрд▓реЗ рд╕реНрдерд╛рдкрдирд╛рдХреЛ рдХреНрд░рдордорд╛ рд╕рд╛рдордирд╛ рдЧрд░реНрдЫреМрдВ: рд╣рд╛рдореАрд▓реЗ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХреЛ рдбреНрд░рд╛рдЗрднрд░рд▓рд╛рдИ рд╕рдВрдХреЗрдд рдЧрд░реЗрдХрд╛ рдЫреМрдВ рднрдиреНрдиреЗ рддрдереНрдпрдХреЛ рдмрд╛рд╡рдЬреБрдж cgroup, рд░ рддрд░реНрдХрд╣рд░реВ рдорд╛рд░реНрдлрдд рдпрд╕рдХреЛ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдкрд╛рд░рд┐рдд рднрдпреЛ рдХреБрдмрд▓реЗрдЯ рдкреБрд░рд╛рдиреЛ рдЫ (рдЬрд╕реНрддреИ рдХрд╛рдЧрдЬрд╛рддрдорд╛ рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛ рднрдирд┐рдПрдХреЛ рдЫ), рд╣рд╛рдореАрд▓реЗ рдлрд╛рдЗрд▓рдорд╛ рддрд░реНрдХрд╣рд░реВ рдердкреНрди рдЖрд╡рд╢реНрдпрдХ рдЫ, рдЕрдиреНрдпрдерд╛ рд╣рд╛рдореНрд░реЛ рдХреНрд▓рд╕реНрдЯрд░ рд╕реБрд░реБ рд╣реБрдиреЗрдЫреИрди:
      cat /dev/null > /etc/sysconfig/kubelet
      
      cat <<EOF > /etc/sysconfig/kubelet
      KUBELET_EXTRA_ARGS=--container-runtime=remote --cgroup-driver=systemd --container-runtime-endpoint='unix:///var/run/crio/crio.sock'
      EOF

    • рдЕрдм рд╣рд╛рдореА рдбреЗрдорди рд╕рдХреНрд░рд┐рдп рдЧрд░реНрди рд╕рдХреНрдЫреМрдВ рдХреБрдмрд▓реЗрдЯ:
      sudo systemctl enable --now kubelet
      

      рдЕрдиреБрдХреВрд▓рди рдЧрд░реНрди рдирд┐рдпрдиреНрддреНрд░рдг рд╡рд┐рдорд╛рди рд╡рд╛ рдХрд╛рдорджрд╛рд░ рдорд┐рдиреЗрдЯрдорд╛ рдиреЛрдбрд╣рд░реВ, рддрдкрд╛рдИрдВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдпреЛ рд▓рд┐рдкрд┐ рд╕рдВрдЧ.

  3. рдпреЛ рд╣рд╛рдореНрд░реЛ рдХреНрд▓рд╕реНрдЯрд░ рд╕реБрд░реБ рдЧрд░реНрдиреЗ рд╕рдордп рд╣реЛред
    • рдХреНрд▓рд╕реНрдЯрд░ рд╕реБрд░реБ рдЧрд░реНрди, рдЖрджреЗрд╢ рдЪрд▓рд╛рдЙрдиреБрд╣реЛрд╕реН:
      kubeadm init --pod-network-cidr=10.244.0.0/16
      

      рдХреНрд▓рд╕реНрдЯрд░ "kubeadm join тАж" рдорд╛ рд╕рд╛рдореЗрд▓ рд╣реБрди рдЖрджреЗрд╢ рд▓реЗрдЦреНрди рдирд┐рд╢реНрдЪрд┐рдд рд╣реБрдиреБрд╣реЛрд╕реН, рдЬреБрди рддрдкрд╛рдЗрдБрд▓рд╛рдИ рдЖрдЙрдЯрдкреБрдЯрдХреЛ рдЕрдиреНрддреНрдпрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рднрдирд┐рдПрдХреЛ рдЫ, рд╡рд╛ рдХрдореНрддрд┐рдорд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЯреЛрдХрдирд╣рд░реВред

    • Pod рдиреЗрдЯрд╡рд░реНрдХрдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд▓рдЧрдЗрди (CNI) рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реМрдВред рдо рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рд┐рдлрд╛рд░рд┐рд╕ рдЧрд░реНрджрдЫреБ Calicoред рд╕рдореНрднрд╡рддрдГ рдЕрдзрд┐рдХ рд▓реЛрдХрдкреНрд░рд┐рдп рдлреНрд▓реНрдпрд╛рдирд▓ рд╕рдВрдЧ рдЕрдиреБрдХреВрд▓рддрд╛ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рдЫрдиреН nftables, рд╣реЛ рд░ Calico - рдкрд░рд┐рдпреЛрдЬрдирд╛ рджреНрд╡рд╛рд░рд╛ рд╕рд┐рдлрд╛рд░рд┐рд╕ рдЧрд░рд┐рдПрдХреЛ рд░ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдкрд░реАрдХреНрд╖рдг рдЧрд░рд┐рдПрдХреЛ рдорд╛рддреНрд░ CNI рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреБрдмрд░реНрдиреЗрдЯреНрд╕:
      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 рдХреЛ рдкрд╣рд▓рд╣рд░реВрд▓реЗ рдХреЗрд╣реА рд╡рд░реНрд╖рд╣рд░реВрдорд╛ рдХреЗ рдирд┐рдореНрддреНрдпрд╛рдЙрдБрдЫ рднрдиреНрдиреЗ рдХреБрд░рд╛ рдЕрдЭреИ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рд╕реНрдкрд╖реНрдЯ рдЫреИрди, рддрд░ рд╣рд╛рдореА рдЦреБрд╕реАрд╕рд╛рде рд╣реЗрд░реНрдиреЗрдЫреМрдВред рддрдкрд╛рдИрдВ рдЕрд╣рд┐рд▓реЗ рдЖрдлреНрдиреЛ рд╡рд┐рдЪрд╛рд░ рдХрдореЗрдиреНрдЯ рдорд╛ рд╕рд╛рдЭрд╛ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред

рд░рд╣рдиреБрд╣реЛрд╕реН!

рдпреЛ рд▓реЗрдЦ рдирд┐рдореНрди рд╕реНрд░реЛрддрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдзрдиреНрдпрд╡рд╛рдж рджреЗрдЦрд╛ рдкрд░реНтАНрдпреЛ:



рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди