рд╕реАрдзреЗ рдЗрддреНрдпрд╛рджрд┐ Kubernetes рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рд╣рдорд╛рд░рд╛ рдЕрдиреБрднрд╡ (K8s API рдХреЗ рдмрд┐рдирд╛)

рддреЗрдЬреА рд╕реЗ, рдЧреНрд░рд╛рд╣рдХ рд╣рдорд╕реЗ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рднреАрддрд░ рд╕реЗрд╡рд╛рдУрдВ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреНрд▓рд╕реНрдЯрд░ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣ рд░рд╣реЗ рд╣реИрдВ: рдХреБрдЫ рдбреЗрдЯрд╛рдмреЗрд╕ рдпрд╛ рд╕реЗрд╡рд╛ рд╕реЗ рд╕реАрдзреЗ рдЬреБрдбрд╝рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рднреАрддрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдерд╛рдиреАрдп рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП ...

рд╕реАрдзреЗ рдЗрддреНрдпрд╛рджрд┐ Kubernetes рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рд╣рдорд╛рд░рд╛ рдЕрдиреБрднрд╡ (K8s API рдХреЗ рдмрд┐рдирд╛)

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреА рд╕реНрдерд╛рдиреАрдп рдорд╢реАрди рд╕реЗ рдХрд┐рд╕реА рд╕реЗрд╡рд╛ рд╕реЗ рдЬреБрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ memcached.staging.svc.cluster.local. рд╣рдо рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рднреАрддрд░ рдПрдХ рд╡реАрдкреАрдПрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдпрд╣ рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕рд╕реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдХрдиреЗрдХреНрдЯ рд╣реЛрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдкреЙрдбреНрд╕, рд╕реЗрд╡рд╛рдУрдВ рдФрд░ рдкреБрд╢ рдХреНрд▓рд╕реНрдЯрд░ DNS рдХреЗ рд╕рдмрдиреЗрдЯ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЬрдм рдХреЛрдИ рдЧреНрд░рд╛рд╣рдХ рд╕реЗрд╡рд╛ рд╕реЗ рдЬреБрдбрд╝рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИ memcached.staging.svc.cluster.local, рдЕрдиреБрд░реЛрдз рдХреНрд▓рд╕реНрдЯрд░ DNS рдкрд░ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдХреНрд▓рд╕реНрдЯрд░ рд╕реЗрд╡рд╛ рдиреЗрдЯрд╡рд░реНрдХ рдпрд╛ рдкреЙрдб рдкрддреЗ рд╕реЗ рдЗрд╕ рд╕реЗрд╡рд╛ рдХрд╛ рдкрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред

рд╣рдо kubeadm рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ K8s рдХреНрд▓рд╕реНрдЯрд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗрд╡рд╛ рд╕рдмрдиреЗрдЯ рд╣реИ 192.168.0.0/16, рдФрд░ рдкреЙрдбреНрд╕ рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рд╣реИ 10.244.0.0/16. рдЖрдорддреМрд░ рдкрд░ рд╕рдм рдХреБрдЫ рдареАрдХ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдмрд┐рдВрджреБ рд╣реИрдВ:

  • рд╕рдмрдиреЗрдЯ 192.168.*.* рдЕрдХреНрд╕рд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдСрдлрд┐рд╕ рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдбреЗрд╡рд▓рдкрд░ рд╣реЛрдо рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рднреА рдЕрдзрд┐рдХ рдмрд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдФрд░ рдлрд┐рд░ рд╣рдореЗрдВ рдЯрдХрд░рд╛рд╡ рдорд┐рд▓рддрд╛ рд╣реИ: рд╣реЛрдо рд░рд╛рдЙрдЯрд░ рдЗрд╕ рд╕рдмрдиреЗрдЯ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╡реАрдкреАрдПрди рдЗрди рд╕рдмрдиреЗрдЯ рдХреЛ рдХреНрд▓рд╕реНрдЯрд░ рд╕реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рддрдХ рдзрдХреЗрд▓рддрд╛ рд╣реИред
  • рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрдИ рдХреНрд▓рд╕реНрдЯрд░ (рдЙрддреНрдкрд╛рджрди, рдЪрд░рдг рдФрд░/рдпрд╛ рдХрдИ рджреЗрд╡ рдХреНрд▓рд╕реНрдЯрд░) рд╣реИрдВред рдлрд┐рд░, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдЙрди рд╕рднреА рдореЗрдВ рдкреЙрдбреНрд╕ рдФрд░ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд╕рдмрдиреЗрдЯ рд╣реЛрдВрдЧреЗ, рдЬреЛ рдХрдИ рд╕рдореВрд╣реЛрдВ рдореЗрдВ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдмрдбрд╝реА рдХрдард┐рдирд╛рдЗрдпрд╛рдБ рдкреИрджрд╛ рдХрд░рддрд╛ рд╣реИред

