рд▓рдЧрднрдЧред рдЯреНрд░рд╛рдВрд╕ред : рд▓реЗрдЦ рдХреЗ рд▓реЗрдЦрдХ, рдорд╛рд░реНрд╢рд▓ рдмреНрд░реЗрдХрд╛, рдлреЗрдпрд░ рдбреЙрдЯ рдХреЙрдо рдореЗрдВ рд╕рд┐рд╕реНрдЯрдо рдбрд┐рдЬрд╝рд╛рдЗрди рдирд┐рджреЗрд╢рдХ рдХреЗ рдкрдж рдкрд░ рдХрд╛рдмрд┐рдЬ рд╣реИрдВ, рдЬреЛ рдХрд╛рд░ рд▓реАрдЬрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рдЖрд╡реЗрджрди рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИред рдЕрдкрдиреЗ рдЦрд╛рд▓реА рд╕рдордп рдореЗрдВ, рд╡рд╣ "рдШрд░" рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╡реНрдпрд╛рдкрдХ рдЕрдиреБрднрд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдХрд┐рд╕реА рднреА рдЧреАрдХ рдХреЛ рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ (рдЗрд╕рд▓рд┐рдП, рд╕рд╡рд╛рд▓ "рдХреНрдпреЛрдВ?" - рдиреАрдЪреЗ рд╡рд░реНрдгрд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ - рдПрдХ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдЫреЛрдбрд╝реА рдЧрдИ рд╣реИ)ред рдЗрд╕рд▓рд┐рдП, рдЕрдкрдиреЗ рдкреНрд░рдХрд╛рд╢рди рдореЗрдВ, рдорд╛рд░реНрд╢рд▓ рдиреЗ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреА рд╣рд╛рд▓ рдХреА рддреИрдирд╛рддреА рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд┐рдпрд╛ ... рдПрдЖрд░рдПрдо рдмреЛрд░реНрдбред
рдХрдИ рдЕрдиреНрдп geeks рдХреА рддрд░рд╣, рдкрд┐рдЫрд▓реЗ рдХреБрдЫ рд╡рд░реНрд╖реЛрдВ рдореЗрдВ рдореИрдВрдиреЗ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдЬреИрд╕реЗ рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рдХрд╛рд╕ рдмреЛрд░реНрдбреЛрдВ рдХреЛ рд╕рдВрдЪрд┐рдд рдХрд┐рдпрд╛ рд╣реИред рдФрд░ рдХрдИ рдЧреАрдХреЛрдВ рдХреА рддрд░рд╣, рдЙрдиреНрд╣реЛрдВрдиреЗ рдЦреБрдж рдХреЛ рдЗрд╕ рд╕реЛрдЪ рдХреЗ рд╕рд╛рде рдЕрд▓рдорд╛рд░рд┐рдпреЛрдВ рдкрд░ рдзреВрд▓ рджрд┐рдпрд╛ рдХрд┐ рд╡реЗ рдХрд┐рд╕реА рджрд┐рди рдХрд╛рдо рдЖрдПрдВрдЧреЗред рдФрд░ рдЕрдм рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рджрд┐рди рдЖрдЦрд┐рд░рдХрд╛рд░ рдЖ рдЧрдпрд╛ рд╣реИ!
рд╕рд░реНрджрд┐рдпреЛрдВ рдХреА рдЫреБрдЯреНрдЯрд┐рдпреЛрдВ рдХреЗ рджреМрд░рд╛рди, рдХрдИ рд╣рдлреНрддреЛрдВ рдХреЗ рдмрд╛рд╣рд░ рдХрд╛рдо рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛, рдЬрд┐рд╕рдХреЗ рднреАрддрд░ рд╕рднреА рд╕рдВрдЪрд┐рдд рд▓реЛрд╣реЗ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдиреЗ рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ, рдпрд╣ рддрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╕рдордп рдерд╛ред рдпрд╣рд╛рдБ рдореЗрд░реЗ рдкрд╛рд╕ рд╣реИ:
- USB3 рдХрдиреЗрдХреНрд╢рди рдХреЗ рд╕рд╛рде 5-рдбреНрд░рд╛рдЗрд╡ RAID рд╕рдВрд▓рдЧреНрдирдХ;
- рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдореЙрдбрд▓ рдмреА (рдУрдЬреА рдореЙрдбрд▓);
- рдХреНрдпреВрдмрд╛рдИрдмреЛрд░реНрдб 1;
- рдмрдирд╛рдирд╛ рдкрд╛рдИ M1;
- рдПрдЪрдкреА рдиреЗрдЯрдмреБрдХ (2012?)ред
5 рд╕реВрдЪреАрдмрджреНрдз рд▓реЛрд╣реЗ рдХреЗ рдШрдЯрдХреЛрдВ рдореЗрдВ рд╕реЗ, рдореИрдВрдиреЗ рддрдм рддрдХ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрдм рддрдХ рдХрд┐ RAID рдФрд░ рдПрдХ рдиреЗрдЯрдмреБрдХ рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдПрдирдПрдПрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдиреЗрдЯрдмреБрдХ рдореЗрдВ USB3 рд╕рдкреЛрд░реНрдЯ рдХреА рдХрдореА рдХреЗ рдХрд╛рд░рдг, RAID рдиреЗ рдкреВрд░реНрдг рдЧрддрд┐ рдХреНрд╖рдорддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ред
рдЬреАрд╡рди рд▓рдХреНрд╖реНрдп
рдЪреВрдВрдХрд┐ рдиреЗрдЯрдмреБрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп RAID рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЗрд╖реНрдЯрддрдо рдирд╣реАрдВ рдерд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓рдХреНрд╖реНрдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдП рд╣реИрдВ:
- рдпреВрдПрд╕рдмреА 3 рдФрд░ рдЧреАрдЧрд╛рдмрд┐рдЯ рдИрдерд░рдиреЗрдЯ рдХреЗ рд╕рд╛рде рдПрдирдПрдПрд╕;
- рдЕрдкрдиреЗ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛
- (рдмреЛрдирд╕) RAID рд╕реЗ рдлрд╛рдпрд░ рдЯреАрд╡реА рддрдХ рдорд▓реНрдЯреАрдореАрдбрд┐рдпрд╛ рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕реНрдЯреНрд░реАрдо рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред
рдЪреВрдВрдХрд┐ рдХрд┐рд╕реА рднреА рдЙрдкрд▓рдмреНрдз рдбрд┐рд╡рд╛рдЗрд╕ рдиреЗ USB3 рдФрд░ рдЧреАрдЧрд╛рдмрд┐рдЯ рдИрдерд░рдиреЗрдЯ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд┐рдпрд╛, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдореБрдЭреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдЦрд░реАрджрд╛рд░реА рдХрд░рдиреА рдкрдбрд╝реАред рдЪреБрдирд╛рд╡
ROC-RK3328-CC рдкрд░ рдЧрд┐рд░ рдЧрдпрд╛ред рдЙрд╕рдХреЗ рдкрд╛рд╕ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рд╡рд┐рдирд┐рд░реНрджреЗрд╢реЛрдВ рдФрд░ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╕рдорд░реНрдерди рдерд╛ред
рдореЗрд░реА рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдЬрд░реВрд░рддреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ (рдФрд░ рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХреЗ рдЖрдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛) рдХреЗ рдмрд╛рдж, рдореИрдВ рджреВрд╕рд░реЗ рд▓рдХреНрд╖реНрдп рдкрд░ рдкрд╣реБрдВрдЪ рдЧрдпрд╛ред
рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХрд╛ рдкреНрд░рдмрдВрдзрди
рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ, рд╡рд┐рдХрд╛рд╕ рдмреЛрд░реНрдбреЛрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдореЗрд░реА рдкрд┐рдЫрд▓реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдпреЛрдЧреНрдпрддрд╛ рдФрд░ рдкреНрд░рд▓реЗрдЦрди рдореБрджреНрджреЛрдВ рдкрд░ рдЕрдкрд░реНрдпрд╛рдкреНрдд рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рдХрд╛рд░рдг рд╡рд┐рдлрд▓ рд░рд╣реА рд╣реИрдВред рдЕрдкрдиреА рд╡рд░реНрддрдорд╛рди рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЕрдЧрд▓рд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмрдирд╛рддреЗ рд╕рдордп, рдореИрдВрдиреЗ рдЕрдкрдиреЗ рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрд╕рд░рдг рдХрд┐рдП рдЧрдП рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯ рдХреЗ рд▓рд┐рдВрдХ рдпрд╛ рд▓рд┐рдВрдХ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреА рдЬрд╣рдордд рдирд╣реАрдВ рдЙрдард╛рдИред рдФрд░ рдЬрдм, рдорд╣реАрдиреЛрдВ рдпрд╛ рд╡рд░реНрд╖реЛрдВ рдХреЗ рдмрд╛рдж, рдХреБрдЫ рдЧрд▓рдд рд╣реЛ рдЧрдпрд╛ рдФрд░ рдореИрдВрдиреЗ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рддреЛ рдореБрдЭреЗ рдпрд╣ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрдпрд╛ рдХрд┐ рдореВрд▓ рд░реВрдк рд╕реЗ рд╕рдм рдХреБрдЫ рдХреИрд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рддреЛ рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдЖрдк рд╕реЗ рдХрд╣рд╛ рдХрд┐ рдЗрд╕ рдмрд╛рд░ рд╕рдм рдХреБрдЫ рдЕрд▓рдЧ рд╣реЛрдЧрд╛!

