рдирдорд╕реНрдХрд╛рд░! рдорд╛рдЭреЗ рдирд╛рд╡ рд╕реЗрд░реНрдЧреЗ рдЖрд╣реЗ, рдореА рд╕рд░реНрдл рдпреЗрдереЗ DevOps рдЖрд╣реЗ. Surf рдордзреАрд▓ DevOps рд╡рд┐рднрд╛рдЧрд╛рдЪреЗ рдЙрджреНрджрд┐рд╖реНрдЯ рдХреЗрд╡рд│ рддрдЬреНрдЮрд╛рдВрдордзреАрд▓ рдкрд░рд╕реНрдкрд░рд╕рдВрд╡рд╛рдж рдкреНрд░рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреЗ рдЖрдгрд┐ рдХрд╛рд░реНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛рдВрдЪреЗ рдПрдХрддреНрд░реАрдХрд░рдг рдХрд░рдгреЗ рд╣реЗрдЪ рдирд╛рд╣реА рддрд░ рддреНрдпрд╛рдВрдЪреНрдпрд╛ рд╕реНрд╡рддрдГрдЪреНрдпрд╛ рдкрд╛рдпрд╛рднреВрдд рд╕реБрд╡рд┐рдзрд╛рдВрдордзреНрдпреЗ рдЖрдгрд┐ рдЧреНрд░рд╛рд╣рдХрд╛рдВрдЪреНрдпрд╛ рдкрд╛рдпрд╛рднреВрдд рд╕реБрд╡рд┐рдзрд╛рдВрдордзреНрдпреЗ рдЪрд╛рд▓реВ рддрдВрддреНрд░рдЬреНрдЮрд╛рдирд╛рдЪреЗ рд╕рдХреНрд░рд┐рдпрдкрдгреЗ рд╕рдВрд╢реЛрдзрди рдЖрдгрд┐ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдХрд░рдгреЗ рджреЗрдЦреАрд▓ рдЖрд╣реЗ.
рд╡рд┐рддрд░рдгрд╛рдЪрд╛ рдЕрднреНрдпрд╛рд╕ рдХрд░рддрд╛рдирд╛ рдЖрдореНрд╣рд╛рд▓рд╛ рдЖрд▓реЗрд▓реНрдпрд╛ рдХрдВрдЯреЗрдирд░рд╕рд╛рдареА рддрдВрддреНрд░рдЬреНрдЮрд╛рди рд╕реНрдЯреЕрдХрдордзреАрд▓ рдмрджрд▓рд╛рдВрдмрджреНрджрд▓ рдЦрд╛рд▓реА рдореА рдереЛрдбреЗрд╕реЗ рдмреЛрд▓реЗрди CentOS 8 рдЖрдгрд┐ рддреЗ рдХрд╛рдп рдЖрд╣реЗ рдпрд╛рдмрджреНрджрд▓ CRI-O рдЖрдгрд┐ рдпрд╛рд╕рд╛рдареА рдПрдХреНрдЭрд┐рдХреНрдпреБрдЯреЗрдмрд▓ рд╡рд╛рддрд╛рд╡рд░рдг рддреНрд╡рд░реАрдд рдХрд╕реЗ рд╕реЗрдЯ рдХрд░рд╛рд╡реЗ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕.
рдбреЙрдХрд░ CentOS 8 рдордзреНрдпреЗ рдХрд╛ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдирд╛рд╣реА?
рдирд╡реАрдирддрдо рдкреНрд░рдореБрдЦ рдкреНрд░рдХрд╛рд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реНрдпрд╛рдирдВрддрд░ рд░рд╛рд╣реЗрд▓ 8 рдХрд┐рдВрд╡рд╛ CentOS 8 рдХреЛрдгреАрд╣реА рдорджрдд рдХрд░реВ рд╢рдХрдд рдирд╛рд╣реА рдкрд░рдВрддреБ рд▓рдХреНрд╖рд╛рдд рдШреНрдпрд╛: рдпрд╛ рд╡рд┐рддрд░рдгрд╛рдВрдордзреНрдпреЗ рдЖрдгрд┐ рдЕрдзрд┐рдХреГрдд рднрд╛рдВрдбрд╛рд░рд╛рдВрдордзреНрдпреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдирд╛рд╣реА рдЧреЛрджреА рдХрд╛рдордЧрд╛рд░, рдЬреЗ рд╡реИрдЪрд╛рд░рд┐рдХ рдЖрдгрд┐ рдХрд╛рд░реНрдпрд╛рддреНрдордХрдкрдгреЗ рдкреЕрдХреЗрдЬреЗрд╕ рдмрджрд▓рддрд╛рдд рдкреЛрдбрдореЕрди, рдмрд┐рд▓реНрдбрд╛рд╣ (рдбрд┐рдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░ рд╡рд┐рддрд░рдгрд╛рдордзреНрдпреЗ рдЙрдкрд╕реНрдерд┐рдд) рдЖрдгрд┐ CRI-O. рд╣реЗ Red Hat рджреНрд╡рд╛рд░реЗ рдУрдкрди рдХрдВрдЯреЗрдирд░ рдЗрдирд┐рд╢рд┐рдПрдЯрд┐рд╡реНрд╣ (OCI) рдкреНрд░рдХрд▓реНрдкрд╛рдЪрд╛ рднрд╛рдЧ рдореНрд╣рдгреВрди рд╡рд┐рдХрд╕рд┐рдд рдХреЗрд▓реЗрд▓реНрдпрд╛ рдорд╛рдирдХрд╛рдВрдЪреНрдпрд╛ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдореБрд│реЗ рдЖрд╣реЗ.
рд▓рд┐рдирдХреНрд╕ рдлрд╛рдКрдВрдбреЗрд╢рдирдЪрд╛ рднрд╛рдЧ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдУрд╕реАрдЖрдпрдЪреЗ рдЙрджреНрджрд┐рд╖реНрдЯ рдХрдВрдЯреЗрдирд░ рдлреЙрд░рдореЕрдЯреНрд╕ рдЖрдгрд┐ рд░рдирдЯрд╛рдЗрдореНрд╕рд╕рд╛рдареА рдЦреБрд▓реНрдпрд╛ рдЙрджреНрдпреЛрдЧ рдорд╛рдирдХреЗ рддрдпрд╛рд░ рдХрд░рдгреЗ рдЖрд╣реЗ рдЬреЗ рдПрдХрд╛рдЪ рд╡реЗрд│реА рдЕрдиреЗрдХ рд╕рдорд╕реНрдпрд╛ рд╕реЛрдбрд╡рддрд╛рдд. рдкреНрд░рдердо, рддреНрдпрд╛рдВрдиреА рд▓рд┐рдирдХреНрд╕рдЪреНрдпрд╛ рддрддреНрддреНрд╡рдЬреНрдЮрд╛рдирд╛рдЪрд╛ рд╡рд┐рд░реЛрдз рдХреЗрд▓рд╛ рдирд╛рд╣реА (рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдордиреЗ рдПрдХ рдХреНрд░рд┐рдпрд╛ рдХреЗрд▓реА рдкрд╛рд╣рд┐рдЬреЗ рдпрд╛ рднрд╛рдЧрд╛рдордзреНрдпреЗ, рдЖрдгрд┐ рдЧреЛрджреА рдХрд╛рдордЧрд╛рд░ рдПрдХ рдкреНрд░рдХрд╛рд░рдЪрд╛ рдСрд▓-рдЗрди-рд╡рди рдХреЙрдореНрдмрд╛рдЗрди рдЖрд╣реЗ). рджреБрд╕рд░реЗ рдореНрд╣рдгрдЬреЗ, рддреЗ рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░рдордзреАрд▓ рд╕рд░реНрд╡ рд╡рд┐рджреНрдпрдорд╛рди рдХрдорддрд░рддрд╛ рджреВрд░ рдХрд░реВ рд╢рдХрддрд╛рдд рдЧреЛрджреА рдХрд╛рдордЧрд╛рд░. рддрд┐рд╕рд░реЗ, рддреЗ рдХрдВрдЯреЗрдирд░реАрдХреГрдд рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ (рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, Red Hat OpenShift) рддреИрдирд╛рдд рдХрд░рдгреЗ, рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреЗ рдЖрдгрд┐ рд╕рд░реНрд╡реНрд╣ рдХрд░рдгреЗ рдпрд╛рд╕рд╛рдареА рдЕрдЧреНрд░рдЧрдгреНрдп рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдкреНрд▓реЕрдЯрдлреЙрд░реНрдордЪреНрдпрд╛ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдЖрд╡рд╢реНрдпрдХрддрд╛рдВрд╢реА рдкреВрд░реНрдгрдкрдгреЗ рд╕реБрд╕рдВрдЧрдд рдЕрд╕реЗрд▓.
рдЙрдгреАрд╡рд╛ рдЧреЛрджреА рдХрд╛рдордЧрд╛рд░ рдЖрдгрд┐ рдирд╡реАрди рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░рдЪреЗ рдлрд╛рдпрджреЗ рдЖрдзреАрдЪ рдХрд╛рд╣реА рддрдкрд╢реАрд▓рд╡рд╛рд░ рд╡рд░реНрдгрди рдХреЗрд▓реЗ рдЖрд╣реЗрдд
рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╕реНрдЯреЕрдХрдЪреНрдпрд╛ рдШрдЯрдХрд╛рдВрдордзреНрдпреЗ рдХреЛрдгрддреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЖрд╣реЗ рд╣реЗ рд▓рдХреНрд╖рд╛рдд рдШреЗрдгреЗ рдорд╣рддреНрддреНрд╡рд╛рдЪреЗ рдЖрд╣реЗ:
- рдкреЛрдбрдореЕрди тАФ runC рдкреНрд░рдХреНрд░рд┐рдпреЗрджреНрд╡рд╛рд░реЗ рдХрдВрдЯреЗрдирд░ рдЖрдгрд┐ рдЗрдореЗрдЬ рд╕реНрдЯреЛрд░реЗрдЬрд╕рд╣ рдереЗрдЯ рд╕рдВрд╡рд╛рдж;
- рдмрд┐рд▓реНрдбрд╛рд╣ тАФ рдЕрд╕реЗрдВрдмреНрд▓реА рдЖрдгрд┐ рд░реЗрдЬрд┐рд╕реНрдЯреНрд░реАрдордзреНрдпреЗ рдкреНрд░рддрд┐рдорд╛ рдЕрдкрд▓реЛрдб рдХрд░рдгреЗ;
- CRI-O тАФ рдХрдВрдЯреЗрдирд░ рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрд╢рди рд╕рд┐рд╕реНрдЯрдорд╕рд╛рдареА рдПрдХ рдПрдХреНрдЭрд┐рдХреНрдпреВрдЯреЗрдмрд▓ рд╡рд╛рддрд╛рд╡рд░рдг (рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдХреБрдмрд░реНрдиреЗрдЯреНрд╕).
рдорд▓рд╛ рд╡рд╛рдЯрддреЗ рдХреА рд╕реНрдЯреЕрдХрдЪреНрдпрд╛ рдШрдЯрдХрд╛рдВрдордзреАрд▓ рдкрд░рд╕реНрдкрд░рд╕рдВрд╡рд╛рджрд╛рдЪреА рд╕рд╛рдорд╛рдиреНрдп рдпреЛрдЬрдирд╛ рд╕рдордЬреВрди рдШреЗрдгреНрдпрд╛рд╕рд╛рдареА, рдпреЗрдереЗ рдХрдиреЗрдХреНрд╢рди рдЖрдХреГрддреА рдкреНрд░рджрд╛рди рдХрд░рдгреЗ рдЙрдЪрд┐рдд рдЖрд╣реЗ. рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ c runC рдЖрдгрд┐ рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рд▓рд╛рдпрдмреНрд░рд░реА рд╡рд╛рдкрд░реВрди CRI-O:
CRI-O ╨╕ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╕рдорд╛рди рдкреНрд░рдХрд╛рд╢рди рдЖрдгрд┐ рд╕рдорд░реНрдерди рдЪрдХреНрд░рд╛рдЪреЗ рдкрд╛рд▓рди рдХрд░рд╛ (рд╕реБрд╕рдВрдЧрддрддрд╛ рдореЕрдЯреНрд░рд┐рдХреНрд╕ рдЦреВрдк рд╕реЛрдкреЗ рдЖрд╣реЗ: рдкреНрд░рдореБрдЦ рдЖрд╡реГрддреНрддреНрдпрд╛ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ ╨╕ CRI-O рдПрдХрд╕рдорд╛рди), рдЖрдгрд┐ рд╣реЗ, рд╡рд┐рдХрд╛рд╕рдХрд╛рдВрджреНрд╡рд╛рд░реЗ рдпрд╛ рд╕реНрдЯреЕрдХрдЪреНрдпрд╛ рдСрдкрд░реЗрд╢рдирдЪреНрдпрд╛ рдкреВрд░реНрдг рдЖрдгрд┐ рд╡реНрдпрд╛рдкрдХ рдЪрд╛рдЪрдгреАрд╡рд░ рд▓рдХреНрд╖ рдХреЗрдВрджреНрд░рд┐рдд рдХреЗрд▓реНрдпрд╛рдиреЗ, рдЖрдореНрд╣рд╛рд▓рд╛ рдХреЛрдгрддреНрдпрд╛рд╣реА рд╡рд╛рдкрд░рд╛рдЪреНрдпрд╛ рдкрд░рд┐рд╕реНрдерд┐рддреАрдд рдСрдкрд░реЗрд╢рдирдордзреНрдпреЗ рдЬрд╛рд╕реНрддреАрдд рдЬрд╛рд╕реНрдд рд╕рд╛рдзреНрдп рдХрд░рдгреНрдпрд╛рдпреЛрдЧреНрдп рд╕реНрдерд┐рд░рддреЗрдЪреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рдгреНрдпрд╛рдЪрд╛ рдЕрдзрд┐рдХрд╛рд░ рджреЗрддреЗ (рд╕рд╛рдкреЗрдХреНрд╖ рд╣рд▓рдХреАрдкрдгрд╛ рджреЗрдЦреАрд▓ рдпреЗрдереЗ рдлрд╛рдпрджреЗрд╢реАрд░ рдЖрд╣реЗ. CRI-O рдЪреНрдпрд╛ рддреБрд▓рдиреЗрдд рдЧреЛрджреА рдХрд╛рдордЧрд╛рд░ рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрдЪреНрдпрд╛ рдЙрджреНрджреЗрд╢рдкреВрд░реНрдг рдорд░реНрдпрд╛рджреЗрдореБрд│реЗ).
рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛рдирд╛ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ "рдпреЛрдЧреНрдп рдорд╛рд░реНрдЧ" рдорд╛рд░реНрдЧ (OCI рдиреБрд╕рд╛рд░, рдЕрд░реНрдерд╛рддрдЪ) рд╡рд╛рдкрд░рдгреЗ CRI-O рд╡рд░ CentOS 8 рдЖрдореНрд╣рд╛рд▓рд╛ рдХрд╛рд╣реА рдХрд┐рд░рдХреЛрд│ рдЕрдбрдЪрдгреА рдЖрд▓реНрдпрд╛, рдЬреНрдпрд╛рд╡рд░ рдЖрдореНрд╣реА рдпрд╢рд╕реНрд╡реАрдкрдгреЗ рдорд╛рдд рдХреЗрд▓реА. рдорд▓рд╛ рддреБрдордЪреНрдпрд╛рд╕реЛрдмрдд рд╕реНрдерд╛рдкрдирд╛ рдЖрдгрд┐ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рд╕реВрдЪрдирд╛ рд╕рд╛рдорд╛рдпрд┐рдХ рдХрд░рдгреНрдпрд╛рдд рдЖрдирдВрдж рд╣реЛрдИрд▓, рдЬреНрдпрд╛рд╕ рдПрдХреВрдг рд╕реБрдорд╛рд░реЗ 10 рдорд┐рдирд┐рдЯреЗ рд▓рд╛рдЧрддреАрд▓.
CRI-O рдлреНрд░реЗрдорд╡рд░реНрдХ рд╡рд╛рдкрд░реВрди CentOS 8 рд╡рд░ Kubernetes рдХрд╕реЗ рддреИрдирд╛рдд рдХрд░рд╛рд╡реЗ
рдкреВрд░реНрд╡рддрдпрд╛рд░реА: рдХрдореАрддрдХрдореА рдПрдХрд╛ рд╣реЛрд╕реНрдЯрдЪреА рдЙрдкрд╕реНрдерд┐рддреА (2 рдХреЛрд░, 4 рдЬреАрдмреА рд░реЕрдо, рдХрд┐рдорд╛рди 15 рдЬреАрдмреА рд╕реНрдЯреЛрд░реЗрдЬ) рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реЗрд▓реЗ CentOS 8 (тАЬрд╕рд░реНрд╡реНрд╣рд░тАЭ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдкреНрд░реЛрдлрд╛рдЗрд▓рдЪреА рд╢рд┐рдлрд╛рд░рд╕ рдХреЗрд▓реА рдЬрд╛рддреЗ), рддрд╕реЗрдЪ рд╕реНрдерд╛рдирд┐рдХ DNS рдордзреАрд▓ рдиреЛрдВрджреА (рд╢реЗрд╡рдЯрдЪрд╛ рдЙрдкрд╛рдп рдореНрд╣рдгреВрди, рддреБрдореНрд╣реА /etc/hosts рдордзреАрд▓ рдПрдВрдЯреНрд░реАрд╕рд╣ рдорд┐рд│рд╡реВ рд╢рдХрддрд╛). рдЖрдгрд┐ рд╡рд┐рд╕рд░реВ рдирдХрд╛
рдЖрдореНрд╣реА рд░реВрдЯ рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдореНрд╣рдгреВрди рд╣реЛрд╕реНрдЯрд╡рд░ рд╕рд░реНрд╡ рдСрдкрд░реЗрд╢рдиреНрд╕ рдХрд░рддреЛ, рдХрд╛рд│рдЬреА рдШреНрдпрд╛.
- рдкрд╣рд┐рд▓реНрдпрд╛ рдЪрд░рдгрд╛рдд, рдЖрдореНрд╣реА OS рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░реВ, CRI-O рд╕рд╛рдареА рдкреНрд░рд╛рдердорд┐рдХ рдЕрд╡рд▓рдВрдмрди рд╕реНрдерд╛рдкрд┐рдд рдХрд░реВ рдЖрдгрд┐ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░реВ.
- рдЪрд▓рд╛ рдУрдПрд╕ рдЕрдкрдбреЗрдЯ рдХрд░реВрдпрд╛:
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, рдЖрдзреАрдЪ рдирдореВрдж рдХреЗрд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ, рдЖрд╡рд╢реНрдпрдХ рдЖрд╡реГрддреНрддреАрд╢реА рдЬреБрд│рд╡рд╛ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕), рдирд╡реАрдирддрдо рд╕реНрдерд┐рд░ рдЖрд╡реГрддреНрддреА рдкрд╛рд╕реВрди рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╕рдзреНрдпрд╛ 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 рд╕реЗрд╡рд╛ рд╕реБрд░реВ рдХрд░рдгреНрдпрд╛рдкреВрд░реНрд╡реА, рдХрд╛рд░рдг рдЖрд╡рд╢реНрдпрдХ рдХреЙрдорди рдШрдЯрдХрд╛рдЪреЗ рд╕реНрдерд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗрд▓реЗрд▓реНрдпрд╛рдкреЗрдХреНрд╖рд╛ рд╡реЗрдЧрд│реЗ рдЖрд╣реЗ:
sed -i 's//usr/libexec/crio/conmon//usr/bin/conmon/' /etc/crio/crio.conf
рдЖрддрд╛ рддреБрдореНрд╣реА рдбрд┐рдорди рд╕рдХреНрд░рд┐рдп рдЖрдгрд┐ рд╕реБрд░реВ рдХрд░реВ рд╢рдХрддрд╛ CRI-O:
systemctl enable --now crio
рдЖрдкрдг рдбрд┐рдорди рд╕реНрдерд┐рддреА рддрдкрд╛рд╕реВ рд╢рдХрддрд╛:
systemctl status crio
- рдЪрд▓рд╛ рдУрдПрд╕ рдЕрдкрдбреЗрдЯ рдХрд░реВрдпрд╛:
- рд╕реНрдерд╛рдкрдирд╛ рдЖрдгрд┐ рд╕рдХреНрд░рд┐рдпрдХрд░рдг рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕.
- рдЪрд▓рд╛ рдЖрд╡рд╢реНрдпрдХ рд░реЗрдкреЙрдЬрд┐рдЯрд░реА рдЬреЛрдбреВрдпрд╛:
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
рдЖрддрд╛ рдЖрдореНрд╣реА рд╕реНрдерд╛рдкрд┐рдд рдХрд░реВ рд╢рдХрддреЛ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ (рдЖрд╡реГрддреНрддреА 1.18, рд╡рд░ рдирдореВрдж рдХреЗрд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ):
dnf install -y kubelet-1.18* kubeadm-1.18* kubectl-1.18* --disableexcludes=kubernetes
- рджреБрд╕рд░реА рдорд╣рддреНрддреНрд╡рд╛рдЪреА рд╕реВрдХреНрд╖реНрдорддрд╛: рдЖрдореНрд╣реА рдбрд┐рдорди рд╡рд╛рдкрд░рдд рдирд╛рд╣реА рдЧреЛрджреА рдХрд╛рдордЧрд╛рд░, рдкрд░рдВрддреБ рдЖрдореНрд╣реА рдбрд┐рдорди рд╡рд╛рдкрд░рддреЛ 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
рд╕рд╛рдиреБрдХреВрд▓ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдирд┐рдпрдВрддреНрд░рдг рд╡рд┐рдорд╛рди рдХрд┐рдВрд╡рд╛ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдорд┐рдирд┐рдЯрд╛рдВрдд рдиреЛрдбреНрд╕, рддреБрдореНрд╣реА рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛
рдпрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд╕рд╣ .
- рдЪрд▓рд╛ рдЖрд╡рд╢реНрдпрдХ рд░реЗрдкреЙрдЬрд┐рдЯрд░реА рдЬреЛрдбреВрдпрд╛:
- рдЖрдордЪреЗ рдХреНрд▓рд╕реНрдЯрд░ рд╕реБрд░реВ рдХрд░рдгреНрдпрд╛рдЪреА рд╡реЗрд│ рдЖрд▓реА рдЖрд╣реЗ.
- рдХреНрд▓рд╕реНрдЯрд░ рд╕реБрд░реВ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдХрдорд╛рдВрдб рдЪрд╛рд▓рд╡рд╛:
kubeadm init --pod-network-cidr=10.244.0.0/16
"kubeadm join тАж" рдХреНрд▓рд╕реНрдЯрд░рдордзреНрдпреЗ рд╕рд╛рдореАрд▓ рд╣реЛрдгреНрдпрд╛рд╕рд╛рдареА рдХрдорд╛рдВрдб рд▓рд┐рд╣рд╛ рдпрд╛рдЪреА рдЦрд╛рддреНрд░реА рдХрд░рд╛, рдЬреА рддреБрдореНрд╣рд╛рд▓рд╛ рдЖрдЙрдЯрдкреБрдЯрдЪреНрдпрд╛ рд╢реЗрд╡рдЯреА рдХрд┐рдВрд╡рд╛ рдХрд┐рдорд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЯреЛрдХрди рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕ рд╕рд╛рдВрдЧрд┐рддрд▓реЗ рдЬрд╛рддреЗ.
- рдкреЙрдб рдиреЗрдЯрд╡рд░реНрдХрд╕рд╛рдареА рдкреНрд▓рдЧрдЗрди (CNI) рд╕реНрдерд╛рдкрд┐рдд рдХрд░реВрдпрд╛. рдореА рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА рд╢рд┐рдлрд╛рд░рд╕ рдХрд░рддреЛ рдХреЗрд▓рд┐рдХреЛ. рд╢рдХреНрдпрддреЛ рдЕрдзрд┐рдХ рд▓реЛрдХрдкреНрд░рд┐рдп рдлреНрд▓реЕрдиреЗрд▓ рд╕рд╣ рд╕реБрд╕рдВрдЧрддрддрд╛ рд╕рдорд╕реНрдпрд╛ рдЖрд╣реЗрдд nftables, рд╣реЛ рдЖрдгрд┐ рдХреЗрд▓рд┐рдХреЛ - рдкреНрд░рдХрд▓реНрдкрд╛рджреНрд╡рд╛рд░реЗ рд╢рд┐рдлрд╛рд░рд╕ рдХреЗрд▓реЗрд▓реА рдЖрдгрд┐ рдкреВрд░реНрдгрдкрдгреЗ рдЪрд╛рдЪрдгреА рдХреЗрд▓реЗрд▓реА рдПрдХрдореЗрд╡ 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 рдЙрдкрдХреНрд░рдо рдХрд╛рдп рдШрдбрд╡реВрди рдЖрдгрддреАрд▓ рд╣реЗ рдЕрджреНрдпрд╛рдк рдкреВрд░реНрдгрдкрдгреЗ рд╕реНрдкрд╖реНрдЯ рдирд╛рд╣реА, рдкрд░рдВрддреБ рдЖрдореНрд╣реА рдЖрдирдВрджрд╛рдиреЗ рдкрд╛рд╣рдд рдЖрд╣реЛрдд. рддреБрдореНрд╣реА рддреБрдордЪреЗ рдордд рдЖрддреНрддрд╛рдЪ рдЯрд┐рдкреНрдкрдгреНрдпрд╛рдВрдордзреНрдпреЗ рд╢реЗрдЕрд░ рдХрд░реВ рд╢рдХрддрд╛.
рд░рд╣рд╛!
рд╣рд╛ рд▓реЗрдЦ рдЦрд╛рд▓реАрд▓ рд╕реНрддреНрд░реЛрддрд╛рдВрдореБрд│реЗ рджрд┐рд╕рд▓рд╛:
- рдХрдВрдЯреЗрдирд░ рд░рдирдЯрд╛рдЗрдо рдмрджреНрджрд▓ рд╡рд┐рднрд╛рдЧ
Kubernetes рджрд╕реНрддрдРрд╡рдЬреАрдХрд░рдг рдкрд╛рди рдЗрдВрдЯрд░рдиреЗрдЯрд╡рд░ CRI-O рдкреНрд░рдХрд▓реНрдк- Red Hat рдмреНрд▓реЙрдЧ рд▓реЗрдЦ:
рд╣реЗ рдПрдХ ,рд╣реЗ рдЖрдгрд┐ рдЗрддрд░ рдЕрдиреЗрдХ
рд╕реНрддреНрд░реЛрдд: www.habr.com