рд╣рдордиреЗ рдмрд╣реБрдд рдкрд╣рд▓реЗ рд╣реА рдПрдХ рд╣реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рднреАрддрд░ рд╕реЗрд╡рд╛рдУрдВ рдФрд░ рдкреЙрдбреНрд╕ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рдмрдиреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдкреНрд░рдерд╛ рдХреЛ рдЕрдкрдирд╛рдпрд╛ рд╣реИ - рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рддрд╛рдХрд┐ рд╕рднреА рдХреНрд▓рд╕реНрдЯрд░реЛрдВ рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдиреЗрдЯрд╡рд░реНрдХ рд╣реЛрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдСрдкрд░реЗрд╢рди рдореЗрдВ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдХреНрд▓рд╕реНрдЯрд░ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВ рд╕реНрдХреНрд░реИрдЪ рд╕реЗ рд░реЛрд▓ рдХрд░рдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣реВрдВрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдХрдИ рд╕реЗрд╡рд╛рдПрдВ, рд╕реНрдЯреЗрдЯрдлреБрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрддреНрдпрд╛рджрд┐ рдЪрд▓рд╛рддреЗ рд╣реИрдВред

рдФрд░ рдлрд┐рд░ рд╣рдордиреЗ рдЦреБрдж рд╕реЗ рдкреВрдЫрд╛: рдореМрдЬреВрджрд╛ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рд╕рдмрдиреЗрдЯ рдХреИрд╕реЗ рдмрджрд▓реЗрдВ?

рд╕рдорд╛рдзрд╛рди рдЦреЛрдЬреЗ

рд╕рдмрд╕реЗ рдЖрдо рдЕрднреНрдпрд╛рд╕ рдкреБрдирдГ рдмрдирд╛рдирд╛ рд╣реИ рд╕рдм рдХреНрд▓рд╕реНрдЯрд░рдЖрдИрдкреА рдкреНрд░рдХрд╛рд░ рд╡рд╛рд▓реА рд╕реЗрд╡рд╛рдПрдБред рдПрдХ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ, рд╕рд▓рд╛рд╣ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдРрд╕рд╛:

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ: рд╕рдм рдХреБрдЫ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдкреЙрдбреНрд╕ рдкреБрд░рд╛рдиреЗ рдЖрдИрдкреА рдХреЗ рд╕рд╛рде /etc/resolv.conf рдореЗрдВ DNS рдиреЗрдорд╕рд░реНрд╡рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЖрддреЗ рд╣реИрдВред
рдЪреВрдБрдХрд┐ рдореБрдЭреЗ рдЕрднреА рднреА рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдорд┐рд▓рд╛, рдореБрдЭреЗ рдкреВрд░реЗ рдХреНрд▓рд╕реНрдЯрд░ рдХреЛ kubeadm рд░реАрд╕реЗрдЯ рдХреЗ рд╕рд╛рде рд░реАрд╕реЗрдЯ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рдФрд░ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред

рд▓реЗрдХрд┐рди рдпрд╣ рд╣рд░ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИ... рдпрд╣рд╛рдВ рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рдкрд░рд┐рдЪрдп рджрд┐рдП рдЧрдП рд╣реИрдВ:

  • рдлрд▓рд╛рд▓реИрди рдХрд╛ рдкреНрд░рдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ;
  • рдмрд╛рджрд▓реЛрдВ рдФрд░ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рджреЛрдиреЛрдВ рдореЗрдВ рдХреНрд▓рд╕реНрдЯрд░ рд╣реЛрддреЗ рд╣реИрдВ;
  • рдореИрдВ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рд╕рднреА рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдкреБрдирдГ рддреИрдирд╛рдд рдХрд░рдиреЗ рд╕реЗ рдмрдЪрдирд╛ рдЪрд╛рд╣реВрдБрдЧрд╛;
  • рдЖрдо рддреМрд░ рдкрд░ рд╣рд░ рдХрд╛рдо рдХреЛ рдиреНрдпреВрдирддрдо рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ;
  • рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╕рдВрд╕реНрдХрд░рдг 1.16.6 рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЖрдЧреЗ рдХреЗ рдЪрд░рдг рдЕрдиреНрдп рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд╣реЛрдВрдЧреЗ);
  • рдореБрдЦреНрдп рдХрд╛рд░реНрдп рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рд╣реИ рдХрд┐ рдПрдХ рд╕реЗрд╡рд╛ рд╕рдмрдиреЗрдЯ рдХреЗ рд╕рд╛рде kubeadm рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рддреИрдирд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рдП 192.168.0.0/16, рдЗрд╕рдХреЗ рд╕рд╛рде рдмрджрд▓реЗрдВ 172.24.0.0/16.

рдФрд░ рдРрд╕рд╛ рд╣реБрдЖ рдХрд┐ рд╣рдо рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдпрд╣ рджреЗрдЦрдиреЗ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рдереЗ рдХрд┐ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдЖрджрд┐ рдореЗрдВ рдХреНрдпрд╛ рдФрд░ рдХреИрд╕реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ... рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рд╕реЛрдЪрд╛: "рдкреБрд░рд╛рдиреЗ рдЖрдИрдкреА рдкрддреЗ (рд╕рдмрдиреЗрдЯ) рдХреЛ рдирдП рдХреЗ рд╕рд╛рде рдмрджрд▓рдХрд░, рдЖрджрд┐ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЛ рдЕрдкрдбреЗрдЯ рдХреНрдпреЛрдВ рди рдХрд┐рдпрд╛ рдЬрд╛рдП? "

рдЖрджрд┐ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдЯреВрд▓ рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рдкрд░, рд╣рдореЗрдВ рдРрд╕рд╛ рдХреБрдЫ рднреА рдирд╣реАрдВ рдорд┐рд▓рд╛ рдЬрд┐рд╕рд╕реЗ рд╕рдорд╕реНрдпрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╣рд▓ рд╣реЛ рдЧрдИ рд╣реЛред (рд╡реИрд╕реЗ, рдпрджрд┐ рдЖрдк рдЖрджрд┐ рдореЗрдВ рд╕реАрдзреЗ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рд▓рд┐рдВрдХ рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░реЗрдВрдЧреЗред) рд╣рд╛рд▓рд╛рдБрдХрд┐, рдПрдХ рдЕрдЪреНрдЫрд╛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдмрд┐рдВрджреБ рд╣реИ рдЖрджрд┐ рд╕рд╣рд╛рдпрдХ рдУрдкрдирд╢рд┐рдлреНрдЯ рд╕реЗ (рдЗрд╕рдХреЗ рд▓реЗрдЦрдХреЛрдВ рдХреЛ рдзрдиреНрдпрд╡рд╛рдж!).

рдпрд╣ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрджрд┐ рд╕реЗ рдЬреБрдбрд╝ рд╕рдХрддреА рд╣реИ рдФрд░ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд╣рд╛рдВ рд╕реЗ рдбреЗрдЯрд╛ рдкрдврд╝ рд╕рдХрддреА рд╣реИ ls, get, dump.

рдЖрджрд┐ рд╣реЗрд▓реНрдкрд░ рдЬреЛрдбрд╝реЗрдВ

рдЕрдЧрд▓рд╛ рд╡рд┐рдЪрд╛рд░ рддрд░реНрдХрд╕рдВрдЧрдд рд╣реИ: "рдЖрджрд┐ рдореЗрдВ рдбреЗрдЯрд╛ рд▓рд┐рдЦрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝рдХрд░ рдЖрдкрдХреЛ рдЗрд╕ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдХреНрдпрд╛ рд░реЛрдХ рд░рд╣рд╛ рд╣реИ?"

рдпрд╣ рджреЛ рдирдП рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдЗрддреНрдпрд╛рджрд┐рд╣реЗрд▓реНрдкрд░ рдХрд╛ рдПрдХ рд╕рдВрд╢реЛрдзрд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдмрди рдЧрдпрд╛ changeServiceCIDR ╨╕ changePodCIDR. рдЙрд╕ рдкрд░ рдЖрдк рдХреЛрдб рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╣рд╛рдВ.

рдирдИ рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдХреНрдпрд╛ рдХрд░рддреА рд╣реИрдВ? рдХрд▓рди рд╡рд┐рдзрд┐ changeServiceCIDR:

  • рдПрдХ рдбрд┐рд╕реЗрд░рд┐рдПрд▓рд╛рдЗрдЬрд╝рд░ рдмрдирд╛рдПрдВ;
  • рд╕реАрдЖрдИрдбреАрдЖрд░ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдВ;
  • рд╣рдо рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдХреНрд▓рд╕реНрдЯрд░рдЖрдИрдкреА рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде рд╕рднреА рд╕реЗрд╡рд╛рдУрдВ рд╕реЗ рдЧреБрдЬрд░рддреЗ рд╣реИрдВ:
    • рдЖрджрд┐ рд╕реЗ рдорд╛рди рдХреЛ рдЧреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдбрд┐рдХреЛрдб рдХрд░реЗрдВ;
    • рд░реЗрдЧреБрд▓рд░ рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рдо рдкрддреЗ рдХреЗ рдкрд╣рд▓реЗ рджреЛ рдмрд╛рдЗрдЯреНрд╕ рдмрджрд▓рддреЗ рд╣реИрдВ;
    • рд╕реЗрд╡рд╛ рдХреЛ рдирдП рд╕рдмрдиреЗрдЯ рд╕реЗ рдПрдХ рдЖрдИрдкреА рдкрддрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ;
    • рдПрдХ рд╕реАрд░рд┐рдПрд▓рд╛рдЗрдЬрд╝рд░ рдмрдирд╛рдПрдВ, рдЧреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдкреНрд░реЛрдЯреЛрдмрдлрд╝ рдореЗрдВ рдмрджрд▓реЗрдВ, рдЖрджрд┐ рдореЗрдВ рдирдпрд╛ рдбреЗрдЯрд╛ рд▓рд┐рдЦреЗрдВред

рд╕рдорд╛рд░реЛрд╣ changePodCIDR рдореВрд▓рддрдГ рд╕рдорд╛рди changeServiceCIDR - рдХреЗрд╡рд▓ рд╕реЗрд╡рд╛ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рд╣рдо рдЗрд╕реЗ рдиреЛрдб рдФрд░ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВ .spec.PodCIDR рдПрдХ рдирдпреЗ рд╕рдмрдиреЗрдЯ рдкрд░.

рдЕрднреНрдпрд╛рд╕

рд╕реЗрд╡рд╛ рд╕реАрдЖрдИрдбреАрдЖрд░ рдмрджрд▓реЗрдВ

рдХрд╛рд░реНрдп рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рд╕рднреА рдкреЙрдбреНрд╕ рдХреЗ рдкреБрди: рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╕рдордп рдбрд╛рдЙрдирдЯрд╛рдЗрдо рд╢рд╛рдорд┐рд▓ рд╣реИред рдореБрдЦреНрдп рдЪрд░рдгреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдЗрд╕ рдкрд░ рднреА рд╡рд┐рдЪрд╛рд░ рд╕рд╛рдЭрд╛ рдХрд░реЗрдВрдЧреЗ рдХрд┐ рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдЗрд╕ рдбрд╛рдЙрдирдЯрд╛рдЗрдо рдХреЛ рдХреИрд╕реЗ рдХрдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЪрд░рдг:

  • рдЖрд╡рд╢реНрдпрдХ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдФрд░ рдкреИрдЪ рдХрд┐рдП рдЧрдП рдЖрджрд┐рд╣реЗрд▓реНрдкрд░ рдХреЛ рдЕрд╕реЗрдВрдмрд▓ рдХрд░рдирд╛;
  • рдмреИрдХрдЕрдк рдЖрджрд┐ рдФрд░ /etc/kubernetes.

рд╕реЗрд╡рд╛рд╕реАрдЖрдИрдбреАрдЖрд░ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдХрд╛рд░реНрдп рдпреЛрдЬрдирд╛:

  • рдПрдкрд┐рд╕рд░реНрд╡рд░ рдФрд░ рдирд┐рдпрдВрддреНрд░рдХ-рдкреНрд░рдмрдВрдзрдХ рдореИрдирд┐рдлрд╝реЗрд╕реНрдЯ рдХреЛ рдмрджрд▓рдирд╛;
  • рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рдХреЛ рдкреБрдирдГ рдЬрд╛рд░реА рдХрд░рдирд╛;
  • рдЗрддреНрдпрд╛рджрд┐ рдореЗрдВ рдХреНрд▓рд╕реНрдЯрд░рдЖрдИрдкреА рд╕реЗрд╡рд╛рдПрдБ рдмрджрд▓рдирд╛;
  • рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рд╕рднреА рдкреЙрдбреНрд╕ рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВред

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдкреВрд░рд╛ рдХреНрд░рдо рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

1. рдбреЗрдЯрд╛ рдбрдВрдк рдХреЗ рд▓рд┐рдП рдЖрджрд┐-рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:

apt install etcd-client

2. рдЖрджрд┐ рд╣реЗрд▓реНрдкрд░ рдмрдирд╛рдПрдВ:

  • рдЧреЛрд▓рд╛рдВрдЧ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:
    GOPATH=/root/golang
    mkdir -p $GOPATH/local
    curl -sSL https://dl.google.com/go/go1.14.1.linux-amd64.tar.gz | tar -xzvC $GOPATH/local
    echo "export GOPATH="$GOPATH"" >> ~/.bashrc
    echo 'export GOROOT="$GOPATH/local/go"' >> ~/.bashrc
    echo 'export PATH="$PATH:$GOPATH/local/go/bin"' >> ~/.bashrc
  • рд╣рдо рдЕрдкрдиреЗ рд▓рд┐рдП рдмрдЪрдд рдХрд░рддреЗ рд╣реИрдВ etcdhelper.go, рдирд┐рд░реНрднрд░рддрд╛рдПрдБ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ, рдПрдХрддреНрд░ рдХрд░реЗрдВ:
    wget https://raw.githubusercontent.com/flant/examples/master/2020/04-etcdhelper/etcdhelper.go
    go get go.etcd.io/etcd/clientv3 k8s.io/kubectl/pkg/scheme k8s.io/apimachinery/pkg/runtime
    go build -o etcdhelper etcdhelper.go

3. рдмреИрдХрдЕрдк рдЖрджрд┐ рдмрдирд╛рдПрдВ:

backup_dir=/root/backup
mkdir ${backup_dir}
cp -rL /etc/kubernetes ${backup_dir}
ETCDCTL_API=3 etcdctl --cacert=/etc/kubernetes/pki/etcd/ca.crt --key=/etc/kubernetes/pki/etcd/server.key --cert=/etc/kubernetes/pki/etcd/server.crt --endpoints https://192.168.199.100:2379 snapshot save ${backup_dir}/etcd.snapshot

4. рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдирд┐рдпрдВрддреНрд░рдг рд╡рд┐рдорд╛рди рдореЗрдирд┐рдлрд╝реЗрд╕реНрдЯ рдореЗрдВ рд╕реЗрд╡рд╛ рд╕рдмрдиреЗрдЯ рдмрджрд▓реЗрдВред рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ /etc/kubernetes/manifests/kube-apiserver.yaml ╨╕ /etc/kubernetes/manifests/kube-controller-manager.yaml рдкреИрд░рд╛рдореАрдЯрд░ рдмрджрд▓реЗрдВ --service-cluster-ip-range рдПрдХ рдирдП рд╕рдмрдиреЗрдЯ рдХреЗ рд▓рд┐рдП: 172.24.0.0/16 рдХреЗ рдмрджрд▓реЗ 192.168.0.0/16.

5. рдЪреВрдБрдХрд┐ рд╣рдо рдЙрд╕ рд╕реЗрд╡рд╛ рд╕рдмрдиреЗрдЯ рдХреЛ рдмрджрд▓ рд░рд╣реЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ kubeadm рдПрдкреАрд╕рд░реНрд╡рд░ (рд╕рд╣рд┐рдд) рдХреЗ рд▓рд┐рдП рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЬрд╛рд░реА рдХрд░рддрд╛ рд╣реИ, рдЙрдиреНрд╣реЗрдВ рдлрд┐рд░ рд╕реЗ рдЬрд╛рд░реА рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

  1. рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХрд┐рди рдбреЛрдореЗрди рдФрд░ рдЖрдИрдкреА рдкрддреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
    openssl x509 -noout -ext subjectAltName </etc/kubernetes/pki/apiserver.crt
    X509v3 Subject Alternative Name:
        DNS:dev-1-master, DNS:kubernetes, DNS:kubernetes.default, DNS:kubernetes.default.svc, DNS:kubernetes.default.svc.cluster.local, DNS:apiserver, IP Address:192.168.0.1, IP Address:10.0.0.163, IP Address:192.168.199.100
  2. рдЖрдЗрдП kubeadm рдХреЗ рд▓рд┐рдП рдПрдХ рдиреНрдпреВрдирддрдо рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рддреИрдпрд╛рд░ рдХрд░реЗрдВ:
    cat kubeadm-config.yaml
    apiVersion: kubeadm.k8s.io/v1beta1
    kind: ClusterConfiguration
    networking:
      podSubnet: "10.244.0.0/16"
      serviceSubnet: "172.24.0.0/16"
    apiServer:
      certSANs:
      - "192.168.199.100" # IP-╨░╨┤╤А╨╡╤Б ╨╝╨░╤Б╤В╨╡╤А ╤Г╨╖╨╗╨░
  3. рдЖрдЗрдП рдкреБрд░рд╛рдиреЗ crt рдФрд░ рдХреБрдВрдЬреА рдХреЛ рд╣рдЯрд╛ рджреЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рдирдпрд╛ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЬрд╛рд░реА рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:
    rm /etc/kubernetes/pki/apiserver.{key,crt}
  4. рдЖрдЗрдП рдПрдкреАрдЖрдИ рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдкреБрдирдГ рдЬрд╛рд░реА рдХрд░реЗрдВ:
    kubeadm init phase certs apiserver --config=kubeadm-config.yaml
  5. рдЖрдЗрдП рдЬрд╛рдБрдЪреЗрдВ рдХрд┐ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдирдП рд╕рдмрдиреЗрдЯ рдХреЗ рд▓рд┐рдП рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:
    openssl x509 -noout -ext subjectAltName </etc/kubernetes/pki/apiserver.crt
    X509v3 Subject Alternative Name:
        DNS:kube-2-master, DNS:kubernetes, DNS:kubernetes.default, DNS:kubernetes.default.svc, DNS:kubernetes.default.svc.cluster.local, IP Address:172.24.0.1, IP Address:10.0.0.163, IP Address:192.168.199.100
  6. рдПрдкреАрдЖрдИ рд╕рд░реНрд╡рд░ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдкреБрдирдГ рдЬрд╛рд░реА рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЙрд╕рдХреЗ рдХрдВрдЯреЗрдирд░ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░реЗрдВ:
    docker ps | grep k8s_kube-apiserver | awk '{print $1}' | xargs docker restart
  7. рдЖрдЗрдП рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдкреБрди: рдЬрдирд░реЗрдЯ рдХрд░реЗрдВ admin.conf:
    kubeadm alpha certs renew admin.conf
  8. рдЖрдЗрдП рдЖрджрд┐ рдореЗрдВ рдбреЗрдЯрд╛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:
    ./etcdhelper -cacert /etc/kubernetes/pki/etcd/ca.crt -cert /etc/kubernetes/pki/etcd/server.crt -key /etc/kubernetes/pki/etcd/server.key -endpoint https://127.0.0.1:2379 change-service-cidr 172.24.0.0/16 

    рдЪреЗрддрд╛рд╡рдиреА! рдЗрд╕ рд╕рдордп, рдореМрдЬреВрджрд╛ рдкреЙрдбреНрд╕ рдХреЗ рдмрд╛рдж рд╕реЗ, рдбреЛрдореЗрди рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИ /etc/resolv.conf рдкреБрд░рд╛рдирд╛ CoreDNS рдкрддрд╛ (рдХреНрдпреВрдм-рдбреАрдПрдирдПрд╕) рдкрдВрдЬреАрдХреГрдд рд╣реИ, рдФрд░ рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА iptables рдирд┐рдпрдореЛрдВ рдХреЛ рдкреБрд░рд╛рдиреЗ рд╕рдмрдиреЗрдЯ рд╕реЗ рдирдП рдореЗрдВ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред рд▓реЗрдЦ рдореЗрдВ рдЖрдЧреЗ рдбрд╛рдЙрдирдЯрд╛рдЗрдо рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд╕рдВрднрд╛рд╡рд┐рдд рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред

  9. рдЖрдЗрдП рдиреЗрдорд╕реНрдкреЗрд╕ рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрдореИрдк рдХреЛ рдареАрдХ рдХрд░реЗрдВ kube-system:
    kubectl -n kube-system edit cm kubelet-config-1.16

    - рдпрд╣рд╛рдВ рдмрджрд▓реЗрдВ clusterDNS рдХреНрдпреВрдм-рдбреАрдПрдирдПрд╕ рд╕реЗрд╡рд╛ рдХреЗ рдирдП рдЖрдИрдкреА рдкрддреЗ рдкрд░: kubectl -n kube-system get svc kube-dns.

    kubectl -n kube-system edit cm kubeadm-config

    - рд╣рдо рдЗрд╕реЗ рдареАрдХ рдХрд░ рджреЗрдВрдЧреЗ data.ClusterConfiguration.networking.serviceSubnet рдПрдХ рдирдпреЗ рд╕рдмрдиреЗрдЯ рдкрд░.

  10. рдЪреВрдВрдХрд┐ рдХреНрдпреВрдм-рдбреАрдПрдирдПрд╕ рдкрддрд╛ рдмрджрд▓ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рднреА рдиреЛрдбреНрд╕ рдкрд░ рдХреНрдпреВрдмрд▓реЗрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ:
    kubeadm upgrade node phase kubelet-config && systemctl restart kubelet
  11. рдЬреЛ рдХреБрдЫ рдмрдЪрд╛ рд╣реИ рд╡рд╣ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рд╕рднреА рдкреЙрдбреНрд╕ рдХреЛ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░рдирд╛ рд╣реИ:
    kubectl get pods --no-headers=true --all-namespaces |sed -r 's/(S+)s+(S+).*/kubectl --namespace 1 delete pod 2/e'

рдбрд╛рдЙрдирдЯрд╛рдЗрдо рдХрдо рд╕реЗ рдХрдо рдХрд░реЗрдВ

рдбрд╛рдЙрдирдЯрд╛рдЗрдо рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░:

  1. рдирд┐рдпрдВрддреНрд░рдг рд╡рд┐рдорд╛рди рдореИрдирд┐рдлрд╝реЗрд╕реНрдЯ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рдмрд╛рдж, рдПрдХ рдирдИ рдХреНрдпреВрдм-рдбреАрдПрдирдПрд╕ рд╕реЗрд╡рд╛ рдмрдирд╛рдПрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд╛рдо рдХреЗ рд╕рд╛рде kube-dns-tmp рдФрд░ рдирдпрд╛ рдкрддрд╛ 172.24.0.10.
  2. рдмрдирд╛рдирд╛ if рдЗрддреНрдпрд╛рджрд┐рд╣реЗрд▓реНрдкрд░ рдореЗрдВ, рдЬреЛ рдХреНрдпреВрдм-рдбреАрдПрдирдПрд╕ рд╕реЗрд╡рд╛ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред
  3. рд╕рднреА рдХреНрдпреВрдмрд▓реЗрдЯреНрд╕ рдореЗрдВ рдкрддрд╛ рдмрджрд▓реЗрдВ ClusterDNS рдПрдХ рдирдП рдХреЗ рд▓рд┐рдП, рдЬрдмрдХрд┐ рдкреБрд░рд╛рдиреА рд╕реЗрд╡рд╛ рдирдИ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдХрд╛рдо рдХрд░рддреА рд░рд╣реЗрдЧреАред
  4. рддрдм рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ рдЬрдм рддрдХ рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд╛рд▓реЗ рдкреЙрдб рдкреНрд░рд╛рдХреГрддрд┐рдХ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдпрд╛ рдХрд┐рд╕реА рд╕рд╣рдордд рд╕рдордп рдкрд░ рдЕрдкрдиреЗ рдЖрдк рд░реЛрд▓ рди рд╣реЛ рдЬрд╛рдПрдВред
  5. рд╕реЗрд╡рд╛ рд╣рдЯрд╛рдПрдБ kube-dns-tmp рдФрд░ рдмрджрд▓реЛ serviceSubnetCIDR рдХреНрдпреВрдм-рдбреАрдПрдирдПрд╕ рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдПред

рдпрд╣ рдпреЛрдЬрдирд╛ рдЖрдкрдХреЛ рд╕реЗрд╡рд╛ рд╣рдЯрд╛рдиреЗ рдХреА рдЕрд╡рдзрд┐ рдХреЗ рд▓рд┐рдП рдбрд╛рдЙрдирдЯрд╛рдЗрдо рдХреЛ ~рдПрдХ рдорд┐рдирдЯ рддрдХ рдХрдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧреА kube-dns-tmp рдФрд░ рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рд╕рдмрдиреЗрдЯ рдмрджрд▓ рд░рд╣рд╛ рд╣реИ kube-dns.

рд╕рдВрд╢реЛрдзрди рдкреЙрдбрдиреЗрдЯрд╡рд░реНрдХ

рдЙрд╕реА рд╕рдордп, рд╣рдордиреЗ рдпрд╣ рджреЗрдЦрдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдХрд┐ рдкрд░рд┐рдгрд╛рдореА рдЖрджрд┐рд╣реЗрд▓реНрдкрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреЙрдбрдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рдХреИрд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдХреНрд░рдо рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:

  • рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдареАрдХ рдХрд░рдирд╛ kube-system;
  • рдХреНрдпреВрдм-рдирд┐рдпрдВрддреНрд░рдХ-рдкреНрд░рдмрдВрдзрдХ рдореЗрдирд┐рдлрд╝реЗрд╕реНрдЯ рдХреЛ рдареАрдХ рдХрд░рдирд╛;
  • рдкреЙрдбрд╕реАрдЖрдИрдбреАрдЖрд░ рдХреЛ рд╕реАрдзреЗ рдЖрджрд┐ рдореЗрдВ рдмрджрд▓реЗрдВ;
  • рд╕рднреА рдХреНрд▓рд╕реНрдЯрд░ рдиреЛрдбреНрд╕ рдХреЛ рд░реАрдмреВрдЯ рдХрд░реЗрдВред

рдЕрдм рдЗрди рдХрд╛рд░реНрд░рд╡рд╛рдЗрдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА:

1. рдиреЗрдорд╕реНрдкреЗрд╕ рдореЗрдВ рдХреЙрдиреНрдлрд┐рдЧ рдореИрдк рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВ kube-system:

kubectl -n kube-system edit cm kubeadm-config

- рд╕реБрдзрд╛рд░рдирд╛ data.ClusterConfiguration.networking.podSubnet рдПрдХ рдирдпреЗ рд╕рдмрдиреЗрдЯ рдкрд░ 10.55.0.0/16.

kubectl -n kube-system edit cm kube-proxy

- рд╕реБрдзрд╛рд░рдирд╛ data.config.conf.clusterCIDR: 10.55.0.0/16.

2. рдирд┐рдпрдВрддреНрд░рдХ-рдкреНрд░рдмрдВрдзрдХ рдореЗрдирд┐рдлрд╝реЗрд╕реНрдЯ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВ:

vim /etc/kubernetes/manifests/kube-controller-manager.yaml

- рд╕реБрдзрд╛рд░рдирд╛ --cluster-cidr=10.55.0.0/16.

3. рд╡рд░реНрддрдорд╛рди рдореВрд▓реНрдпреЛрдВ рдХреЛ рджреЗрдЦреЗрдВ .spec.podCIDR, .spec.podCIDRs, .InternalIP, .status.addresses рд╕рднреА рдХреНрд▓рд╕реНрдЯрд░ рдиреЛрдбреНрд╕ рдХреЗ рд▓рд┐рдП:

kubectl get no -o json | jq '[.items[] | {"name": .metadata.name, "podCIDR": .spec.podCIDR, "podCIDRs": .spec.podCIDRs, "InternalIP": (.status.addresses[] | select(.type == "InternalIP") | .address)}]'

[
  {
    "name": "kube-2-master",
    "podCIDR": "10.244.0.0/24",
    "podCIDRs": [
      "10.244.0.0/24"
    ],
    "InternalIP": "192.168.199.2"
  },
  {
    "name": "kube-2-master",
    "podCIDR": "10.244.0.0/24",
    "podCIDRs": [
      "10.244.0.0/24"
    ],
    "InternalIP": "10.0.1.239"
  },
  {
    "name": "kube-2-worker-01f438cf-579f9fd987-5l657",
    "podCIDR": "10.244.1.0/24",
    "podCIDRs": [
      "10.244.1.0/24"
    ],
    "InternalIP": "192.168.199.222"
  },
  {
    "name": "kube-2-worker-01f438cf-579f9fd987-5l657",
    "podCIDR": "10.244.1.0/24",
    "podCIDRs": [
      "10.244.1.0/24"
    ],
    "InternalIP": "10.0.4.73"
  }
]

4. рд╕реАрдзреЗ рдЖрджрд┐ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдХреЗ рдкреЙрдбрд╕реАрдЖрдИрдбреАрдЖрд░ рдХреЛ рдмрджрд▓реЗрдВ:

./etcdhelper -cacert /etc/kubernetes/pki/etcd/ca.crt -cert /etc/kubernetes/pki/etcd/server.crt -key /etc/kubernetes/pki/etcd/server.key -endpoint https://127.0.0.1:2379 change-pod-cidr 10.55.0.0/16

5. рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ podCIDR рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрджрд▓ рдЧрдпрд╛ рд╣реИ:

kubectl get no -o json | jq '[.items[] | {"name": .metadata.name, "podCIDR": .spec.podCIDR, "podCIDRs": .spec.podCIDRs, "InternalIP": (.status.addresses[] | select(.type == "InternalIP") | .address)}]'

[
  {
    "name": "kube-2-master",
    "podCIDR": "10.55.0.0/24",
    "podCIDRs": [
      "10.55.0.0/24"
    ],
    "InternalIP": "192.168.199.2"
  },
  {
    "name": "kube-2-master",
    "podCIDR": "10.55.0.0/24",
    "podCIDRs": [
      "10.55.0.0/24"
    ],
    "InternalIP": "10.0.1.239"
  },
  {
    "name": "kube-2-worker-01f438cf-579f9fd987-5l657",
    "podCIDR": "10.55.1.0/24",
    "podCIDRs": [
      "10.55.1.0/24"
    ],
    "InternalIP": "192.168.199.222"
  },
  {
    "name": "kube-2-worker-01f438cf-579f9fd987-5l657",
    "podCIDR": "10.55.1.0/24",
    "podCIDRs": [
      "10.55.1.0/24"
    ],
    "InternalIP": "10.0.4.73"
  }
]

6. рдЖрдЗрдП рдПрдХ-рдПрдХ рдХрд░рдХреЗ рд╕рднреА рдХреНрд▓рд╕реНрдЯрд░ рдиреЛрдбреНрд╕ рдХреЛ рд░реАрдмреВрдЯ рдХрд░реЗрдВред

7. рдпрджрд┐ рдЖрдк рдХрдо рд╕реЗ рдХрдо рдПрдХ рдиреЛрдб рдЫреЛрдбрд╝рддреЗ рд╣реИрдВ рдкреБрд░рд╛рдирд╛ рдкреЙрдбрд╕реАрдЖрдИрдбреАрдЖрд░, рддреЛ рдХреНрдпреВрдм-рдирд┐рдпрдВрддреНрд░рдХ-рдкреНрд░рдмрдВрдзрдХ рдкреНрд░рд╛рд░рдВрдн рдирд╣реАрдВ рд╣реЛ рдкрд╛рдПрдЧрд╛, рдФрд░ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдкреЙрдбреНрд╕ рд╢реЗрдбреНрдпреВрд▓ рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдкреЙрдбрд╕реАрдЖрдИрдбреАрдЖрд░ рдХреЛ рдмрджрд▓рдирд╛ рдФрд░ рднреА рд╕рд░рд▓ рддрд░реАрдХреЗ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕рд▓рд┐рдП). рд▓реЗрдХрд┐рди рд╣рдо рд╕реАрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рдереЗ рдХрд┐ рд╕реАрдзреЗ рдЖрджрд┐ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛рдП, рдХреНрдпреЛрдВрдХрд┐ рдРрд╕реЗ рдорд╛рдорд▓реЗ рд╣реИрдВ рдЬрдм рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЖрджрд┐ рдореЗрдВ рд╕рдВрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдХреЗрд╡рд▓ рд╕рдВрднрд╡ рд╕рдВрд╕реНрдХрд░рдг. (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдмрд┐рдирд╛ рдбрд╛рдЙрдирдЯрд╛рдЗрдо рдХреЗ рд╕реЗрд╡рд╛ рдлрд╝реАрд▓реНрдб рдХреЛ рдирд╣реАрдВ рдмрджрд▓ рд╕рдХрддреЗ spec.clusterIP.)

рд╕рдВрдкреВрд░реНрдг

рд▓реЗрдЦ рд╕реАрдзреЗ рдЖрджрд┐ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рддрд╛ рд╣реИ, рдпрд╛рдиреАред рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдПрдкреАрдЖрдИ рдХреЛ рджрд░рдХрд┐рдирд╛рд░ рдХрд░рдирд╛ред рдХрднреА-рдХрднреА рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЖрдкрдХреЛ "рдореБрд╢реНрдХрд┐рд▓ рдЪреАрдЬреЗрдВ" рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╣рдордиреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ K8s рдХреНрд▓рд╕реНрдЯрд░реЛрдВ рдкрд░ рдкрд╛рда рдореЗрдВ рджрд┐рдП рдЧрдП рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╡реНрдпрд╛рдкрдХ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЙрдирдХреА рддрддреНрдкрд░рддрд╛ рдХреА рд╕реНрдерд┐рддрд┐ рд╣реИ рдкреАрдУрд╕реА (рдЕрд╡рдзрд╛рд░рдгрд╛ рдХрд╛ рдкреНрд░рдорд╛рдг). рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рдХреНрд▓рд╕реНрдЯрд░ рдкрд░ рдЖрджрд┐рд╣реЗрд▓реНрдкрд░ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рд╕рдВрд╢реЛрдзрд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдРрд╕рд╛ рдЕрдкрдиреЗ рдЬреЛрдЦрд┐рдо рдкрд░ рдХрд░реЗрдВред

рдкреБрдирд╢реНрдЪ

рд╣рдорд╛рд░реЗ рдмреНрд▓реЙрдЧ рдкрд░ рднреА рдкрдврд╝реЗрдВ:

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