рдФрд░ рд╡рд╣ рдЗрд╕ рддрдереНрдп рдХреА рдУрд░ рдореБрдбрд╝ рдЧрдпрд╛ рдХрд┐ рдореИрдВ рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЛ рдЬрд╛рдирддрд╛ рд╣реВрдВред
рдпрджреНрдпрдкрд┐ K8s рдореЗрд░реЗ рдореБрдЦреНрдп рдХрд╛рдо рдкрд░ рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдХрд░рдгреЛрдВ (рдореЗрд░реЗ рдЕрдкрдиреЗ, рдХреЛрдкреНрд╕, рдЗрддреНрдпрд╛рджрд┐) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рдЧрднрдЧ рддреАрди рд╡рд░реНрд╖реЛрдВ рдХреЗ рдкреНрд░рдмрдВрдзрди рдХреЗ рдмрд╛рдж рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╣рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕ рдкреНрд░рдгрд╛рд▓реА рд╕реЗ рдмрд╣реБрдд рдкрд░рд┐рдЪрд┐рдд рд╣реВрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдмрд╛рджрд▓ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рдмрд╛рд╣рд░ K8s рдХреЛ рддреИрдирд╛рдд рдХрд░рдирд╛, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдЖрд░рдПрдо рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рднреА - рдпрд╣ рд╕рдм рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдХрд╛рдо рд▓рдЧ рд░рд╣рд╛ рдерд╛ред
рдореИрдВрдиреЗ рдпрд╣ рднреА рд╕реЛрдЪрд╛ рдХрд┐ рдЪреВрдВрдХрд┐ рдЙрдкрд▓рдмреНрдз рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдПрдирдПрдПрд╕ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдореИрдВ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдХреНрд▓рд╕реНрдЯрд░ рд╕реЗ рдЗрд╕реЗ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ рдФрд░, рд╢рд╛рдпрдж, рдХреБрдЫ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдЬреЛ рд╕рдВрд╕рд╛рдзрди-рдорд╛рдВрдЧ рдирд╣реАрдВ рд╣реИрдВ, рд╡реЗ рдкреБрд░рд╛рдиреЗ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗред
рдПрдЖрд░рдПрдо рдкрд░ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕
рдХрд╛рдо рдкрд░, рдореЗрд░реЗ рдкрд╛рд╕ рдЧреБрдЪреНрдЫреЛрдВ рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
kubeadm
рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдирд╣реАрдВ рдерд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХрд┐ рдЕрдм рдХрд╛рд░реНрд░рд╡рд╛рдИ рдореЗрдВ рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдерд╛ред
рд░рд╛рд╕реНрдкрд┐рдпрди рдХреЛ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд░реВрдк рдореЗрдВ рдЪреБрдирд╛ рдЧрдпрд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдореЗрд░реЗ рдмреЛрд░реНрдбреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП рдкреНрд░рд╕рд┐рджреНрдз рд╣реИред
рдореБрдЭреЗ рд╣рд╛рдЗрдкреЗрд░рд┐рдпреЛрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдкрд░ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдкрд░ рдПрдХ
рдЕрдЪреНрдЫрд╛ рд▓реЗрдЦ рдорд┐рд▓рд╛ред рдЪреВрдВрдХрд┐ рдореБрдЭреЗ рдЕрдкрдиреЗ рд╕рднреА рдмреЛрд░реНрдбреЛрдВ рдХреЗ рд▓рд┐рдП рд╣рд╛рдЗрдкреЗрд░рд┐рдпреЛрд╕ рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рдерд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдбреЗрдмрд┐рдпрди / рд░рд╛рд╕реНрдкрд┐рдпрди рдХреЗ рдЗрди рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ред
рдЖрд╡рд╢реНрдпрдХ рдШрдЯрдХ
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЯреВрд▓ рдХреА рд╕реНрдерд╛рдкрдирд╛ рдЖрд╡рд╢реНрдпрдХ рдереА:
- рдбреЛрдХрд░,
- kubelet,
- kubeadm,
- kubectlред
рдбреЙрдХрд░ рдХреЛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕реНрдХреНрд░рд┐рдкреНрдЯ -
рд╕реБрд╡рд┐рдзрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рдЬреИрд╕рд╛ рдХрд┐ рд░рд╛рд╕реНрдкрд┐рдпрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред
curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh
рдЙрд╕рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рд╣реНрдпрдкреНрд░реАрдд рдмреНрд▓реЙрдЧ рдХреЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдШрдЯрдХ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдП, рдЙрдиреНрд╣реЗрдВ рдПрдбрд╛рдкреНрдЯ рдХрд┐рдпрд╛ рддрд╛рдХрд┐ рд╕рднреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдП:
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" > /etc/apt/sources.list.d/kubernetes.list apt-get update apt-get install -y kubelet=1.13.1-00 kubectl=1.13.1-00 kubeadm=1.13.1-00
рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдмреА
рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдмреА рдкрд░ рдПрдХ рдХреНрд▓рд╕реНрдЯрд░ рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╕рдордп рдкрд╣рд▓реА рдХрдард┐рдирд╛рдИ рдЙрддреНрдкрдиреНрди рд╣реБрдИ:
$ kubeadm init Illegal instruction
рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕
рдиреЗ ARMv6 рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╣рдЯрд╛ рджрд┐рдпрд╛ ред рдЦреИрд░, рдореЗрд░реЗ рдкрд╛рд╕ рднреА рдХреНрдпреВрдмрд╛рдИ рдмреЛрд░реНрдб рдФрд░ рдХреЗрд▓реЗ рдкрд╛рдИ рд╣реИред
рдХреЗрд▓реЗ рдХреА рдкреА
рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдХреЗрд▓реЗ рдкрд╛рдИ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд╛ рдПрдХ рд╣реА рдЕрдиреБрдХреНрд░рдо рдЕрдзрд┐рдХ рд╕рдлрд▓ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рдерд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдирд┐рдпрдВрддреНрд░рдг рд╡рд┐рдорд╛рди рдХреЛ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢
kubeadm init
рд╣реБрдП
kubeadm init
рдХрдорд╛рдВрдб
kubeadm init
:
error execution phase wait-control-plane: couldn't initialize a Kubernetes cluster
рдХрдВрдЯреЗрдирд░ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рдерд╛, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рдХрд░рддреЗ рд╣реБрдП, рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐
kube-controller-manager
рдФрд░
kube-scheduler
рджреЛрдиреЛрдВ рдХрдо рд╕реЗ рдХрдо 4-5 рдорд┐рдирдЯ рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рдереЗ, рд▓реЗрдХрд┐рди
kube-api-server
рдХреЗрд╡рд▓ 1-2 рдорд┐рдирдЯ рдкрд╣рд▓реЗ рдЙрда рдЧрдпрд╛:
$ docker ps CONTAINER ID COMMAND CREATED STATUS de22427ad594 "kube-apiserver --auтАж" About a minute ago Up About a minute dc2b70dd803e "kube-scheduler --adтАж" 5 minutes ago Up 5 minutes 60b6cc418a66 "kube-controller-manтАж" 5 minutes ago Up 5 minutes 1e1362a9787c "etcd --advertise-clтАж" 5 minutes ago Up 5 minutes
рдЬрд╛рд╣рд┐рд░ рд╣реИ,
api-server
рдорд░ рд░рд╣рд╛ рдерд╛ рдпрд╛ рд╕реНрдЯреНрд░реЛрдВрдЯрд┐рдпрдо рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЗрд╕реЗ рдорд╛рд░ рд░рд╣реА рдереА рдФрд░ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░ рд░рд╣реА рдереАред
рд▓реЙрдЧ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реБрдП, рдореИрдВрдиреЗ рдмрд╣реБрдд рдорд╛рдирдХ рд╕реНрдЯрд╛рд░реНрдЯ-рдЕрдк рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рджреЗрдЦреАрдВ - рдЯреАрдПрд▓рдПрд╕ рд╣реИрдВрдбрд╢реЗрдХ рдореЗрдВ рдХрдИ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рд╕реЗ рдкрд╣рд▓реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рдкреЛрд░реНрдЯ рдФрд░ рдПрдХ рд▓рдВрдмреЗ рдард╣рд░рд╛рд╡ рдХреЛ рд╕реБрдирдиреЗ рдХреА рд╢реБрд░реБрдЖрдд рдХрд╛ рд░рд┐рдХреЙрд░реНрдб рдерд╛:
20:06:48.604881 naming_controller.go:284] Starting NamingConditionController 20:06:48.605031 establishing_controller.go:73] Starting EstablishingController 20:06:50.791098 log.go:172] http: TLS handshake error from 192.168.1.155:50280: EOF 20:06:51.797710 log.go:172] http: TLS handshake error from 192.168.1.155:50286: EOF 20:06:51.971690 log.go:172] http: TLS handshake error from 192.168.1.155:50288: EOF 20:06:51.990556 log.go:172] http: TLS handshake error from 192.168.1.155:50284: EOF 20:06:52.374947 log.go:172] http: TLS handshake error from 192.168.1.155:50486: EOF 20:06:52.612617 log.go:172] http: TLS handshake error from 192.168.1.155:50298: EOF 20:06:52.748668 log.go:172] http: TLS handshake error from 192.168.1.155:50290: EOF
рдФрд░ рдЗрд╕рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж, рд╕рд░реНрд╡рд░ рдЕрдкрдирд╛ рдХрд╛рдо рд╕рдорд╛рдкреНрдд рдХрд░ рджреЗрддрд╛ рд╣реИред Googling рдиреЗ
рдРрд╕реА рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЬрдиреНрдо рджрд┐рдпрд╛, рдЬреЛ рдХреБрдЫ рдПрдЖрд░рдПрдо рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рдзреАрдореЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд╕рдВрднрд╛рд╡рд┐рдд рдХрд╛рд░рдг рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрддрд╛ рд╣реИред
рдореИрдВрдиреЗ рдФрд░ рд╕реЛрдЪрд╛ рдФрд░ рд╕реЛрдЪрд╛ рдХрд┐ рд╢рд╛рдпрдж
api-server
scheduler
рдФрд░
controller-manager
рд╕реЗ рдмрд╣реБрдд рдмрд╛рд░-рдмрд╛рд░ рдЕрдиреБрд░реЛрдз рдорд┐рд▓ рд░рд╣рд╛ рд╣реИред
рдЗрди рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдореИрдирд┐рдлрд╝реЗрд╕реНрдЯ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рд╕реЗ рд╣рдЯрд╛рдХрд░ рдХреНрдпреВрдмрд▓реЗрдЯ рдХреЛ рд╕рдВрдмрдВрдзрд┐рдд рдкреЙрдбреНрд╕ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛:
mkdir /etc/kubernetes/manifests.bak mv /etc/kubernetes/manifests/kube-scheduler.yaml /etc/kubernetes/manifests.bak/ mv /etc/kubernetes/manifests/kube-controller-mananger.yaml /etc/kubernetes/manifests.bak/
рдирд╡реАрдирддрдо
api-server
рд▓реЙрдЧ рдХреЛ рджреЗрдЦрдиреЗ рд╕реЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдЕрдм рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЖрдЧреЗ рдмрдврд╝ рдЧрдИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рд▓рдЧрднрдЧ 2 рдорд┐рдирдЯ рдХреЗ рдмрд╛рдж рднреА рдпрд╣ рдорд░ рдЧрдпрд╛ред рддрдм рдореБрдЭреЗ рдпрд╛рдж рдЖрдпрд╛ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдзреАрдореЗ рдЙрдкрдХрд░рдг рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХрдо рдорд╛рди рд░рдЦрдиреЗ рд╡рд╛рд▓реЗ рдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЗ рд╕рд╛рде рдореЗрдирд┐рдлрд╝реЗрд╕реНрдЯ рдореЗрдВ рдПрдХ рд▓рд╛рдИрд╡ рдирдореВрдирд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ
/etc/kubernetes/manifests/kube-api-server.yaml
- рдФрд░ рдЗрд╕рдореЗрдВ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЬрд╛рдБрдЪ рдХреА ...
livenessProbe: failureThreshold: 8 httpGet: host: 192.168.1.155 path: /healthz port: 6443 scheme: HTTPS initialDelaySeconds: 15 timeoutSeconds: 15
135 рд╕реЗрдХрдВрдб рдХреЗ рдмрд╛рдж рдкреЙрдб рдХреА рдореМрдд рд╣реЛ рдЧрдИ (
initialDelaySeconds
+
timeoutSeconds
*
failureThreshold
)ред
initialDelaySeconds
рд╡реГрджреНрдзрд┐ рдХреЛ рдмрдврд╝рд╛рдПрдВ 120 ...
рд╕рдлрд▓рддрд╛! рдЦреИрд░, рд╣реИрдВрдбрд╢реЗрдХ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдЕрднреА рднреА рд╣реЛрддреА рд╣реИрдВ (рд╕рдВрднрд╡рддрдГ рдХреНрдпреВрдмрд▓реЗрдЯ рд╕реЗ), рд╣рд╛рд▓рд╛рдВрдХрд┐ рд▓реЙрдиреНрдЪ рдЕрднреА рднреА рд╣реБрдЖ рд╣реИ:
20:06:54.957236 log.go:172] http: TLS handshake error from 192.168.1.155:50538: EOF 20:06:55.004865 log.go:172] http: TLS handshake error from 192.168.1.155:50384: EOF 20:06:55.118343 log.go:172] http: TLS handshake error from 192.168.1.155:50292: EOF 20:06:55.252586 cache.go:39] Caches are synced for autoregister controller 20:06:55.253907 cache.go:39] Caches are synced for APIServiceRegistrationController controller 20:06:55.545881 controller_utils.go:1034] Caches are synced for crd-autoregister controller ... 20:06:58.921689 storage_rbac.go:187] created clusterrole.rbac.authorization.k8s.io/cluster-admin 20:06:59.049373 storage_rbac.go:187] created clusterrole.rbac.authorization.k8s.io/system:discovery 20:06:59.214321 storage_rbac.go:187] created clusterrole.rbac.authorization.k8s.io/system:basic-user
рдЬрдм
api-server
рдЙрда рдЧрдпрд╛, рддреЛ рдореИрдВрдиреЗ рдХрдВрдЯреНрд░реЛрд▓рд░ рдФрд░ рд╢реЗрдбреНрдпреВрд▓рд░ рдХреЗ рд▓рд┐рдП YAML рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкреНрд░рдХрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рд╡реЗ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рднреА рд╢реБрд░реВ рд╣реЛ рдЧрдПред
рдЕрдм рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк рд╕реНрд░реЛрдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╕рднреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВ рддреЛ рдбрд╛рдЙрдирд▓реЛрдб рд╕рдлрд▓ рд╣реЛрдЧрд╛: рдХреНрдпрд╛ рдпрд╣
livenessProbe
рдХреЗ рдЖрд░рдВрдн рдореЗрдВ рд╕реНрд╡реАрдХрд╛рд░реНрдп рджреЗрд░реА рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ?
20:29:33.306983 reflector.go:134] k8s.io/client-go/informers/factory.go:132: Failed to list *v1.Service: Get https://192.168.1.155:6443/api/v1/services?limit=500&resourceVersion=0: dial tcp 192.168.1.155:6443: i/o timeout 20:29:33.434541 reflector.go:134] k8s.io/client-go/informers/factory.go:132: Failed to list *v1.ReplicationController: Get https://192.168.1.155:6443/api/v1/replicationcontrollers?limit=500&resourceVersion=0: dial tcp 192.168.1.155:6443: i/o timeout 20:29:33.435799 reflector.go:134] k8s.io/client-go/informers/factory.go:132: Failed to list *v1.PersistentVolume: Get https://192.168.1.155:6443/api/v1/persistentvolumes?limit=500&resourceVersion=0: dial tcp 192.168.1.155:6443: i/o timeout 20:29:33.477405 reflector.go:134] k8s.io/client-go/informers/factory.go:132: Failed to list *v1beta1.PodDisruptionBudget: Get https://192.168.1.155:6443/apis/policy/v1beta1/poddisruptionbudgets?limit=500&resourceVersion=0: dial tcp 192.168.1.155:6443: i/o timeout 20:29:33.493660 reflector.go:134] k8s.io/client-go/informers/factory.go:132: Failed to list *v1.PersistentVolumeClaim: Get https://192.168.1.155:6443/api/v1/persistentvolumeclaims?limit=500&resourceVersion=0: dial tcp 192.168.1.155:6443: i/o timeout 20:29:37.974938 controller_utils.go:1027] Waiting for caches to sync for scheduler controller 20:29:38.078558 controller_utils.go:1034] Caches are synced for scheduler controller 20:29:38.078867 leaderelection.go:205] attempting to acquire leader lease kube-system/kube-scheduler 20:29:38.291875 leaderelection.go:214] successfully acquired lease kube-system/kube-scheduler
рд╣рд╛рдВ, рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдкреБрд░рд╛рдиреЗ рдбрд┐рд╡рд╛рдЗрд╕, рдЬрд╛рд╣рд┐рд░рд╛ рддреМрд░ рдкрд░, рдирд┐рдпрдВрддреНрд░рдг рд╡рд┐рдорд╛рди рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рдирд╣реАрдВ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рджреЛрд╣рд░рд╛рдпрд╛ рдЯреАрдПрд▓рдПрд╕ рдХрдиреЗрдХреНрд╢рди рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмреНрд░реЗрдХ рдХрд╛ рдХрд╛рд░рдг рдмрдирддреЗ рд╣реИрдВред рдПрдХ рддрд░рд╣ рд╕реЗ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп - рдПрдЖрд░рдПрдо рдкрд░ K8s рдХреА рдПрдХ рдХрд╛рдордХрд╛рдЬреА рд╕реНрдерд╛рдкрдирд╛ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреА рд╣реИ! рдЪрд▓рд┐рдП рдЖрдЧреЗ ...
RAID рдмрдврд╝рддреЗ
рдЪреВрдВрдХрд┐ рдПрд╕рдбреА рдХрд╛рд░реНрдб рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рдмрд╕реЗ рдЕрд╕реНрдерд┐рд░ рднрд╛рдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рднрдВрдбрд╛рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ - рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, RAIDред рдЗрд╕ рдкрд░ 4 рдЦрдВрдбреЛрдВ рдкрд░ рдкреНрд░рдХрд╛рд╢ рдбрд╛рд▓рд╛ рдЧрдпрд╛:
- 50 рдЬреАрдмреА;
- 2 ├Ч 20 рдЬреАрдмреА;
- рей.реп рдЯреА.рдмреА.
рдореИрдВ рдЕрднреА рддрдХ 20-рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ рд╡рд┐рднрд╛рдЬрди рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рдЖрдпрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рднрд╡рд┐рд╖реНрдп рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдЕрд╡рд╕рд░ рдЫреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред
/etc/fstab
50 GB рд╡рд┐рднрд╛рдЬрди рдХреЗ рд▓рд┐рдП, рдорд╛рдЙрдВрдЯ рдмрд┐рдВрджреБ рдХреЛ
/mnt/root
рдореЗрдВ рдФрд░ 3.9 TB рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ -
/mnt/raid
ред рдЙрд╕рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ etcd рдФрд░ docker рдХреЗ рд╕рд╛рде рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ 50 GB рд╡рд┐рднрд╛рдЬрди рдкрд░ рдЖрд░реЛрд╣рд┐рдд рдХрд┐рдпрд╛:
UUID=655a39e8-9a5d-45f3-ae14-73b4c5ed50c3 /mnt/root ext4 defaults,rw,user,auto,exec 0 0 UUID=0633df91-017c-4b98-9b2e-4a0d27989a5c /mnt/raid ext4 defaults,rw,user,auto 0 0 /mnt/root/var/lib/etcd /var/lib/etcd none defaults,bind 0 0 /mnt/root/var/lib/docker /var/lib/docker none defaults,bind 0 0
рдЖрдЧрдорди ROC-RK3328-CC
рдЬрдм рдирдпрд╛ рдмреЛрд░реНрдб рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдореИрдВрдиреЗ рдЙрд╕ рдкрд░ K8 рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдШрдЯрдХ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдП
(рд▓реЗрдЦ рдХреА рд╢реБрд░реБрдЖрдд рджреЗрдЦреЗрдВ) рдФрд░
kubeadm init
рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ред рдкреНрд░рддреАрдХреНрд╖рд╛ рдХреЗ рдХреБрдЫ рдорд┐рдирдЯ рдЕрдиреНрдп рдиреЛрдбреНрд╕ рдкрд░ рдЪрд▓рдиреЗ рдХреЗ рд▓рд┐рдП
join
рдХрдорд╛рдВрдб рдХреА рд╕рдлрд▓рддрд╛ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рд╣реИред
рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛! рдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЗ рд╕рд╛рде рдХреЛрдИ рдЙрдкрджреНрд░рд╡ рдирд╣реАрдВред
рдФрд░ рдЪреВрдВрдХрд┐ RAID рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрд╕ рдмреЛрд░реНрдб рдкрд░ рднреА рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, mounts рдХреЛ рдлрд┐рд░ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рд╕рднреА рдЪрд░рдгреЛрдВ рдХреЛ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:
1. рдорд╛рдЙрдВрдЯ рдбрд┐рд╕реНрдХ рдореЗрдВ / etc / fstab рд╣реИ
UUID=655a39e8-9a5d-45f3-ae14-73b4c5ed50c3 /mnt/root ext4 defaults,rw,user,auto,exec 0 0 UUID=0633df91-017c-4b98-9b2e-4a0d27989a5c /mnt/raid ext4 defaults,rw,user,auto 0 0 /mnt/root/var/lib/etcd /var/lib/etcd none defaults,bind 0 0 /mnt/root/var/lib/docker /var/lib/docker none defaults,bind 0 0
2. рдбреЙрдХрд░ рдФрд░ K8s рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛
curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" > /etc/apt/sources.list.d/kubernetes.list apt-get update apt-get install -y kubelet=1.13.1-00 kubectl=1.13.1-00 kubeadm=1.13.1-00
3. рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рд╣реЛрд╕реНрдЯ рдирд╛рдо рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ (рдЬреЛ рдХрд┐ рдХрдИ рдиреЛрдб рдЬреЛрдбрд╝реЗ рдЧрдП рд╣реИрдВ)
hostnamectl set-hostname k8s-master-1
4. рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди
рдореИрдВ рдирд┐рдпрдВрддреНрд░рдг рд╡рд┐рдорд╛рди рдХреЗ рд╕рд╛рде рдЪрд░рдг рдХреЛ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЗрд╕ рдиреЛрдб рдкрд░ рд╕рд╛рдорд╛рдиреНрдп рдкреЙрдбреНрд╕ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ:
kubeadm init --skip-phases mark-control-plane
5. рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд▓рдЧрдЗрди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛
рд╣рд╛рдЗрдкреНрд░реАрдЯ рд▓реЗрдЦ рдореЗрдВ рдЗрд╕ рдкрд░ рдЬрд╛рдирдХрд╛рд░реА рдереЛрдбрд╝реА рджрд┐рдирд╛рдВрдХрд┐рдд рдереА рдХреНрдпреЛрдВрдХрд┐ рдмреБрди рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд▓рдЧрдЗрди рдЕрдм
рдПрдЖрд░рдПрдо рдкрд░ рднреА
рд╕рдорд░реНрдерд┐рдд рд╣реИ :
export KUBECONFIG=/etc/kubernetes/admin.conf kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"
6. рд╣реЛрд╕реНрдЯ рд▓реЗрдмрд▓ рдЬреЛрдбрд╝рдирд╛
рдЗрд╕ рдиреЛрдб рдкрд░, рдореИрдВ NAS рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕реЗ рдЕрдиреБрд╕реВрдЪрдХ рдореЗрдВ рд╕рдВрднрд╛рд╡рд┐рдд рднрд╡рд┐рд╖реНрдп рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рд▓реЗрдмрд▓ рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рдХрд░реВрдВрдЧрд╛:
kubectl label nodes k8s-master-1 marshallbrekka.raid=true kubectl label nodes k8s-master-1 marshallbrekka.network=gigabit
рдЕрдиреНрдп рдиреЛрдбреНрд╕ рдХреЛ рдХреНрд▓рд╕реНрдЯрд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛
рдЕрдиреНрдп рдЙрдкрдХрд░рдгреЛрдВ (рдмрдирд╛рдирд╛ рдкреА, рдХреНрдпреВрдмрд╛рдИрдмреЛрд░реНрдб) рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЙрддрдирд╛ рд╣реА рдЖрд╕рд╛рди рдерд╛ред рдЙрдирдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкрд╣рд▓реЗ 3 рдЪрд░рдгреЛрдВ (рдмрдврд╝рддреЗ рдбрд┐рд╕реНрдХ / рдлреНрд▓реИрд╢ рдореАрдбрд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдмрджрд▓рдирд╛, рдЙрдирдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░) рдХреЛ
kubeadm join
рд╣реЛрдЧрд╛ рдФрд░
kubeadm init
рдмрдЬрд╛рдп
kubeadm join
рдХрдорд╛рдВрдб рдХреЛ
kubeadm init
ред
рдПрдЖрд░рдПрдо рдХреЗ рд▓рд┐рдП рдбреЙрдХрдЯрд░ рдХрдВрдЯреЗрдирд░ рдвреВрдБрдврдирд╛
рдЕрдзрд┐рдХрд╛рдВрд╢ рдбреЙрдХрдЯрд░ рдХрдВрдЯреЗрдирд░ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдореИрдХ рдкрд░ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдПрдЖрд░рдПрдо рдХреЗ рд▓рд┐рдП рдпрд╣ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИред рдЗрди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХреНрдпреВрдИрдПрдордпреВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ, рдЗрд╕ рдкрд░ рдХрдИ рд▓реЗрдЦ рдкрд╛рдП рдЧрдП, рдлрд┐рд░ рднреА рдореИрдВ рдЗрд╕
рдирд┐рд╖реНрдХрд░реНрд╖ рдкрд░
рдкрд╣реБрдВрдЪрд╛ рдХрд┐ рдореБрдЭреЗ рдЬрд┐рди рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреА
рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ , рдЙрдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрдХрдЯреНрдареЗ рд╣реИрдВ, рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдХрдИ
рд▓рд┐рдирдХреНрд╕ рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИрдВред
рдЕрдЧрд▓реЗ рдЪрд░рдг
рдЕрднреА рднреА рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд / рд╕реНрдХреНрд░рд┐рдкреНрдЯреЗрдб рд░реВрдк рдореЗрдВ рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╡рд┐рдиреНрдпрд╛рд╕ рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рдЪрд╛рд╣реВрдВрдЧрд╛, рдореИрдВрдиреЗ рдХрдо рд╕реЗ рдХрдо рдмреБрдирд┐рдпрд╛рджреА рдЖрджреЗрд╢реЛрдВ (mounts,
kubeadm
рдФрд░
kubeadm
) рдХрд╛ рдПрдХ рд╕реЗрдЯ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ Git рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдкреНрд░рд▓реЗрдЦрд┐рдд рдХрд┐рдпрд╛ред рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдмрд╛рдХреА рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рднреА рдЙрд╕реА рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд K8 рдХреЗ рд▓рд┐рдП YAML рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд░рд╛рдкреНрдд рд╣реБрдЖ, рдЗрд╕рд▓рд┐рдП рдЕрдм рдЦрд░реЛрдВрдЪ рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред
рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛:
- рдорд╛рд╕реНрдЯрд░ рд╕рд╛рдЗрдЯреЛрдВ рдХреЛ рдЕрддреНрдпрдзрд┐рдХ рдЙрдкрд▓рдмреНрдз рдХрд░реЗрдВ
- рдХрд┐рд╕реА рднреА рдШрдЯрдХ рдореЗрдВ рд╡рд┐рдлрд▓рддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдЧрд░рд╛рдиреА / рд╕реВрдЪрдирд╛рдПрдВ рдЬреЛрдбрд╝реЗрдВ;
- рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреА рдЦреЛрдЬ (рдЬреЛ рдЖрдВрддрд░рд┐рдХ рдЖрдИрдкреА рдкрддреЗ рдХреЛ рдпрд╛рдж рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?) рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╕реНрдЯрд░ рд╕реЗ рдПрдХ DNS рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╛рдЙрдЯрд░ рдХреА DCHP рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдмрджрд▓реЗрдВ;
- рдПрдХ рдирд┐рдЬреА рдиреЗрдЯрд╡рд░реНрдХ (DNS, рдЖрджрд┐) рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╕реНрдЯрд░ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП MetalLB рдЪрд▓рд╛рдПрдВред
рдЕрдиреБрд╡рд╛рджрдХ рд╕реЗ рдкреА.рдПрд╕.
рд╣рдорд╛рд░реЗ рдмреНрд▓реЙрдЧ рдореЗрдВ рднреА рдкрдврд╝реЗрдВ: