рдЯреА рдПрд▓; рдбреЙ
рд╣рдо рдХреНрдпреВрдмреНрд╕рдкреНрд░рд╛рдп, рдХреБрдмреЗрджрдо рдФрд░ рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рдЬреИрд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рди рдЙрдкрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛, рдирд┐рдЧрд▓рдирд╛ , Letencrypt рдХреЗ рд╕рд╛рде рд╕реНрдЯреЗрдЯрд▓реЗрд╕ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкрд░реЛрд╕рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╕реНрдЯрд░ рдмрдврд╝рд╛рддреЗ рд╣реИрдВред
рдкрдврд╝рдиреЗ рдХрд╛ рд╕рдордп: ~ 45-60 рдорд┐рдирдЯ, рдкреНрд▓реЗрдмреИрдХ рд╕рдордп: 3 рдШрдВрдЯреЗ рд╕реЗред
рдкреНрд░рд╕реНрддрд╛рд╡рдирд╛
рдореБрдЭреЗ рдкреНрд░рдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдХреБрдмреЗрд░рдиреЗрдЯ рдХреЗ рдЕрдкрдиреЗ рдХреНрд▓рд╕реНрдЯрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рджреНрд╡рд╛рд░рд╛ рдПрдХ рд▓реЗрдЦ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЦреБрд▓реЗ рд╕реНрд░реЛрдд рд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕рдорд╛рдзрд╛рди рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рдереЗ, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рдЧреИрд░-рдореБрдЦреНрдпрдзрд╛рд░рд╛ рд▓рд┐рдирдХреНрд╕ рд╡рд┐рддрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдерд╛ред IPONWEB рдореЗрдВ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдЧрд╣рди рдХрд╛рд░реНрдп рдЖрдкрдХреЛ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдордВрдЪ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЕрдкрдиреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдПрдХ рдЖрд░рд╛рдорджрд╛рдпрдХ рддрд░реАрдХреЗ рд╕реЗ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдШрд░реЗрд▓реВ рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рдШрдЯрдХреЛрдВ
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдШрдЯрдХ рд▓реЗрдЦ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗ:
- рдЖрдкрдХрд╛ рдкрд╕рдВрджреАрджрд╛ рд▓рд┐рдирдХреНрд╕ - рдореИрдВрдиреЗ рдЬреЗрдВрдЯреВ (рдиреЛрдб -1: рд╕рд┐рд╕реНрдЯрдордб / рдиреЛрдб -2: рдУрдкрди рдЖрд░реНрдХ), рдЙрдмрдВрдЯреВ 18.04.1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред
- рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╕рд░реНрд╡рд░ - рдХреНрдпреВрдм-рдПрдкреЗрд╕реЗрд╡рд░, рдХреНрдпреВрдм-рдХрдВрдЯреНрд░реЛрд▓рд░-рдореИрдиреЗрдЬрд░, рдХреНрдпреВрдм-рд╢реЗрдбреНрдпреВрд▓рд░, рдХреНрдпреВрдмрд▓реЗрдЯ, рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реАред
- рдХрдВрдЯреЗрдирд░ + рд╕реАрдПрдирдЖрдИ рдкреНрд▓рдЧрдЗрдиреНрд╕ (0.7.4) - рдХрдВрдЯреЗрдирд░реАрдХрд░рдг рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдбреЙрдХрдЯрд░ рдХреЗ рдмрдЬрд╛рдп рдХрдВрдЯреЗрдирд░ + рд╕реАрдПрдирдЖрдИ рд▓реЗрдВрдЧреЗ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╢реБрд░реБрдЖрдд рдореЗрдВ рдкреВрд░реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдбреЙрдХрдЯрд░ рдкрд░ рдЕрдкрд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдХреБрдЫ рднреА рдЗрд╕реЗ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдиреЗ рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдирд╣реАрдВ рд░реЛрдХреЗрдЧрд╛)ред
- рдХреЛрд░рдбрдПрдирдПрд╕ - рдХреБрдмреЗрд░рдиреЗрдЯ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рдЕрдВрджрд░ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдШрдЯрдХреЛрдВ рдХреА рд╕реЗрд╡рд╛ рдЦреЛрдЬ рдХреЗ рдЖрдпреЛрдЬрди рдХреЗ рд▓рд┐рдПред 1.2.5 рд╕реЗ рдХрдо рд╕рдВрд╕реНрдХрд░рдг рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдирд╣реАрдВ рдХреА рдЧрдИ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рдмрд╛рд╣рд░ рдЪрд▓рдиреЗ рд╡рд╛рд▓реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрд░рдбрдиреНрд╕ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╣реИред
- рдлрд▓рд╛рд▓реИрди - рдПрдХ рдиреЗрдЯрд╡рд░реНрдХ рд╕реНрдЯреИрдХ рдХреЗ рдЖрдпреЛрдЬрди рдХреЗ рд▓рд┐рдП, рдЖрдкрд╕ рдореЗрдВ рдЪреВрд▓реНрд╣рд╛ рдФрд░ рдХрдВрдЯреЗрдирд░реЛрдВ рдХрд╛ рд╕рдВрдЪрд╛рд░ рдХрд░рдирд╛ред
- рдЖрдкрдХрд╛ рдкрд╕рдВрджреАрджрд╛ рдбреА.рдмреА.

рд╕реАрдорд╛рдПрдБ рдФрд░ рдорд╛рдиреНрдпрддрд╛рдПрдБ
- рд▓реЗрдЦ рдмрд╛рдЬрд╛рд░ рдкрд░ vps / vds рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреА рд▓рд╛рдЧрдд рдХреА рдЬрд╛рдВрдЪ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рдЗрди рд╕реЗрд╡рд╛рдУрдВ рдкрд░ рдорд╢реАрдиреЛрдВ рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рднреА рд╣реИред рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреБрдЫ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╣реИ, рдпрд╛ рдЖрдк рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдкрдХреЗ рдкрд╕рдВрджреАрджрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдФрд░ рдирд┐рдЬреА рдбреЙрдХрд░реНрд╕ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреА рд╕реНрдерд╛рдкрдирд╛ / рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди, рдпрджрд┐ рдЖрдкрдХреЛ рдПрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдХрд╡рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
- рд╣рдо рджреЛрдиреЛрдВ рдХрдВрдЯреЗрдирдб + cni plugins рдФрд░ docker рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рд▓реЗрдЦ рдбреЙрдХрдЯрд░ рдХреЛ рдПрдХ рдХрдВрдЯреЗрдирд░реАрдХрд░рдг рдЙрдкрдХрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдбреЙрдХрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╕реНрд╡рдпрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдлрд▓рд╛рд▓реИрди рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗ, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЖрдкрдХреЛ рдХреНрдпреВрдмрд▓реЗрдЯ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЕрд░реНрдерд╛рддреН, рдХрдВрдЯреЗрдирд░ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕рднреА рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рд╣рдЯрд╛ рджреЗрдВред рдЬреИрд╕рд╛ рдХрд┐ рдореЗрд░реЗ рдкреНрд░рдпреЛрдЧреЛрдВ рдиреЗ рджрд┐рдЦрд╛рдпрд╛ рд╣реИ, рдХрдВрдЯреЗрдирд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдиреЛрдбреНрд╕ рдкрд░ рдбреЙрдХрдЯрд░ рдФрд░ рдХрдВрдЯреЗрдирд░ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред
- рд╣рдо рдлрд▓рд╛рд▓реИрди рдХреЗ рд▓рд┐рдП
host-gw
рдмреИрдХрдПрдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдлрд▓рд╛рд▓реИрди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЕрдиреБрднрд╛рдЧ рдкрдврд╝реЗрдВ - рд╣рдо рдирд┐рдЧрд░рд╛рдиреА, тАЛтАЛрдмреИрдХрдЕрдк, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ (рд╕реНрдерд┐рддрд┐) рдХреЛ рдмрдЪрд╛рдиреЗ, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб (git / hg / svn / etc) рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред
рдкрд░рд┐рдЪрдп
рдХрд╛рдо рдХреЗ рджреМрд░рд╛рди, рдореИрдВрдиреЗ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╕реНрд░реЛрддреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдореИрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд┐рд╕реНрддреГрдд рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬреЛ рдХрдард┐рди рддрд░реАрдХрд╛ рдЧрд╛рдЗрдб рд╣реИ, рдЬреЛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рдореВрд▓ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рд▓рдЧрднрдЧ 90% рдХрд╡рд░ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ рдореИрдиреБрдЕрд▓ рдХреЛ рдкрдврд╝ рдЪреБрдХреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдлрд╝реНрд▓реЗрдирд▓рд╛рдЗрди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЕрдиреБрднрд╛рдЧ рдкрд░ рд╕реАрдзреЗ рдЖрдЧреЗ рдмрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред
рдкрджрдирд╛рдорд╢рдмреНрджреЛрдВ рдХреА рд╕реВрдЪреА / рд╢рдмреНрджрд╛рд╡рд▓реА
- рдПрдкреАрдЖрдИ-рд╕рд░реНрд╡рд░ - рдПрдХ рднреМрддрд┐рдХ рдпрд╛ рдЖрднрд╛рд╕реА рдорд╢реАрди рдЬрд┐рд╕ рдкрд░ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреНрдпреВрдм-рдПрдкреЗрд╕реНрд╡рд░ рдЪрд▓рд╛рдиреЗ рдФрд░ рд╕рд╣реА рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╕реНрдерд┐рдд рд╣реИред рдЗрд╕ рд▓реЗрдЦ рдХреЗ рдкреНрд░рдпреЛрдЬрдиреЛрдВ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдПрджреНрдб, рдХреНрдпреВрдм-рдПрдкреЗрд╕реНрд╡рд░, рдХреНрдпреВрдм-рдХрдВрдЯреНрд░реЛрд▓рд░-рдореИрдиреЗрдЬрд░, рдХреНрдпреВрдм-рд╢реЗрдбреНрдпреВрд▓рд░ рд╣реИред
- рдорд╛рд╕реНрдЯрд░ - рдПрдХ рд╕рдорд░реНрдкрд┐рдд рд╡рд░реНрдХрд╕реНрдЯреЗрд╢рди рдпрд╛ рд╡реАрдкреАрдПрд╕ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди, рдПрдкреАрдЖрдИ-рд╕рд░реНрд╡рд░ рдХрд╛ рдПрдХ рдкрд░реНрдпрд╛рдпред
- рдиреЛрдб-рдПрдХреНрд╕ - рдПрдХ рд╕рдорд░реНрдкрд┐рдд рд╡рд░реНрдХрд╕реНрдЯреЗрд╢рди рдпрд╛ рд╡реАрдкреАрдПрд╕ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди,
X
рд╕реНрдЯреЗрд╢рди рдХреЗ рд╕реАрд░рд┐рдпрд▓ рдирдВрдмрд░ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╕рднреА рд╕рдВрдЦреНрдпрд╛рдПрдВ рдЕрджреНрд╡рд┐рддреАрдп рд╣реИрдВ рдФрд░ рд╕рдордЭрдиреЗ рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВ:
- рдиреЛрдб -1 - рдорд╢реАрди рдирдВрдмрд░ 1
- рдиреЛрдб -2 - рдорд╢реАрди рдирдВрдмрд░ 2
- vCPU - рд╡рд░реНрдЪреБрдЕрд▓ рд╕реАрдкреАрдпреВ, рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛрд░ред рд╕рдВрдЦреНрдпрд╛ рдХреЛрд░ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИ: 1vCPU - рдПрдХ рдХреЛрд░, 2vCPU - рджреЛ, рдФрд░ рдЗрд╕реА рддрд░рд╣ред
- рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ - рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдерд╛рдиред рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдирд┐рд░реНрджреЗрд╢реЛрдВ рдореЗрдВ
user$
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рд╢рдмреНрдж рдХрд┐рд╕реА рднреА рдЧреНрд░рд╛рд╣рдХ рдорд╢реАрди рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИред - рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ - рдХрд╛рд░реНрдп рдиреЛрдб рдЬрд┐рд╕ рдкрд░ рдкреНрд░рддреНрдпрдХреНрд╖ рдЧрдгрдирд╛ рдХреА рдЬрд╛рдПрдЧреА,
node-X
рд╕рд╛рде рдкрд░реНрдпрд╛рдпрд╡рд╛рдЪреА рд░реВрдк рд╕реЗ - рд╕рдВрд╕рд╛рдзрди рд╡рд╣ рдЗрдХрд╛рдИ рд╣реИ рдЬрд┐рд╕ рдкрд░ рдХреБрдмреЗрд░рдиреЗрдЯ рд╕рдореВрд╣ рдХрд╛ рд╕рдВрдЪрд╛рд▓рди рд╣реЛрддрд╛ рд╣реИред рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдореЗрдВ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рдирд┐рдХрд╛рдп рд╢рд╛рдорд┐рд▓ рд╣реИрдВ ред
рдиреЗрдЯрд╡рд░реНрдХ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рд╕рдорд╛рдзрд╛рди
рдХреНрд▓рд╕реНрдЯрд░ рдмрдврд╝рд╛рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдореИрдВрдиреЗ рдкреНрд░рддрд┐ рдорд╛рд╣ $ 20 рдХреЗ рдмрдЬрдЯ рдореЗрдВ рдлрд┐рдЯ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рд▓реЛрд╣реЗ рдХреЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░реНрдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдХрдо рд╕реЗ рдХрдо рджреЛ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдиреЛрдбреНрд╕ (рдиреЛрдбреНрд╕) рдХреЗ рд╕рд╛рде рдПрдХ рдХрд╛рд░реНрдпрд╢реАрд▓ рдХреНрд▓рд╕реНрдЯрд░ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ред рдЗрд╕рд▓рд┐рдП, рд╢реБрд░реВ рдореЗрдВ рдХреНрд▓рд╕реНрдЯрд░ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рдерд╛:
- 2 рд╡реАрд╕реАрдкреАрдпреВ / 4 рдЬреА рд░реИрдо рдХреЗ рд╕рд╛рде рдорд╢реАрди: рдПрдкреАрдЖрдИ-рд╕рд░реНрд╡рд░ + рдиреЛрдб -1 [20 $]
- 2 рд╡реАрд╕реАрдкреАрдпреВ / 4 рдЬреА рд░реИрдо рдХреЗ рд╕рд╛рде рдорд╢реАрди: рдиреЛрдб -2 [$ 20]
рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рдкрд╣рд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рддрд╛рдХрд┐ рдХреНрд▓рд╕реНрдЯрд░ (рдХрд╛рд░реНрдп рдиреЛрдбреНрд╕, рд╡реЗ рднреА рд╢реНрд░рдорд┐рдХ рд╣реИрдВ) рдФрд░ рдорд╛рд╕реНрдЯрд░ рд╕рд░реНрд╡рд░ рдХреЗ рдПрдкреАрдЖрдИ рдХреЗ рднреАрддрд░ рдЪрд▓ рд░рд╣реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдиреЛрдбреНрд╕ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХрд░ рд╕рдХреЗрдВред
рдирддреАрдЬрддрди, рдореБрдЭреЗ рдЗрд╕ рд╕рд╡рд╛рд▓ рдХрд╛ рдЬрд╡рд╛рдм рдорд┐рд▓рд╛: "рдпрджрд┐ рдХрдо рдпрд╛ рдЬреНрдпрд╛рджрд╛ рд╕рд╕реНрддреА, рд▓реЗрдХрд┐рди рдХрд╛рдордХрд╛рдЬреА рдХреНрд▓рд╕реНрдЯрд░ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реИ, рдЕрдЧрд░ рдореИрдВ рд╡рд╣рд╛рдВ рд╕рдмрд╕реЗ рдореЛрдЯреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдирд╣реАрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред"
$ 20 рдирд┐рд░реНрдгрдп
(рдРрд╕рд╛ рд╣реЛрдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ)
рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рд╕рд╛рдорд╛рдиреНрдп рдЬрд╛рдирдХрд╛рд░реА
(рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реЗ рдЪреЛрд░реА рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЛ рдЕрднреА рднреА рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдпрд╛ рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИ)
рдЕрд╡рдпрд╡ рдФрд░ рдЙрдирдХрд╛ рдкреНрд░рджрд░реНрд╢рди
рдкрд╣рд▓рд╛ рдХрджрдо рдпрд╣ рд╕рдордЭрдирд╛ рдерд╛ рдХрд┐ рдХреНрд▓рд╕реНрдЯрд░ рд╕реЗ рд╕реАрдзреЗ рдЬреБрдбрд╝реЗ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдХрд┐рддрдиреЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред "рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ" рдХреА рдЦреЛрдЬ рдиреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд░рд┐рдгрд╛рдо рдирд╣реАрдВ рджрд┐рдП, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдХрд╛рд░реНрдп рдХреЛ рдЕрдкрдирд╛рдирд╛ рдкрдбрд╝рд╛ред MEM рдФрд░ CPU рдХреА рдорд╛рдк рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВрдиреЗ systemd рд╕реЗ рдЖрдВрдХрдбрд╝реЗ рд▓рд┐рдП - рд╣рдо рдорд╛рди рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдорд╛рдк рдмрд╣реБрдд рд╣реА рд╢реМрдХрд┐рдпрд╛ рддрд░реАрдХреЗ рд╕реЗ рдХрд┐рдП рдЧрдП рдереЗ, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдкрд╛рд╕ рд╕рдЯреАрдХ рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░реНрдп рдирд╣реАрдВ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдЕрднреА рднреА $ 5 рдкреНрд░рддрд┐ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рд╕рд╕реНрддрд╛ рдХреЛрдИ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рдорд┐рд▓рд╛ред
рдХреНрдпреЛрдВ $ 5 рдмрд┐рд▓реНрдХреБрд▓?рд░реВрд╕ рдпрд╛ рд╕реАрдЖрдИрдПрд╕ рдореЗрдВ рд╕рд░реНрд╡рд░ рдХреА рдореЗрдЬрдмрд╛рдиреА рдХрд░рддреЗ рд╕рдордп рд╡реАрдкреАрдПрд╕ / рд╡реАрдбреАрдПрд╕ рдХреЛ рд╕рд╕реНрддрд╛ рдЦреЛрдЬрдирд╛ рд╕рдВрднрд╡ рдерд╛, рд▓реЗрдХрд┐рди рдЖрдИрдПрд▓рд╡реА рдФрд░ рдЗрд╕рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рд╕реЗ рдЬреБрдбрд╝реА рджреБрдЦрдж рдХрд╣рд╛рдирд┐рдпрд╛рдВ рдХреБрдЫ рдЬреЛрдЦрд┐рдо рдкреИрджрд╛ рдХрд░рддреА рд╣реИрдВ рдФрд░ рдЙрдирд╕реЗ рдмрдЪрдиреЗ рдХреА рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рдЗрдЪреНрдЫрд╛ рдХреЛ рдЬрдиреНрдо рджреЗрддреА рд╣реИрдВред
рддреЛ:
- рдорд╛рд╕реНрдЯрд░ рд╕рд░реНрд╡рд░ / рд╕рд░реНрд╡рд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди (рдорд╛рд╕реНрдЯрд░ рдиреЛрдбреНрд╕):
- рдЕрдиреНрдбрд░ (3.2.17): 80 - 100 рдореАрдЯрд░, рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд░реВрдк рд╕реЗ рдЪрдпрдирд┐рдд рд╕рдордп рдкрд░ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред Etcd рдФрд╕рдд рдореЗрдореЛрд░реА рдХреА рдЦрдкрдд 300M рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рдереА;
- рдХреНрдпреВрдм-рдПрдкреЗрд╕реНрд╡рд░ (1.12.x - 1.13.0): 237.6M ~ 300M;
- рдХреНрдпреВрдм-рдХрдВрдЯреНрд░реЛрд▓рд░-рдореИрдиреЗрдЬрд░ (1.12.x - 1.13.0): рд▓рдЧрднрдЧ 90M, 100M рд╕реЗ рдКрдкрд░ рдирд╣реАрдВ рдмрдврд╝рд╛;
- рдХреНрдпреВрдм-рд╢реЗрдбреНрдпреВрд▓рд░ (1.12.x - 1.13.0): рд▓рдЧрднрдЧ 20M, 30-50M рд╕реЗ рдКрдкрд░ рдХреА рдЦрдкрдд рддрдп рдирд╣реАрдВ рд╣реИред
- рд╡рд░реНрдХрд░ рд╕рд░реНрд╡рд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди (рд╡рд░реНрдХрд░ рдиреЛрдбреНрд╕):
- рдХреНрдпреВрдмрд▓реЗрдЯ (1.12.3 - 1.13.1): рд▓рдЧрднрдЧ 35 рдПрдордмреА, 50M рд╕реЗ рдКрдкрд░ рдХреА рдЦрдкрдд рддрдп рдирд╣реАрдВ рд╣реИ;
- рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА (1.12.3 - 1.13.1): рд▓рдЧрднрдЧ 7.5 - 10M;
- рдлрд▓рд╛рд▓реИрди (0.10.0): рд▓рдЧрднрдЧ 15-20 рдореАрдЯрд░;
- coredns (1.3.0): рд▓рдЧрднрдЧ 25M;
- рдХрдВрдЯреЗрдирд░ (1.2.1): рдХрдВрдЯреЗрдирд░ рдХреА рдЦрдкрдд рдХрдо рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдВрдХрдбрд╝реЗ рднреА рдбреЗрдорди рджреНрд╡рд╛рд░рд╛ рд╢реБрд░реВ рдХрд┐рдП рдЧрдП рдХрдВрдЯреЗрдирд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рджрд░реНрд╢рд╛рддреЗ рд╣реИрдВред
рдХреНрдпрд╛ рдорд╛рд╕реНрдЯрд░ рдиреЛрдбреНрд╕ рдкрд░ рдХрдВрдЯреЗрдирд░ / рдбреЙрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ?рдирд╣реАрдВ, рдЬрд░реВрд░рдд рдирд╣реАрдВ ред рдорд╛рд╕реНрдЯрд░ рдиреЛрдб рдХреЛ рдкреНрд░рддрд┐ secker рдпрд╛ рдХрдВрдЯреЗрдирд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдореИрдиреБрдЕрд▓ рд╣реИрдВ рдХрд┐ рдХрд┐рд╕реА рдЙрджреНрджреЗрд╢реНрдп рдпрд╛ рдЕрдиреНрдп рдХреЗ рд▓рд┐рдП рдХрдВрдЯреЗрдирд░реАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рд╡рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред рдкреНрд░рд╢реНрди рдореЗрдВ рд╡рд┐рдиреНрдпрд╛рд╕ рдореЗрдВ, рдХрдВрдЯреЗрдирд░рдб рдХреЛ рдирд┐рд░реНрднрд░рддрд╛ рдХреА рд╕реВрдЪреА рд╕реЗ рдЬрд╛рдирдмреВрдЭрдХрд░ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореИрдВ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдХрд┐рд╕реА рднреА рд╕реНрдкрд╖реНрдЯ рдлрд╛рдпрджреЗ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВред
рдХреНрд▓рд╕реНрдЯрд░ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдКрдкрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдиреНрдпреВрдирддрдо рдФрд░ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдЬрдм рддрдХ рдЖрдк рдЕрдкрдиреА рдЗрдЪреНрдЫрд╛рдиреБрд╕рд╛рд░ рдХреБрдЫ рдЬреЛрдбрд╝рдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ, рдХреЛрдИ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╛рд░реНрд░рд╡рд╛рдИ / рдШрдЯрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рдШрд░ рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░реАрдХреНрд╖рдг рдХреНрд▓рд╕реНрдЯрд░ рдпрд╛ рдХреНрд▓рд╕реНрдЯрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, 1vCPU / 1G RAM рдорд╛рд╕реНрдЯрд░ рдиреЛрдб рдХреЛ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛ред рдмреЗрд╢рдХ, рдорд╛рд╕реНрдЯрд░ рдиреЛрдб рдкрд░ рд▓реЛрдб рд╢рд╛рдорд┐рд▓ рд╢реНрд░рдорд┐рдХреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛, рд╕рд╛рде рд╣реА рдПрдкреАрдЖрдИ-рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ рдФрд░ рдорд╛рддреНрд░рд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реЛрдЧрд╛ред
рдореИрдВрдиреЗ рдорд╛рд╕реНрдЯрд░ рдФрд░ рд╡рд░реНрдХрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╡рд┐рд╕реНрдлреЛрдЯ рдХрд┐рдпрд╛:
- рд╕реНрдерд╛рдкрд┐рдд рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рде 1x рдорд╛рд╕реНрдЯрд░: рд╡рдЧреИрд░рд╣, рдХреНрдпреВрдм-рдПрдкреЗрд╕реНрд╡рд░, рдХреНрдпреВрдм-рдХрдВрдЯреНрд░реЛрд▓рд░-рдореИрдиреЗрдЬрд░, рдХреНрдпреВрдм-рд╢реЗрдбреНрдпреВрд▓рд░
- рд╕реНрдерд╛рдкрд┐рдд рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рде 2x рд╢реНрд░рдорд┐рдХ: рдХрдВрдЯреЗрдирд░, рдХреЛрд░рдбрдиреНрд╕, рдлрд▓рд╛рд▓реИрди, рдХреНрдпреВрдмрд▓реЗрдЯ, рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА
рд╡рд┐рдиреНрдпрд╛рд╕
рд╡рд┐рдЬрд╝рд╛рд░реНрдб рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдШрдЯрдХреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ:
рдЖрджрд┐ - рдПрдкреАрдЖрдИ-рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рд╛рде рд╣реА рдлрд▓рд╛рд▓реИрди рдХреЗ рд▓рд┐рдП;
kube-apiserver - рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдПрдкреАрдЖрдИ-рд╕рд░реНрд╡рд░;
рдХреНрдпреВрдм-рдирд┐рдпрдВрддреНрд░рдХ-рдкреНрд░рдмрдВрдзрдХ - рдШрдЯрдирд╛рдУрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдФрд░ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП;
рдХреНрдпреВрдм-рд╢реЗрдбреНрдпреВрд▓рд░ - рдПрдкреАрдЖрдИ-рд╕рд░реНрд╡рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрдВрдЬреАрдХреГрдд рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд╡рд┐рддрд░рдг рдХреЗ рд▓рд┐рдП - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЪреВрд▓реНрд╣рд╛ ред
рд╡рд░реНрдХрд╣реЙрд░реНрд╕ рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдШрдЯрдХреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ:
рдХреНрдпреВрдмрд▓реЗрдЯ - рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪреВрд▓реНрд╣рд╛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП;
рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА - рдХреБрдмреЗрд░рдиреЗрдЯ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдорд╛рд░реНрдЧ / рдЖрдпреЛрдЬрди рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП;
coredns - рд░рдирд┐рдВрдЧ рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░ рд╕реЗрд╡рд╛ рдЦреЛрдЬ рдХреЗ рд▓рд┐рдП;
рдлрд▓рд╛рд▓реИрди - рд╡рд┐рднрд┐рдиреНрди рдиреЛрдбреНрд╕ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рдиреЗрдЯрд╡рд░реНрдХ рдПрдХреНрд╕реЗрд╕ рдХреЗ рдЖрдпреЛрдЬрди рдХреЗ рд▓рд┐рдП, рд╕рд╛рде рд╣реА рдХреНрд▓рд╕реНрдЯрд░ рдиреЛрдбреНрд╕ (рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдиреЛрдб) рдХреЗ рдмреАрдЪ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рдЧрддрд┐рд╢реАрд▓ рд╡рд┐рддрд░рдг рдХреЗ рд▓рд┐рдПред
CoreDNSрдпрд╣рд╛рдВ рдПрдХ рдЫреЛрдЯрд╛ рд╡рд┐рд╖рдпрд╛рдВрддрд░ рдмрдирд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП: рдорд╛рд╕реНрдЯрд░ рд╕рд░реНрд╡рд░ рдкрд░ рднреА рдХреЛрд░рдбреЛрди рд▓реЙрдиреНрдЪ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдХреЛрдИ рднреА рдкреНрд░рддрд┐рдмрдВрдз рдирд╣реАрдВ рд╣реИ рдЬреЛ coredns рдХреЛ рдХрд╛рдо рдиреЛрдбреНрд╕ рдкрд░ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рдХрд░реЗрдЧрд╛, coredns.service рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░, рдЬреЛ рд╕рд┐рд╕реНрдЯрдо-рд╣рд▓ рдХреА рдЧрдИ рд╕реЗрд╡рд╛ рдХреЗ рд╕рд╛рде рд╕рдВрдШрд░реНрд╖ рдХреЗ рдХрд╛рд░рдг рдорд╛рдирдХ / рдЕрдирдореЙрдбрд┐рдлрд╛рдЗрдб Ubuntu рд╕рд░реНрд╡рд░ рдкрд░ рд╢реБрд░реВ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдореИрдВрдиреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреА, рдХреНрдпреЛрдВрдХрд┐ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдиреЛрдбреНрд╕ рдкрд░ рд╕реНрдерд┐рдд 2 рдПрдирдПрд╕ рд╕рд░реНрд╡рд░ рдореБрдЭрд╕реЗ рдХрд╛рдлреА рдЦреБрд╢ рдереЗред
рдШрдЯрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕рднреА рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдЦреБрдж рдХреЛ рдкрд░рд┐рдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдм рд╕рдордп рдмрд░реНрдмрд╛рдж рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рдЖрдк рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рдЙрдирдХреЗ рд╕рд╛рде рдЦреБрдж рдХреЛ рдкрд░рд┐рдЪрд┐рдд рдХрд░реЗрдВ рдЬреЛ рдХрдард┐рди рд░рд╛рд╕реНрддрд╛ рдЧрд╛рдЗрдб рд╣реИред рдореИрдВ рдЕрдкрдиреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╡рд┐рдХрд▓реНрдк рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реВрдВрдЧрд╛ред
рдлрд╝рд╛рдЗрд▓реЗрдВ
рд╡рд┐рдЬрд╝рд╛рд░реНрдб рдФрд░ рдХрд╛рд░реНрдп рдиреЛрдбреНрд╕ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╕реНрдЯрд░ рдШрдЯрдХреЛрдВ рдХреЗ рдХрд╛рдордХрд╛рдЬ рдХреЗ рд▓рд┐рдП рд╕рднреА рдлрд╛рдЗрд▓реЗрдВ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП / var / lib / kubernetes / рдореЗрдВ рд░рдЦреА рдЧрдИ рд╣реИрдВред рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдЖрдк рдЙрдиреНрд╣реЗрдВ рджреВрд╕рд░реЗ рддрд░реАрдХреЗ рд╕реЗ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВред
рдкреНрд░рдорд╛рдгрдкрддреНрд░
рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдХреА рдкреАрдврд╝реА рдХреЗ рд▓рд┐рдП рдЖрдзрд╛рд░ рдЕрднреА рднреА рдПрдХ рд╣реА рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХрдард┐рди рддрд░реАрдХрд╛ рд╣реИ , рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдХреЛрдИ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдВрддрд░ рдирд╣реАрдВ рд╣реИрдВред рдЕрдзреАрдирд╕реНрде рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕реАрдПрдлрдПрд╕рдПрд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдЖрд╕рдкрд╛рд╕ рд╕рд░рд▓ рдмреИрд╢ рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЛ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ - рдбрд┐рдмрдЧрд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдпрд╣ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рдерд╛ред
рдЖрдк рдиреАрдЪреЗ рджреА рдЧрдИ рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдЕрдкрдиреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рдорд╛рдг рдкрддреНрд░ рддреИрдпрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рд╡реНрдпрдВрдЬрдиреЛрдВ рдХреЛ рдХрдард┐рди рддрд░реАрдХрд╛ рдпрд╛ рдЕрдиреНрдп рдЙрдкрдпреБрдХреНрдд рдЙрдкрдХрд░рдгред
рдмреИрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ рдЬреЗрдирд░реЗрд╢рдирдЖрдк рдпрд╣рд╛рдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдмреВрдЯрд╕реНрдЯреНрд░реИрдк ред рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдлрд╝рд╛рдЗрд▓ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ / env.sh рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ, рдЕрдкрдиреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВред рдПрдХ рдЙрджрд╛рд╣рд░рдг:
$ cd certs
рдпрджрд┐ рдЖрдкрдиреЗ env.sh
рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рд╕рднреА рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдЙрддреНрдкрдиреНрди рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдХреЛ рдЫреВрдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдЖрдкрдиреЗ рдХрд┐рд╕реА рдмрд┐рдВрджреБ рдкрд░ рдЧрд▓рддреА рдХреА рд╣реИ, рддреЛ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХреЛ рднрд╛рдЧреЛрдВ рдореЗрдВ рдкреБрдирд░реНрдЬреАрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрдкрд░реЛрдХреНрдд рдмреИрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рддреБрдЪреНрдЫ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдЫрд╛рдВрдЯрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИред
рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдиреЛрдЯ - рдЖрдкрдХреЛ рдЕрдХреНрд╕рд░ ca.pem
рдФрд░ ca-key.pem
рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдирд╣реАрдВ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рд╕рднреА рдмрд╛рдж рдХреЗ рдкреНрд░рдорд╛рдг рдкрддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдореВрд▓ рдкреНрд░рдорд╛рдг рдкрддреНрд░ рд╣реИрдВ, рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдЖрдкрдХреЛ рд╕рднреА рд╕рд╛рде рд╡рд╛рд▓реЗ рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕рднреА рдорд╢реАрдиреЛрдВ рдФрд░ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рддрдХ рдкрд╣реБрдВрдЪрд╛рдирд╛ рд╣реЛрдЧрд╛ред
рдЧреБрд░реБ
рдорд╛рд╕реНрдЯрд░ рдиреЛрдб рдкрд░ рд╕реЗрд╡рд╛рдПрдВ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдХреЛ /var/lib/kubernetes/
: рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
- kubernetes-key.pem - рдорд╛рд╕реНрдЯрд░ рд╕рд░реНрд╡рд░ рдкрд░ рд░рд╣рддрд╛ рд╣реИред
- рд╕реЗрд╡рд╛- account.pem - рдХреЗрд╡рд▓ рдШрди-рдирд┐рдпрдВрддреНрд░рдХ-рдкреНрд░рдмрдВрдзрдХ рдбреЗрдореЙрди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред
- service-account-key.pem - рдЗрд╕реА рддрд░рд╣ред
рдХрд╛рдо рдХреА рдЗрдХрд╛рдЗрдпрд╛рдБ
- ca.pem - рдХрд╛рдо рдиреЛрдбреНрд╕ (рдХреНрдпреВрдмрд▓реЗрдЯ, рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА) рдкрд░ рд╢рд╛рдорд┐рд▓ рд╕рднреА рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рд╕рд╛рде рд╣реА рдлрд▓рд╛рд▓реИрди, рдХреЛрд░рдбрдиреНрд╕ рдХреЗ рд▓рд┐рдП рднреАред рдЕрдиреНрдп рдЪреАрдЬреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдХреБрдмреЗрдХреЙрдиреНрдл рдлрд╛рдЗрд▓ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрдм рд╡реЗ рдХреБрдмреНрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддреЗ рд╣реИрдВред
- kubernetes-key.pem - рдХреЛ рдлреЗрд▓реНрдб рдФрд░ рдХреЙрд░реНрдбрди рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдХреЙрд░реНрдб рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреЛ рдПрдкреА рдорд╛рд╕реНрдЯрд░ рдиреЛрдб рдкрд░ рд╕реНрдерд┐рдд рд╣реИред
- kubernetes.pem - рдкрд┐рдЫрд▓реЗ рдПрдХ рдХреЗ рд╕рдорд╛рди, рдХреЗрд╡рд▓ рдлрд▓рд╛рд▓реИрди рдФрд░ рдХреЙрд░реНрдбрди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХред
- kubelet / node-1.pem - рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдиреЛрдб -1 рдХреЗ рд▓рд┐рдП рдХреБрдВрдЬреАред
- kubelet / node-1-key.pem - рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдиреЛрдб -1 рдХреЗ рд▓рд┐рдП рдХреБрдВрдЬреАред
рдорд╣рддреНрд╡рдкреВрд░реНрдг! рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдиреЛрдб рд╣реИрдВ, рддреЛ рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдб рдореЗрдВ node-X.kubeconfig
рдЕрдВрджрд░ рдиреЛрдб- node-X-key.pem
, node-X.pem
рдФрд░ node-X.kubeconfig
рдлрд╛рдЗрд▓реЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВрдЧреАред
рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдбреАрдмрдЧ рдХрд░рдирд╛рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдбреАрдмрдЧ рдХрд░рдирд╛
рдХрднреА-рдХрднреА рдЖрдкрдХреЛ рдпрд╣ рджреЗрдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ рдХрд┐ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХрд┐рд╕ IP / DNS рд╣реЛрд╕реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред cfssl-certinfo -cert <cert>
рдХрдорд╛рдВрдб рд╣рдореЗрдВ рдЗрд╕рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо node-1.pem
рд▓рд┐рдП рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА node-1.pem
:
$ cfssl-certinfo -cert node-1.pem
{ "subject": { "common_name": "system:node:node-1", "country": "RU", "organization": "system:nodes", "organizational_unit": "Infrastructure Unit", "locality": "Moscow", "province": "Moscow", "names": [ "RU", "Moscow", "Moscow", "system:nodes", "Infrastructure Unit", "system:node:node-1" ] }, "issuer": { "common_name": "Kubernetes", "country": "RU", "organization": "Kubernetes", "organizational_unit": "Infrastructure", "locality": "Moscow", "province": "Moscow", "names": [ "RU", "Moscow", "Moscow", "Kubernetes", "Infrastructure", "Kubernetes" ] }, "serial_number": "161113741562559533299282037709313751074033027073", "sans": [ "w40k.net", "node-1", "178.79.168.130", "192.168.164.230" ], "not_before": "2019-01-04T14:24:00Z", "not_after": "2029-01-01T14:24:00Z", "sigalg": "SHA256WithRSA", "authority_key_id": "6:C8:94:67:59:55:19:82:AD:ED:6D:50:F1:89:B:8D:46:78:FD:9A", "subject_key_id": "A1:5E:B3:3C:45:14:3D:C6:C:A:97:82:1:D5:2B:75:1A:A6:9D:B0", "pem": "<pem content>" }
рдХреНрдпреВрдмрд▓реЗрдЯ рдФрд░ рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рд╕рднреА рдкреНрд░рдорд╛рдг рдкрддреНрд░ рд╕реАрдзреЗ рд╕рдВрдмрдВрдзрд┐рдд kubeconfig рдореЗрдВ рдПрдореНрдмреЗрдбреЗрдб рд╣реИрдВред
kubeconfig
рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдХреБрдмреЗрдХреЙрдиреНрдлрд┐рдЧ рдХреЛ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрдард┐рди рддрд░реАрдХреЗ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣рд╛рдВ рдХреБрдЫ рдорддрднреЗрдж рд╢реБрд░реВ рд╣реЛрддреЗ рд╣реИрдВред рдореИрдиреБрдЕрд▓ kubedns
рдФрд░ cni bridge
kubedns
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рдореЗрдВ coredns рдФрд░ flannel рднреА рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдмрджрд▓реЗ рдореЗрдВ, рдпреЗ рджреЛрдиреЛрдВ рд╕реЗрд╡рд╛рдПрдВ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ kubeconfig
рдЗрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП kubeconfig
рдХрд╛ рдЙрдкрдпреЛрдЧ kubeconfig
ред
$ cd certs
рдЧреБрд░реБ
рд╡рд┐рдЬрд╝рд╛рд░реНрдб рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрди kubeconfig рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ (рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдкреАрдврд╝реА рдХреЗ рдмрд╛рдж рдЙрдиреНрд╣реЗрдВ certs/kubeconfig
рдореЗрдВ рд▓рд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ):
master /var/lib/kubernetes/$ tree -L 2 . +-- kube-controller-manager.kubeconfig L-- kube-scheduler L-- kube-scheduler.kubeconfig
рдЗрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕реЗрд╡рд╛ рдШрдЯрдХреЛрдВ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдЧрд╛ред
рдХрд╛рдо рдХреА рдЗрдХрд╛рдЗрдпрд╛рдБ
рдХрд╛рдо рдиреЛрдбреНрд╕ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрди рдХреБрдмреЗрдХреЙрдиреНрдлрд╝рд┐рдЧ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ:
node-1 /var/lib/kubernetes/$ tree -L 2 . +-- coredns ┬ж L-- coredns.kubeconfig +-- flanneld ┬ж L-- flanneld.kubeconfig +-- kubelet ┬ж L-- node-1.kubeconfig L-- kube-proxy L-- kube-proxy.kubeconfig
рд╕реЗрд╡рд╛ рдХрд╛ рд╢реБрднрд╛рд░рдВрдн
рд╕реЗрд╡рд╛рдПрдВрдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рдореЗрд░реЗ рдХрд╛рдо рдХреЗ рдиреЛрдбреНрд╕ рд╡рд┐рднрд┐рдиреНрди рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдФрд░ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕рд┐рд╕реНрдЯрдордб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд┐рдХрд▓реНрдк рджреЗрддреЗ рд╣реИрдВред рдЙрдирдХреА рдорджрдж рд╕реЗ, рдпрд╣ рд╕рдордЭрдирд╛ рдЖрд╕рд╛рди рд╣реИ рдХрд┐ рдХреМрди рд╕реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдФрд░ рдХрд┐рди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдЖрдкрдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЧрдВрддрд╡реНрдп рдЭрдВрдбреЗ рдХреЗ рд╕рд╛рде рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рддреЗ рд╕рдордп рдЙрдиреНрд╣реЗрдВ рдмрдбрд╝реА рд╕рдорд╕реНрдпрд╛рдПрдВ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред
рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ service-name.service
рдХреЛ /lib/systemd/system/
рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдХреЙрдкреА рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд╣рд╛рдБ systemd рдХреЗ рд▓рд┐рдП рд╕реЗрд╡рд╛рдПрдБ рд╕реНрдерд┐рдд рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдЪрд╛рд▓реВ рдХрд░реЗрдВ рдФрд░ рд╕реЗрд╡рд╛ рд╢реБрд░реВ рдХрд░реЗрдВред рдХреНрдпреВрдм-рдЕрдкреАрдЬрд╝рд░ рдХреЗ рд▓рд┐рдП рдЙрджрд╛рд╣рд░рдг:
$ systemctl enable kube-apiserver.service $ systemctl start kube-apiserver.service
рдмреЗрд╢рдХ, рд╕рднреА рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рд╣рд░рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рдпрд╛рдиреА, рдЪрд▓ рд░рд╣рд╛ рд╣реИ рдФрд░ рдХрд╛рд░реНрдп рдХрд░ рд░рд╣рд╛ рд╣реИ)ред рдпрджрд┐ рдЖрдк рдХреЛрдИ рдЧрд▓рддреА рдХрд░рддреЗ рд╣реИрдВ, рддреЛ journal -f -t kube-apiserver
journalct -xe
рдпрд╛ journal -f -t kube-apiserver
рдЖрдкрдХреЛ рдпрд╣ рд╕рдордЭрдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рдЧрд▓рдд рд╣реИред
рдПрдХ рдмрд╛рд░ рдореЗрдВ рд╕рднреА рд╕рд░реНрд╡рд░реЛрдВ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдореЗрдВ рдЬрд▓реНрджрдмрд╛рдЬреА рди рдХрд░реЗрдВ, рдПрдХ рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛ рддрд╛рдХрд┐ рдХрдмрд╛рдбрд╝ рдФрд░ рдХреНрдпреВрдм-рдПрдкреЗрд╕реНрд╡рд░ рдХреЛ рд╕рдХреНрд╖рдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдпрджрд┐ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реЛ рдЧрдпрд╛, рдФрд░ рдЖрдкрдиреЗ рддреБрд░рдВрдд рд╡рд┐рдЬрд╝рд╛рд░реНрдб рдореЗрдВ рд╕рднреА рдЪрд╛рд░ рд╕реЗрд╡рд╛рдПрдВ рдЕрд░реНрдЬрд┐рдд рдХреАрдВ, рддреЛ рд╡рд┐рдЬрд╝рд╛рд░реНрдб рдХреЗ рд▓реЙрдиреНрдЪ рдХреЛ рд╕рдлрд▓ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЧреБрд░реБ
рдЖрдк рд╕рд┐рд╕реНрдЯрдордб рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдЗрдирд┐рдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЧреБрд░реБ рдХреЗ рд▓рд┐рдП:
- systemd / etcd
- systemd / kube-apiserver
- рд╕рд┐рд╕реНрдЯрдордб / рдХреНрдпреВрдм-рдХрдВрдЯреНрд░реЛрд▓рд░-рдореИрдиреЗрдЬрд░
- systemd / kube-рдЕрдиреБрд╕реВрдЪрдХ
рдХрд╛рдо рдХреА рдЗрдХрд╛рдЗрдпрд╛рдБ
- рд╕рд┐рд╕реНрдЯрдордб / рдХрдВрдЯреЗрдирд░
- рд╕рд┐рд╕реНрдЯрдордб / рдХреНрдпреВрдмрд▓реЗрдЯ
- рд╕рд┐рд╕реНрдЯрдордб / рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА
- рд╕рд┐рд╕реНрдЯрдордб / рдХреЛрд░рдбрдиреНрд╕
- рд╕рд┐рд╕реНрдЯрдордб / рдлрд▓рд╛рд▓реИрди
рдЧреНрд░рд╛рд╣рдХ
рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, ${HOME}/.kube/config
рдХреЗрд╡рд▓ certs/kubeconfig/admin.kubeconfig
(рдЗрд╕реЗ рдЬреЗрдирд░реЗрдЯ рдХрд░рдиреЗ рдпрд╛ рдЗрд╕реЗ рдЦреБрдж рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрд╛рдж) рдХреЙрдкреА рдХрд░реЗрдВ ${HOME}/.kube/config
Kubectl рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдФрд░ kube-apiserver рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВред рдореИрдВ рдЖрдкрдХреЛ рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рдпрд╛рдж рджрд┐рд▓рд╛ рджреВрдВ рдХрд┐ рдЗрд╕ рд╕реНрддрд░ рдкрд░, рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпреВрдм-рдПрдкреЗрд╕реЗрд░рд╡рд░ рдХреЗ рд▓рд┐рдП, рдХреЗрд╡рд▓ рдЖрджрд┐ рдХреЛ рдХрд╛рд░реНрдп рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдереЛрдбрд╝реА рджреЗрд░ рдмрд╛рдж рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рдкреВрд░реНрдг рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рд╢реЗрд╖ рдШрдЯрдХреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
рдЬрд╛рдБрдЪ рдХрд░реЗрдВ рдХрд┐ рдХреНрдпреВрдм-рдЕрдкреАрдЬрд╝рд░ рдФрд░ рдХреБрдмреЗрдЯрд▓ рдХрд╛рд░реНрдп:
$ kubectl version Client Version: version.Info{Major:"1", Minor:"13", GitVersion:"v1.13.0", "extra info": "..."} Server Version: version.Info{Major:"1", Minor:"13", GitVersion:"v1.13.0", "extra info": "..."}
рдлрд▓рд╛рд▓реИрди рд╡рд┐рдиреНрдпрд╛рд╕
рдПрдХ рдлрд▓рд╛рд▓реИрди рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ vxlan
рдмреИрдХреЗрдВрдб рдкрд░ рдмрд╕ рдЧрдпрд╛ред рдпрд╣рд╛рдВ рдмреИрдХрдПрдВрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдкрдврд╝реЗрдВред
рд╣реЛрд╕реНрдЯ-рдЬреАрдбрдмреНрд▓реНрдпреВ рдФрд░ рдЗрд╕рдиреЗ рдХрд╛рдо рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛рдореБрдЭреЗ рддреБрд░рдВрдд рдХрд╣рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ VPS рдкрд░ рдХреБрдмреЗрд░рдиреЗрдЯ рдХреНрд▓рд╕реНрдЯрд░ рдЪрд▓рд╛рдиреЗ рд╕реЗ host-gw
рдмреИрдХрдПрдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рд╕реАрдорд┐рдд рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред рдЕрдиреБрднрд╡реА рдиреЗрдЯрд╡рд░реНрдХ рдЗрдВрдЬреАрдирд┐рдпрд░ рдирд╣реАрдВ рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг, рдореИрдВрдиреЗ рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдЧрднрдЧ рджреЛ рджрд┐рди рдбрд┐рдмрдЧрд┐рдВрдЧ рдореЗрдВ рдмрд┐рддрд╛рдП рдХрд┐ рд▓реЛрдХрдкреНрд░рд┐рдп VDS / VPS рдкреНрд░рджрд╛рддрд╛рдУрдВ рдкрд░ рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдХреНрдпрд╛ рдереАред
Linode.com рдФрд░ digitalocean рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдкреНрд░рджрд╛рддрд╛ рдПрдХ рдирд┐рдЬреА рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд▓рд┐рдП рдИрдорд╛рдирджрд╛рд░ L2 рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдмрджрд▓реЗ рдореЗрдВ, рдЗрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдиреЛрдбреНрд╕ рдХреЗ рдмреАрдЪ рдиреЗрдЯрд╡рд░реНрдХ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИ:

рдиреЗрдЯрд╡рд░реНрдХ рдЯреНрд░реИрдлрд┐рдХ рдХреЗ рд▓рд┐рдП рдиреЛрдбреНрд╕ рдХреЗ рдмреАрдЪ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рд╛рдорд╛рдиреНрдп рд░реВрдЯрд┐рдВрдЧ рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛ред рдпрд╣ рдордд рднреВрд▓реЛ рдХрд┐ net.ipv4.ip_forward рдХреЛ 1 рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдлрд╝рд┐рд▓реНрдЯрд░ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ FORWARD рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рдиреЛрдбреНрд╕ рдХреЗ рд▓рд┐рдП рдирд┐рд╖реЗрдз рдирд┐рдпрдо рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
node1$ ip route add 10.200.12.0/24 via 192.168.1.2 node2$ ip route add 10.200.8.0/24 via 192.168.1.1
[10.200.80.23 container-1]->[192.168.1.1 node-1]->[192.168.1.2 node-2]->[10.200.12.5 container-2]
рдпрд╣ рдареАрдХ рд╡рд╣реА рд╣реИ рдЬреЛ рд╕рдВрдХреЗрддрд┐рдд рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ (рдФрд░, рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдЖрдорддреМрд░ рдкрд░ рд╕рднреА рдкрд░) рд╡реАрдкреАрдПрд╕ / рд╡реАрдбреАрдПрд╕ред
рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдиреЛрдбреНрд╕ рдХреЗ рдмреАрдЪ рдЙрдЪреНрдЪ рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЖрдкрдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ , рддреЛ рдЖрдкрдХреЛ рдХреНрд▓рд╕реНрдЯрд░ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП $ 20 рд╕реЗ рдЕрдзрд┐рдХ рдЦрд░реНрдЪ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдЖрдк рд╡рд╛рдВрдЫрд┐рдд рдлрд▓рд╛рд▓реИрди рд╡рд┐рдиреНрдпрд╛рд╕ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрджрд┐ / рдлрд▓рд╛рд▓реИрди рд╕реЗ set-flannel-config.sh
рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдпрд╛рдж рд░рдЦрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ : рдпрджрд┐ рдЖрдк рдмреИрдХрдПрдВрдб рдХреЛ рдмрджрд▓рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдХреЙрдиреНрдЯрд░реНрдб рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рд╣рдЯрд╛рдиреЗ рдФрд░ рд╕рднреА рдиреЛрдбреНрд╕ рдкрд░ рд╕рднреА рдлрд╝реНрд▓реЗрдирд▓рд╛рдЗрди рдбреЗрдореЙрди рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдмреБрджреНрдзрд┐рдорд╛рдиреА рд╕реЗ рдЪреБрдиреЗрдВред рдбрд┐рдлрд╝реЙрд▓реНрдЯ vxlan рд╣реИред
master$ export ETCDCTL_CA_FILE='/var/lib/kubernetes/ca.pem' master$ export ETCDCTL_CERT_FILE='/var/lib/kubernetes/kubernetes.pem' master$ export ETCDCTL_KEY_FILE='/var/lib/kubernetes/kubernetes-key.pem' master$ export ETCDCTL_ENDPOINTS='https://127.0.0.1:2379' master$ etcdctl ls /coreos.com/network/subnets/ /coreos.com/network/subnets/10.200.8.0-24 /coreos.com/network/subnets/10.200.12.0-24 master$ etcdctl get /coreos.com/network/subnets/10.200.8.0-24 {"PublicIP":"178.79.168.130","BackendType":"vxlan","BackendData":{"VtepMAC":"22:ca:ac:15:71:59"}}
рдЬрдм рдЖрдк etcd рдореЗрдВ рд╡рд╛рдВрдЫрд┐рдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкрдВрдЬреАрдХреГрдд рдХрд░ рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рд░реНрдп рдиреЛрдб рдкрд░ рдЗрд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрд╡рд╛ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
flannel.service
рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рдпрд╣рд╛рдВ рд▓рд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: systemd / flannel
flannel.service [Unit] Description=Flanneld overlay address etcd agent After=network.target [Service] Type=notify #: current host ip. don't change if ip have not changed Environment=PUBLIC_IP=178.79.168.130 Environment=FLANNEL_ETCD=https://192.168.153.60:2379 ExecStart=/usr/bin/flanneld \ -etcd-endpoints=${FLANNEL_ETCD} -etcd-prefix=${FLANNEL_ETCD_KEY} \ -etcd-cafile=/var/lib/kubernetes/ca.pem \ -etcd-certfile=/var/lib/kubernetes/kubernetes.pem \ -etcd-keyfile=/var/lib/kubernetes/kubernetes-key.pem \ -etcd-prefix=/coreos.com/network \ -healthz-ip=127.0.0.1 \ -subnet-file=/run/flannel/subnet.env \ -public-ip=${PUBLIC_IP} \ -kubeconfig-file=/var/lib/kubernetes/config/kubeconfig/flanneld.kubeconfig \ $FLANNEL_OPTIONS ExecStartPost=/usr/libexec/flannel/mk-docker-opts.sh -k DOCKER_NETWORK_OPTIONS -d /run/flannel/docker Restart=on-failure RestartSec=5 [Install] RequiredBy=docker.service
рд╕рдорд╛рдпреЛрдЬрди
рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╣рдореЗрдВ cad.pem, kubernetes.pem рдФрд░ kubernetes-key.pem рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдореЗрдВ рдкреНрд░рд╛рдзрд┐рдХреГрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЕрдиреНрдп рд╕рднреА рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛрдИ рднреА рдкрд╡рд┐рддреНрд░ рдЕрд░реНрде рдирд╣реАрдВ рд░рдЦрддреЗ рд╣реИрдВред рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рд╡рд╣ рд╡реИрд╢реНрд╡рд┐рдХ рдЖрдИрдкреА рдкрддреЗ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдиреЗрдЯрд╡рд░реНрдХ рдкреИрдХреЗрдЯ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рдмреАрдЪ рдЬрд╛рдПрдВрдЧреЗ:

( рдлрд▓рд╛рд▓реИрди рдХреЗ рд╕рд╛рде рдорд▓реНрдЯреА-рд╣реЛрд╕реНрдЯ рдиреЗрдЯрд╡рд░реНрдХрд┐рдВрдЧ рдУрд╡рд░рд▓реЗ )
рдлрд▓рд╛рд▓реИрди рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╢реБрд░реВ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдлрд▓рд╛рд▓реИрди.рдПрди рдиреЗрдЯрд╡рд░реНрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЦреЛрдЬрдирд╛ рдЪрд╛рд╣рд┐рдП:
node-1$ ifconfig flannel.100: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1450 inet 10.200.8.0 netmask 255.255.255.255 broadcast 0.0.0.0 inet6 fe80::20ca:acff:fe15:7159 prefixlen 64 scopeid 0x20<link> ether 22:ca:ac:15:71:59 txqueuelen 0 (Ethernet) RX packets 18853 bytes 1077085 (1.0 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 11856 bytes 264331154 (252.0 MiB) TX errors 0 dropped 47 overruns 0 carrier 0 collisions 0
рдЬрд╛рдБрдЪрдирд╛ рдХрд┐ рдЖрдкрдХреЗ рдЗрдВрдЯрд░рдлреЗрд╕ рд╕рднреА рдиреЛрдбреНрд╕ рдкрд░ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдиреЛрдб -1 рдФрд░ рдиреЛрдб -2 рдореЗрдВ рдХреНрд░рдорд╢рдГ 10.200.8.0/24 рдФрд░ 10.200.12.0/24 рдиреЗрдЯрд╡рд░реНрдХ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдПрдХ рдирд┐рдпрдорд┐рдд icmp рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде рд╣рдо рдЙрдирдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ:
#: node-2 node-1 node-1 $ ping -c 1 10.200.12.0 PING 10.200.12.0 (10.200.12.0) 56(84) bytes of data. 64 bytes from 10.200.12.0: icmp_seq=1 ttl=64 time=4.58 ms #: node-1 node-2 node-2 $ ping -c 1 10.200.8.0 PING 10.200.8.0 (10.200.8.0) 56(84) bytes of data. 64 bytes from 10.200.8.0: icmp_seq=1 ttl=64 time=1.44 ms
рдХрд┐рд╕реА рднреА рд╕рдорд╕реНрдпрд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдореЗрдЬрдмрд╛рдиреЛрдВ рдХреЗ рдмреАрдЪ рдпреВрдбреАрдкреА рдкрд░ iptables рдореЗрдВ рдХреЛрдИ рдХрд╛рдЯрдиреЗ рдХреЗ рдирд┐рдпрдо рд╣реИрдВред
рдХрдВрдЯреЗрдирд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди
рдЬрдЧрд╣ рдЖрджрд┐ / рдХрдВрдЯреЗрдирд░ / config.toml in /etc/containerd/config.toml
рдпрд╛ рдЬрд╣рд╛рдБ рднреА рдЖрдкрдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛ, рдореБрдЦреНрдп рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╕реЗрд╡рд╛ рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдкрде рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╛рдж рд░рдЦреЗрдВ (рдХрдВрдЯреЗрдирд░рдб . рд╕реЗрд╡рд╛, рдиреАрдЪреЗ рд╡рд░реНрдгрд┐рдд)ред
рдорд╛рдирдХ рдХреЗ рдХреБрдЫ рд╕рдВрд╢реЛрдзрдиреЛрдВ рдХреЗ рд╕рд╛рде рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рдиред рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг enable_tls_streaming = true
рдХрд┐ рдЖрдк enable_tls_streaming = true
рдХреЛ рд╕реЗрдЯ рди рдХрд░реЗрдВ рдпрджрд┐ рдЖрдк рдпрд╣ рдирд╣реАрдВ рд╕рдордЭрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдРрд╕рд╛ рдХреНрдпреЛрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВред kubectl exec
, .
containerd.service
containerd.service [Unit] Description=containerd container runtime Documentation=https://containerd.io After=network.target [Service] ; uncomment this if your overlay module are built as module ; ExecStartPre=/sbin/modprobe overlay ExecStart=/usr/bin/containerd \ -c /etc/containerd/config.toml Restart=always RestartSec=5 Delegate=yes KillMode=process OOMScoreAdjust=-999 LimitNOFILE=1048576 LimitNPROC=infinity LimitCORE=infinity [Install] WantedBy=multi-user.target
рд╕рдорд╛рдпреЛрдЬрди
, , cri-tools .
etc/crictl.yaml /etc/crictl.yaml
. :
node-1$ CONTAINERD_NAMESPACE=k8s.io crictl ps CONTAINER ID IMAGE CREATED STATE NAME ATTEMPT POD ID
, - kubernetes , crictl , , .
CNI Plugins
CNI , , , .
рд╕рдорд╛рдпреЛрдЬрди
cni plugins /opt/cni/bin/
/etc/cni/net.d :
/etc/cni/net.d/10-flannel.conflist { "cniVersion": "0.3.0", "name": "cbr0", "plugins": [ { "type": "flannel", "name": "kubenet", "delegate": { "hairpinMode": true, "isDefaultGateway": true } }, { "type": "portmap", "capabilities": { "portMappings": true }, "externalSetMarkChain": "KUBE-MARK-MASQ" } ] }
/etc/cni/net.d/99-loopback.conf { "cniVersion": "0.3.0", "type": "loopback" }
, . , , Red Hat Docker Podman , Intro to Podman
Kubelet
kubelet ( cni) тАФ . kubelet hostname. , "" kubectl logs
, kubectl exec
, kubectl port-forward
.
kubelet-config.yaml, etc/kubelet-config.yaml , , . :
systemReserved: cpu: 200m memory: 600Mi
, GO kubernetes, , . . 0.2 vCPU 600 MB .
, , kubelet, kube-proxy, coredns, flannel . , тАФ 2 vCPU / 4G ram, , kubernetes + postgresql .
- (micro nodes) .
kubelet.service
service : systemd/kubelet
kubelet.service [Unit] Description=Kubernetes Kubelet Documentation=https://github.com/kubernetes/kubernetes Requires=containerd.service [Service] #Environment=NODE_IP=192.168.164.230 Environment=NODE_IP=178.79.168.130 #: node name given by env Environment=NODE_NAME=w40k.net ExecStart=kubelet \ --allow-privileged \ --root-dir=/var/lib/kubernetes/kubelet \ --config=/var/lib/kubernetes/kubelet/kubelet-config.yaml \ --kubeconfig=/var/lib/kubernetes/kubelet/node-1.kubeconfig \ --cni-bin-dir=/opt/cni/bin \ --cni-conf-dir=/etc/cni/net.d/ \ --network-plugin=cni \ --container-runtime=remote \ --container-runtime-endpoint=unix:///var/run/containerd/containerd.sock \ --image-pull-progress-deadline=10m \ --node-ip=${NODE_IP} \ --hostname-override=${NODE_NAME} \ --v=1 Restart=on-failure RestartSec=5 [Install] WantedBy=multi-user.target
рд╕рдорд╛рдпреЛрдЬрди
, RBAC , kubelet.
etc/kubelet-default-rbac.yaml , kubelet :
user$ kubectl apply -f etc/kubelet-default-rbac.yaml
, , .
, api :
$ kubectl get nodes -o wide NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME w40k.net Ready <none> 5m v1.13.1 178.79.168.130 <none> Gentoo/Linux 4.18.16-x86_64-linode118 containerd://1.2.1
Kube Proxy
: systemd/kubelet . , , kube-proxy-config.yaml
: etc/kube-proxy
kube-proxy.service
kube-proxy.service [Unit] Description=Kubernetes Proxy Documentation=https://github.com/kubernetes/kubernetes After=network.target [Service] ExecStart=kube-proxy \ --config=/var/lib/kubernetes/kube-proxy/kube-proxy-config.yaml Restart=on-failure RestartSec=5 [Install] WantedBy=multi-user.target
рд╕рдорд╛рдпреЛрдЬрди
kube-proxy "" iptables, , - kubernetes (- ). .
CoreDNS
Corefile : etc/coredns/Corefile , :
/etc/coredns/Corefile .:53 { errors log stdout health :8081 kubernetes cluster.local 10.200.0.0/16 { endpoint https://178.79.148.185:6443 tls /var/lib/kubernetes/kubernetes.pem /var/lib/kubernetes/kubernetes-key.pem /var/lib/kubernetes/ca.pem pods verified upstream /etc/resolv.conf kubeconfig /var/lib/kubernetes/config/kubeconfig/coredns.kubeconfig default } proxy . /etc/resolv.conf cache 30 }
coredns.kubeconfig pem- ( ) worker . , coredns systemd-resolved. , Ubuntu , , , , . .
coredns.service
coredns.service [Unit] Description=CoreDNS Documentation=https://coredns.io/ After=network.target [Service] ExecStart=/usr/bin/coredns -conf /etc/coredns/Corefile Restart=on-failure RestartSec=5 [Install] WantedBy=multi-user.target
рд╕рдорд╛рдпреЛрдЬрди
, , :
node-1$ dig kubernetes.default.svc.cluster.local @127.0.0.1 #: ;kubernetes.default.svc.cluster.local. IN A ;; ANSWER SECTION: kubernetes.default.svc.cluster.local. 5 IN A 10.32.0.1
, coredns ip kubernetes .
, kubernetes.default kube-controller-manager, :
$ kubectl get svc -n default NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.32.0.1 <none> 443/TCP 26h
nginx-ingress & cert-manager
, . nginx-ingress cert-manager.
тАФ nginx kubernetes ingress (master), :
user$ git clone https://github.com/nginxinc/kubernetes-ingress.git user$ cd kubernetes-ingress/deployments user$ kubectl apply -f common/ns-and-sa.yaml user$ kubectl apply -f common/nginx-config.yaml user$ kubectl apply -f common/default-server-secret.yaml user$ kubectl apply -f daemon-set/nginx-ingress.yaml user$ kubectl apply -f rbac/rbac.yaml
тАФ cert manager (v0.5.2)
user$ git clone https://github.com/jetstack/cert-manager.git user$ cd cert-manager && git co v0.5.2 user$ cd contrib/manifests/cert-manager user$ kubectl apply -f with-rbac.yaml
, , , :
NAMESPACE NAME READY STATUS RESTARTS AGE cert-manager cert-manager-554c76fbb7-t9762 1/1 Running 0 3h38m nginx-ingress nginx-ingress-sdztf 1/1 Running 0 10h nginx-ingress nginx-ingress-vrf85 1/1 Running 0 10h
cert-manager nginx-ingress running state, , . , Running
. .
, . , kubernetes resource : app/k8s
user$ kube apply -f ns-and-sa.yaml user$ kube apply -f configmap.yaml
, - . , ( kubernetes-example.w40k.net), , , cert-manager nginx-ingress . , ingress tls/ssl.
:
, - . - , , .
рд╕рдВрджрд░реНрдн
, , :
тАФ Kubernetes the hard way
тАФ Multi-Host Networking Overlay with Flannel
тАФ Intro to Podman
тАФ Stateless Applications
тАФ What is ingress
:
тАФ Kubernetes Networking: Behind the scenes ( )
тАФ A Guide to the Kubernetes Networking Model
тАФ Understanding kubernetes networking: services ( )
Q&A
<tbd>, .
, , . , , - , , .
Api Server
kube-apiserver.service
, api-server' curl http . - .
admin.kubeconfig ${HOME}/.kube/config, kubectl api-server (kube-apiserver).
( ) HTTP 200 OK + , api-server :
curl -H "Authorization: Bearer e5qXNAtwwCHUUwyLilZmAoFPozrQwUpw" -k -L https://<api-server-address>:6443/api/v1/
Kube Controller Manager
, controller manager api , . , service account' :
$ kubectl get sa NAME SECRETS AGE default 1 19h
, , kube-controller-manager .
Kube Scheduler
. , , debug/job.yaml kubectl describe <type/resource>
.
, kube controller manager .
#: job user$ kubectl apply -f debug/job.yaml job.batch/app created #: , job user$ kubectl get pods -l job-name=app NAME READY STATUS RESTARTS AGE app-9kr9z 0/1 Completed 0 54s #: , #: user$ kubectl describe pods app-9kr9z # ... ... Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Scheduled 12s default-scheduler Successfully assigned example/app-9kr9z to w40k.net
, default-scheduler pod w40k.net. - , тАФ .
. , , , тАФ "". systemd .
kube scheduler
Kubelet
Kubelet kubernetes . kubelet . kubernetes event ( kubectl get events -o wide
) .
( )
Kube Proxy
kube-proxy :
- ( Flannel , );
- iptables, filter nat .
, 10.32.0.0/24 "". , . iptables, , , - +. icmp , ping' . , .
, kube-proxy, :
#: user$ kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE backend ClusterIP 10.32.0.195 <none> 80/TCP 5m #: user$ kubectl get pods -o wide #: ' NAME READY STATUS RESTARTS AGE IP NODE backend-896584448-4r94s 1/1 Running 0 11h 10.200.8.105 w40k.net backend-896584448-np992 1/1 Running 0 11h 10.200.12.68 docker.grart.net #: 10 /status/ endpoint , #: node-1$ for i in `seq 10`; do curl -L http://10.32.0.195/status/; done okokokokokokokokokok node-1$ conntrack -L -d 10.32.0.195 tcp 6 62 TIME_WAIT src=178.79.168.130 dst=10.32.0.195 sport=62158 dport=80 src=10.200.12.68 dst=10.200.8.0 sport=8000 dport=62158 [ASSURED] mark=0 use=1 tcp 6 60 TIME_WAIT src=178.79.168.130 dst=10.32.0.195 sport=62144 dport=80 src=10.200.12.68 dst=10.200.8.0 sport=8000 dport=62144 [ASSURED] mark=0 use=1 tcp 6 58 TIME_WAIT src=178.79.168.130 dst=10.32.0.195 sport=62122 dport=80 src=10.200.12.68 dst=10.200.8.0 sport=8000 dport=62122 [ASSURED] mark=0 use=1 tcp 6 59 TIME_WAIT src=178.79.168.130 dst=10.32.0.195 sport=62142 dport=80 src=10.200.8.105 dst=10.200.8.1 sport=8000 dport=62142 [ASSURED] mark=0 use=1 tcp 6 58 TIME_WAIT src=178.79.168.130 dst=10.32.0.195 sport=62130 dport=80 src=10.200.8.105 dst=10.200.8.1 sport=8000 dport=62130 [ASSURED] mark=0 use=1 tcp 6 61 TIME_WAIT src=178.79.168.130 dst=10.32.0.195 sport=62150 dport=80 src=10.200.12.68 dst=10.200.8.0 sport=8000 dport=62150 [ASSURED] mark=0 use=1 tcp 6 56 TIME_WAIT src=178.79.168.130 dst=10.32.0.195 sport=62116 dport=80 src=10.200.8.105 dst=10.200.8.1 sport=8000 dport=62116 [ASSURED] mark=0 use=1 tcp 6 57 TIME_WAIT src=178.79.168.130 dst=10.32.0.195 sport=62118 dport=80 src=10.200.12.68 dst=10.200.8.0 sport=8000 dport=62118 [ASSURED] mark=0 use=1 tcp 6 59 TIME_WAIT src=178.79.168.130 dst=10.32.0.195 sport=62132 dport=80 src=10.200.12.68 dst=10.200.8.0 sport=8000 dport=62132 [ASSURED] mark=0 use=1 tcp 6 56 TIME_WAIT src=178.79.168.130 dst=10.32.0.195 sport=62114 dport=80 src=10.200.8.105 dst=10.200.8.1 sport=8000 dport=62114 [ASSURED] mark=0 use=1
src/dst (9 10 ). , src :
, . , - ( , ) . .
, , conntrack , , kube-proxy. , nat :
node-1$ iptables -t nat -vnL
.
. , , . , . - , , .