рдмрдвреНрджреЛ рд░реВрдкрдорд╛, рдЧреНрд░рд╛рд╣рдХрд╣рд░реВрд▓реЗ рд╣рд╛рдореАрд▓рд╛рдИ рдХреНрд▓рд╕реНрдЯрд░ рднрд┐рддреНрд░ рд╕реЗрд╡рд╛рд╣рд░реВ рдкрд╣реБрдБрдЪ рдЧрд░реНрди рд╕рдХреНрд╖рдо рд╣реБрди Kubernetes рдХреНрд▓рд╕реНрдЯрд░рдорд╛ рдкрд╣реБрдБрдЪ рдкреНрд░рджрд╛рди рдЧрд░реНрди рд╕реЛрдзрд┐рд░рд╣реЗрдХрд╛ рдЫрдиреН: рддрд╛рдХрд┐ рддрд┐рдиреАрд╣рд░реВ рд╕реАрдзреИ рдХреЗрд╣реА рдбрд╛рдЯрд╛рдмреЗрд╕ рд╡рд╛ рд╕реЗрд╡рд╛рдорд╛ рдЬрдбрд╛рди рдЧрд░реНрди рд╕рдХреВрдиреН, рдХреНрд▓рд╕реНрдЯрд░ рднрд┐рддреНрд░рдХрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВрд╕рдБрдЧ рд╕реНрдерд╛рдиреАрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЬрдбрд╛рди рдЧрд░реНрди...
рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рддрдкрд╛рдИрдВрдХреЛ рд╕реНрдерд╛рдиреАрдп рдореЗрд╕рд┐рдирдмрд╛рдЯ рд╕реЗрд╡рд╛рдорд╛ рдЬрдбрд╛рди рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ memcached.staging.svc.cluster.local
ред рд╣рд╛рдореАрд▓реЗ рдпреЛ рдХреНрд╖рдорддрд╛ рдХреНрд▓рд╕реНрдЯрд░ рднрд┐рддреНрд░ VPN рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдкреНрд░рджрд╛рди рдЧрд░реНрдЫреМрдВ рдЬрд╕рдорд╛ рдХреНрд▓рд╛рдЗрдиреНрдЯ рдЬрдбрд╛рди рд╣реБрдиреНрдЫред рдпреЛ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, рд╣рд╛рдореА рдЧреНрд░рд╛рд╣рдХрд▓рд╛рдИ рдкреЛрдб, рд╕реЗрд╡рд╛рд╣рд░реВ рд░ рдкреБрд╢ рдХреНрд▓рд╕реНрдЯрд░ DNS рдХреЛ рд╕рдмрдиреЗрдЯрд╣рд░реВ рдШреЛрд╖рдгрд╛ рдЧрд░реНрдЫреМрдВред рдпрд╕реИрд▓реЗ, рдЬрдм рдЧреНрд░рд╛рд╣рдХ рд╕реЗрд╡рд╛рдорд╛ рдЬрдбрд╛рди рдЧрд░реНрди рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрджрдЫ memcached.staging.svc.cluster.local
, рдЕрдиреБрд░реЛрдз рдХреНрд▓рд╕реНрдЯрд░ DNS рдорд╛ рдЬрд╛рдиреНрдЫ рд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдорд╛ рдХреНрд▓рд╕реНрдЯрд░ рд╕реЗрд╡рд╛ рдиреЗрдЯрд╡рд░реНрдХ рд╡рд╛ рдкреЛрдб рдареЗрдЧрд╛рдирд╛рдмрд╛рдЯ рдпреЛ рд╕реЗрд╡рд╛рдХреЛ рдареЗрдЧрд╛рдирд╛ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрджрдЫред
рд╣рд╛рдореА kubeadm рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ K8s рдХреНрд▓рд╕реНрдЯрд░рд╣рд░реВ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрдЫреМрдВ, рдЬрд╣рд╛рдБ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╕реЗрд╡рд╛ рд╕рдмрдиреЗрдЯ рд╣реЛ 192.168.0.0/16
, рд░ рдкреЛрдб рдХреЛ рдиреЗрдЯрд╡рд░реНрдХ рдЫ 10.244.0.0/16
ред рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рд╕рдмреИ рдХреБрд░рд╛ рд░рд╛рдореНрд░реЛрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрджрдЫ, рддрд░ рддреНрдпрд╣рд╛рдБ рдХреЗрд╣реА рдмрд┐рдиреНрджреБрд╣рд░реВ рдЫрдиреН:
- рд╕рдмрдиреЗрдЯ
192.168.*.*
рдкреНрд░рд╛рдп: рдХреНрд▓рд╛рдЗрдиреНрдЯ рдЕрдлрд┐рд╕ рдиреЗрдЯрд╡рд░реНрдХрд╣рд░реВрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ, рд░ рдЕрдЭ рдзреЗрд░реИ рдкрдЯрдХ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛ рдЧреГрд╣ рдиреЗрдЯрд╡рд░реНрдХрд╣рд░реВрдорд╛ред рд░ рддреНрдпрд╕рдкрдЫрд┐ рд╣рд╛рдореА рджреНрд╡рдиреНрджреНрд╡рдХреЛ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реБрдиреНрдЫреМрдВ: рдЧреГрд╣ рд░рд╛рдЙрдЯрд░рд╣рд░реВ рдпрд╕ рд╕рдмрдиреЗрдЯрдорд╛ рдХрд╛рдо рдЧрд░реНрджрдЫрдиреН рд░ VPN рд▓реЗ рдпреА рд╕рдмрдиреЗрдЯрд╣рд░реВрд▓рд╛рдИ рдХреНрд▓рд╕реНрдЯрд░рдмрд╛рдЯ рдЧреНрд░рд╛рд╣рдХрдорд╛ рдзрдХреЗрд▓реНрдЫред - рд╣рд╛рдореАрд╕рдБрдЧ рдзреЗрд░реИ рдХреНрд▓рд╕реНрдЯрд░рд╣рд░реВ рдЫрдиреН (рдЙрддреНрдкрд╛рджрди, рдЪрд░рдг рд░/рд╡рд╛ рдзреЗрд░реИ рджреЗрд╡ рдХреНрд▓рд╕реНрдЯрд░рд╣рд░реВ)ред рддреНрдпрд╕рдкрдЫрд┐, рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛, рддреА рд╕рдмреИрд╕рдБрдЧ рдкреЛрдбрд╣рд░реВ рд░ рд╕реЗрд╡рд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд╛рди рд╕рдмрдиреЗрдЯрд╣рд░реВ рд╣реБрдиреЗрдЫрдиреН, рдЬрд╕рд▓реЗ рдзреЗрд░реИ рдХреНрд▓рд╕реНрдЯрд░рд╣рд░реВрдорд╛ рд╕реЗрд╡рд╛рд╣рд░реВрд╕рдБрдЧ рдПрдХрд╕рд╛рде рдХрд╛рдо рдЧрд░реНрди рдареВрд▓реЛ рдХрдард┐рдирд╛рдЗрд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджрдЫред
рд╣рд╛рдореАрд▓реЗ рдзреЗрд░реИ рдкрд╣рд┐рд▓реЗ рдиреИ рдПрдЙрдЯреИ рдкрд░рд┐рдпреЛрдЬрдирд╛ рднрд┐рддреНрд░ рд╕реЗрд╡рд╛рд╣рд░реВ рд░ рдкреЛрдбрд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ рд╡рд┐рднрд┐рдиреНрди рд╕рдмрдиреЗрдЯрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдЕрднреНрдпрд╛рд╕ рдЕрдкрдирд╛рдПрдХрд╛ рдЫреМрдВ - рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рддрд╛рдХрд┐ рд╕рдмреИ рдХреНрд▓рд╕реНрдЯрд░рд╣рд░реВрдорд╛ рдлрд░рдХ рдиреЗрдЯрд╡рд░реНрдХрд╣рд░реВ рдЫрдиреНред рдпрджреНрдпрдкрд┐, рддреНрдпрд╣рд╛рдБ рдзреЗрд░реИ рд╕рдВрдЦреНрдпрд╛рдорд╛ рдХреНрд▓рд╕реНрдЯрд░рд╣рд░реВ рд╕рдЮреНрдЪрд╛рд▓рдирдорд╛ рдЫрдиреН рдЬреБрди рдо рд╕реНрдХреНрд░реНрдпрд╛рдЪрдмрд╛рдЯ рд░реЛрд▓ рдУрднрд░ рдЧрд░реНрди рдЪрд╛рд╣рдиреНрди, рдХрд┐рдирдХрд┐ рддрд┐рдиреАрд╣рд░реВрд▓реЗ рдзреЗрд░реИ рд╕реЗрд╡рд╛рд╣рд░реВ, рд╕реНрдЯреЗрдЯрдлреБрд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВ, рдЖрджрд┐ рдЪрд▓рд╛рдЙрдБрдЫрдиреНред
рд░ рддреНрдпрд╕рдкрдЫрд┐ рд╣рд╛рдореАрд▓реЗ рдЖрдлреИрд▓рд╛рдИ рд╕реЛрдзреНрдпреМрдВ: рдЕрд╡рд╕реНрдерд┐рдд рдХреНрд▓рд╕реНрдЯрд░рдорд╛ рд╕рдмрдиреЗрдЯ рдХрд╕рд░реА рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдиреЗ?
рдирд┐рд░реНрдгрдп рдЦреЛрдЬреНрджреИ
рд╕рдмреИрднрдиреНрджрд╛ рд╕рд╛рдорд╛рдиреНрдп рдЕрднреНрдпрд╛рд╕ рдкреБрди: рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рд╣реЛ рд╕рдмреИ рдХреНрд▓рд╕реНрдЯрд░рдЖрдИрдкреА рдкреНрд░рдХрд╛рд░рдХрд╛ рд╕рд╛рде рд╕реЗрд╡рд╛рд╣рд░реВред рд╡рд┐рдХрд▓реНрдкрдХреЛ рд░реВрдкрдорд╛,
рдирд┐рдореНрди рдкреНрд░рдХреНрд░рд┐рдпрд╛рдорд╛ рд╕рдорд╕реНрдпрд╛ рдЫ: рд╕рдмреИ рдХреБрд░рд╛ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реЗрдкрдЫрд┐, /etc/resolv.conf рдорд╛ DNS рдиреЗрдорд╕рд░реНрднрд░рдХреЛ рд░реВрдкрдорд╛ рдкреЛрдбрд╣рд░реВ рдкреБрд░рд╛рдиреЛ рдЖрдИрдкреАрд╕рдБрдЧ рдЖрдЙрдБрдЫрдиреНред
рдореИрд▓реЗ рдЕрдЭреИ рд╕рдорд╛рдзрд╛рди рдлреЗрд▓рд╛ рдкрд╛рд░реЗрдХреЛ рдЫреИрди, рдореИрд▓реЗ kubeadm рд░рд┐рд╕реЗрдЯрдХреЛ рд╕рд╛рде рд╕рдореНрдкреВрд░реНрдг рдХреНрд▓рд╕реНрдЯрд░ рд░рд┐рд╕реЗрдЯ рдЧрд░реНрдиреБрдкрд░реНтАНрдпреЛ рд░ рдпрд╕рд▓рд╛рдИ рдлреЗрд░рд┐ рд╕реБрд░реБ рдЧрд░реНрдиреБрдкрд░реНтАНрдпреЛред
рддрд░ рдпреЛ рд╕рдмреИрдХрд╛ рд▓рд╛рдЧрд┐ рдЙрдкрдпреБрдХреНрдд рдЫреИрди... рдпрд╣рд╛рдБ рд╣рд╛рдореНрд░реЛ рдорд╛рдорд▓рд╛рдХреЛ рд▓рд╛рдЧрд┐ рдердк рд╡рд┐рд╕реНрддреГрдд рдкрд░рд┐рдЪрдпрд╣рд░реВ рдЫрдиреН:
- рдлрд▓рд╛рдиреЗрд▓ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ;
- рдХреНрд▓рд╕реНрдЯрд░рд╣рд░реВ рджреБрдмреИ рдХреНрд▓рд╛рдЙрдбрд╣рд░реВрдорд╛ рд░ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░рдорд╛ рдЫрдиреН;
- рдо рдХреНрд▓рд╕реНрдЯрд░рдорд╛ рд╕рдмреИ рд╕реЗрд╡рд╛рд╣рд░реВ рдкреБрди: рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдирдмрд╛рдЯ рдмрдЪреНрди рдЪрд╛рд╣рдиреНрдЫреБ;
- рддреНрдпрд╣рд╛рдБ рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рдиреНрдпреВрдирддрдо рд╕рдорд╕реНрдпрд╛рд╣рд░реВрдХреЛ рд╕рд╛рде рд╕рдмреИ рдХреБрд░рд╛ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ;
- Kubernetes рд╕рдВрд╕реНрдХрд░рдг 1.16.6 рд╣реЛ (рдпрджреНрдпрдкрд┐, рдердк рдЪрд░рдгрд╣рд░реВ рдЕрдиреНрдп рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд╛рди рд╣реБрдиреЗрдЫ);
- рдореБрдЦреНрдп рдХрд╛рд░реНрдп рднрдиреЗрдХреЛ рдХреНрд▓рд╕реНрдЯрд░рдорд╛ рд╕реЗрд╡рд╛ рд╕рдмрдиреЗрдЯрдХреЛ рд╕рд╛рде kubeadm рдкреНрд░рдпреЛрдЧ рдЧрд░реА рддреИрдирд╛рдд рдЧрд░рд┐рдПрдХреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрдиреБ рд╣реЛ
192.168.0.0/16
, рдпрд╕рд▓рд╛рдИ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдЧрд░реНрдиреБрд╣реЛрд╕реН172.24.0.0/16
.
рд░ рдпреЛ рдпрд╕реНрддреЛ рднрдпреЛ рдХрд┐ рд╣рд╛рдореА рд▓рд╛рдореЛ рд╕рдордпрджреЗрдЦрд┐ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рдорд╛ рдХреЗ рд░ рдХрд╕рд░реА etcd рдорд╛ рднрдгреНрдбрд╛рд░ рдЧрд░рд┐рдПрдХреЛ рдЫ, рдпрд╕рдХреЛ рд╕рд╛рде рдХреЗ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ рднрдиреЗрд░ рд╣реЗрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдЪрд╛рд╕реЛ рд░рд╛рдЦреЗрдХрд╛ рдерд┐рдпреМрдВ ... рддреНрдпрд╕реИрд▓реЗ рд╣рд╛рдореАрд▓реЗ рд╕реЛрдЪреНрдпреМрдВ: "рдкреБрд░рд╛рдиреЛ рдЖрдИрдкреА рдареЗрдЧрд╛рдирд╛рд╣рд░реВ (рд╕рдмрдиреЗрдЯ) рд▓рд╛рдИ рдирдпрд╛рдБрд╕рдБрдЧ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдЧрд░реНрджреИ, etcd рдорд╛ рдбрд╛рдЯрд╛ рдЕрдкрдбреЗрдЯ рдХрд┐рди рдирдЧрд░реНрдиреБрд╣реЛрд╕реН? "
etcd рдорд╛ рдбреЗрдЯрд╛ рд╕рдВрдЧ рдХрд╛рдо рдЧрд░реНрди рдХреЛ рд▓рд╛рдЧреА рддрдпрд╛рд░ рдЙрдкрдХрд░рдг рдХреЛ рд▓рд╛рдЧреА рдЦреЛрдЬреА рдЧрд░рд┐рд╕рдХреЗрдкрдЫрд┐, рд╣рд╛рдореАрд▓реЗ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреВрд░реНрдг рд╕рдорд╛рдзрд╛рди рдЧрд░реНрдиреЗ рдХреЗрд╣рд┐ рдкрдирд┐ рдлреЗрд▓рд╛ рдкрд╛рд░реЗрдиреМрдВред (рд╡реИрд╕реЗ, рдпрджрд┐ рддрдкрд╛рдЗрдБ рдбреЗрдЯрд╛ рд╕рдВрдЧ рд╕реАрдзрд╛ etcd рдорд╛ рдХрд╛рдо рдЧрд░реНрди рдХреЛ рд▓рд╛рдЧреА рдХреБрдиреИ рдЙрдкрдпреЛрдЧрд┐рддрд╛рд╣рд░реБ рдХреЛ рдмрд╛рд░реЗ рдорд╛ рдерд╛рд╣рд╛ рдЫ, рд╣рд╛рдореА рд▓рд┐рдЩреНрдХрд╣рд░реБ рдХреЛ рд╕рд░рд╛рд╣рдирд╛ рдЧрд░реНрдиреЗрдЫреМрдВред) рдпрджреНрдпрдкрд┐, рд░рд╛рдореНрд░реЛ рд╕реБрд░реБрд╡рд╛рдд рдмрд┐рдиреНрджреБ рд╣реЛ
рдпреЛ рдЙрдкрдпреЛрдЧрд┐рддрд╛рд▓реЗ рдкреНрд░рдорд╛рдгрдкрддреНрд░рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ etcd рдорд╛ рдЬрдбрд╛рди рдЧрд░реНрди рд╕рдХреНрдЫ рд░ рддреНрдпрд╣рд╛рдБрдмрд╛рдЯ рдЖрджреЗрд╢рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдбреЗрдЯрд╛ рдкрдвреНрди рд╕рдХреНрдЫ ls
, get
, dump
.
etcdhelper рдердкреНрдиреБрд╣реЛрд╕реН
рдЕрд░реНрдХреЛ рд╡рд┐рдЪрд╛рд░ рддрд╛рд░реНрдХрд┐рдХ рдЫ: "рдХрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ etcd рдорд╛ рдбрд╛рдЯрд╛ рд▓реЗрдЦреНрдиреЗ рдХреНрд╖рдорддрд╛ рдердкреЗрд░ рдпреЛ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдердкреНрдирдмрд╛рдЯ рд░реЛрдХреЗрдХреЛ рдЫ?"
рдпреЛ рджреБрдИ рдирдпрд╛рдБ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реБ рд╕рдВрдЧ etcdhelper рдХреЛ рдкрд░рд┐рдорд╛рд░реНрдЬрд┐рдд рд╕рдВрд╕реНрдХрд░рдг рднрдпреЛ changeServiceCIDR
╨╕ changePodCIDR
ред рдЙрдирдХреЛ рдорд╛ рддрдкрд╛рдИрдВ рдХреЛрдб рд╣реЗрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ
рдирдпрд╛рдБ рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВрд▓реЗ рдХреЗ рдЧрд░реНрдЫ? рдПрд▓реНрдЧреЛрд░рд┐рджрдо changeServiceCIDR
:
- рдПрдХ deserializer рд╕рд┐рд░реНрдЬрдирд╛;
- CIDR рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдЧрд░реНрди рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрдореНрдкрд╛рдЗрд▓ рдЧрд░реНрдиреБрд╣реЛрд╕реН;
- рд╣рд╛рдореА рдХреНрд▓рд╕реНрдЯрд░рдорд╛ ClusterIP рдкреНрд░рдХрд╛рд░рдХрд╛ рд╕рдмреИ рд╕реЗрд╡рд╛рд╣рд░реВ рдорд╛рд░реНрдлрдд рдЬрд╛рдиреНрдЫреМрдВ:
- etcd рдмрд╛рдЯ Go рд╡рд╕реНрддреБрдорд╛ рдорд╛рди рдбрд┐рдХреЛрдб рдЧрд░реНрдиреБрд╣реЛрд╕реН;
- рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╣рд╛рдореА рдареЗрдЧрд╛рдирд╛рдХреЛ рдкрд╣рд┐рд▓реЛ рджреБрдИ рдмрд╛рдЗрдЯрд╣рд░реВ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдЧрд░реНрдЫреМрдВ;
- рд╕реЗрд╡рд╛рд▓рд╛рдИ рдирдпрд╛рдБ рд╕рдмрдиреЗрдЯрдмрд╛рдЯ IP рдареЗрдЧрд╛рдирд╛ рдкреНрд░рджрд╛рди рдЧрд░реНрдиреБрд╣реЛрд╕реН;
- рд╕рд┐рд░рд┐рдпрд▓рд╛рдЗрдЬрд░ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН, рдЧреЛ рд╡рд╕реНрддреБрд▓рд╛рдИ рдкреНрд░реЛрдЯреЛрдмрдлрдорд╛ рд░реВрдкрд╛рдиреНрддрд░рдг рдЧрд░реНрдиреБрд╣реЛрд╕реН, рдЖрджрд┐рдорд╛ рдирдпрд╛рдБ рдбрд╛рдЯрд╛ рд▓реЗрдЦреНрдиреБрд╣реЛрд╕реНред
рд╕рдорд╛рд░реЛрд╣ changePodCIDR
рдореВрд▓рддрдГ рд╕рдорд╛рди changeServiceCIDR
- рдХреЗрд╡рд▓ рд╕реЗрд╡рд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ рд╕рдореНрдкрд╛рджрди рдЧрд░реНрдиреБрдХреЛ рд╕рдЯреНрдЯрд╛, рд╣рд╛рдореА рдпреЛ рдиреЛрдб рд░ рдкрд░рд┐рд╡рд░реНрддрдирдХреЛ рд▓рд╛рдЧрд┐ рдЧрд░реНрдЫреМрдВ .spec.PodCIDR
рдирдпрд╛рдБ рд╕рдмрдиреЗрдЯрдорд╛ред
рдЕрднреНрдпрд╛рд╕ рдЧрд░реНрдиреБрд╣реЛрд╕реН
рд╕реЗрд╡рд╛ CIDR рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдиреБрд╣реЛрд╕реН
рдХрд╛рд░реНрдп рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рд▓рд╛рдЧрд┐ рдпреЛрдЬрдирд╛ рдзреЗрд░реИ рд╕рд░рд▓ рдЫ, рддрд░ рдХреНрд▓рд╕реНрдЯрд░рдорд╛ рд╕рдмреИ рдкреЛрдбрд╣рд░реВ рдкреБрди: рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджрд╛ рдпрд╕рд▓реЗ рдбрд╛рдЙрдирдЯрд╛рдЗрдо рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫред рдореБрдЦреНрдп рдЪрд░рдгрд╣рд░реВ рд╡рд░реНрдгрди рдЧрд░рд┐рд╕рдХреЗрдкрдЫрд┐, рд╣рд╛рдореА рд╕рд┐рджреНрдзрд╛рдиреНрддрдорд╛, рдпреЛ рдбрд╛рдЙрдирдЯрд╛рдЗрдо рдХрд╕рд░реА рдХрдо рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ рднрдиреНрдиреЗ рдмрд╛рд░реЗ рдкрдирд┐ рд╡рд┐рдЪрд╛рд░ рд╕рд╛рдЭрд╛ рдЧрд░реНрдиреЗрдЫреМрдВред
рддрдпрд╛рд░реА рдЪрд░рдгрд╣рд░реВ:
- рдЖрд╡рд╢реНрдпрдХ рд╕рдлреНрдЯрд╡реЗрдпрд░ рд╕реНрдерд╛рдкрдирд╛ рд░ рдкреНрдпрд╛рдЪ рдЧрд░рд┐рдПрдХреЛ etcdhelper рд╕рдВрдпреЛрдЬрди;
- рдмреНрдпрд╛рдХрдЕрдк рдЖрджрд┐ рд░
/etc/kubernetes
.
рд╕реЗрд╡рд╛рд╕реАрдЖрдИрдбреАрдЖрд░ рдкрд░рд┐рд╡рд░реНрддрдирдХреЛ рд▓рд╛рдЧрд┐ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдХрд╛рд░реНрдп рдпреЛрдЬрдирд╛:
- apiserver рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрджреИ рд░ рдирд┐рдпрдиреНрддреНрд░рдХ-рдкреНрд░рдмрдиреНрдзрдХ рдкреНрд░рдХрдЯ рд╣реБрдиреНрдЫ;
- рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдкреБрди: рдЬрд╛рд░реА;
- рдЖрджрд┐рдорд╛ рдХреНрд▓рд╕реНрдЯрд░рдЖрдИрдкреА рд╕реЗрд╡рд╛рд╣рд░реВ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрджреИ;
- рдХреНрд▓рд╕реНрдЯрд░рдорд╛ рд╕рдмреИ рдкреЛрдбрд╣рд░реВ рдкреБрди: рд╕реБрд░реБ рдЧрд░реНрдиреБрд╣реЛрд╕реНред
рдирд┐рдореНрди рд╡рд┐рд╕реНрддреГрдд рд░реВрдкрдорд╛ рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рдкреВрд░реНрдг рдЕрдиреБрдХреНрд░рдо рд╣реЛред
1. рдбрд╛рдЯрд╛ рдбрдореНрдкрдХреЛ рд▓рд╛рдЧрд┐ etcd-client рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН:
apt install etcd-client
реи. рдирд┐рд░реНрдорд╛рдг рдЖрджрд┐ рд╕рд╣рдпреЛрдЧрдХрд░реНрддрд╛:
- Golang рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН:
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. Kubernetes рдирд┐рдпрдиреНрддреНрд░рдг рд╡рд┐рдорд╛рди manifests рдорд╛ рд╕реЗрд╡рд╛ рд╕рдмрдиреЗрдЯ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдиреБрд╣реЛрд╕реНред рдлрд╛рдЗрд▓рд╣рд░реВрдорд╛ /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 apiserver (рд╕рд╣рд┐рдд) рдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЬрд╛рд░реА рдЧрд░реНрджрдЫ, рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдкреБрди: рдЬрд╛рд░реА рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ:
- рдХреБрди рдбреЛрдореЗрди рд░ IP рдареЗрдЧрд╛рдирд╛рд╣рд░реВ рд╣рд╛рд▓рдХреЛ рдкреНрд░рдорд╛рдгрдкрддреНрд░рдХреЛ рд▓рд╛рдЧрд┐ рдЬрд╛рд░реА рдЧрд░рд┐рдПрдХреЛ рдЫ рд╣реЗрд░реМрдВ:
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
- 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-╨░╨┤╤А╨╡╤Б ╨╝╨░╤Б╤В╨╡╤А ╤Г╨╖╨╗╨░
- рдкреБрд░рд╛рдиреЛ crt рд░ рдХреБрдЮреНрдЬреА рдореЗрдЯрд╛рдЙрдиреБрд╣реЛрд╕реН, рдХрд┐рдирдХрд┐ рдпреЛ рдмрд┐рдирд╛ рдирдпрд╛рдБ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЬрд╛рд░реА рд╣реБрдиреЗрдЫреИрди:
rm /etc/kubernetes/pki/apiserver.{key,crt}
- API рд╕рд░реНрднрд░рдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рдорд╛рдгрдкрддреНрд░рд╣рд░реВ рдкреБрди: рдЬрд╛рд░реА рдЧрд░реМрдВ:
kubeadm init phase certs apiserver --config=kubeadm-config.yaml
- рдЬрд╛рдБрдЪ рдЧрд░реМрдВ рдХрд┐ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдирдпрд╛рдБ рд╕рдмрдиреЗрдЯрдХреЛ рд▓рд╛рдЧрд┐ рдЬрд╛рд░реА рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ:
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
- API рд╕рд░реНрднрд░ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдкреБрди: рдЬрд╛рд░реА рдЧрд░реЗрдкрдЫрд┐, рдпрд╕рдХреЛ рдХрдиреНрдЯреЗрдирд░ рдкреБрди: рд╕реБрд░реБ рдЧрд░реНрдиреБрд╣реЛрд╕реН:
docker ps | grep k8s_kube-apiserver | awk '{print $1}' | xargs docker restart
- рдХреЛ рд▓рд╛рдЧрд┐ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдкреБрди: рдЙрддреНрдкрдиреНрди рдЧрд░реМрдВ
admin.conf
:kubeadm alpha certs renew admin.conf
- рдЖрджрд┐рдорд╛ рдбрд╛рдЯрд╛ рд╕рдореНрдкрд╛рджрди рдЧрд░реМрдВ:
./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 рдареЗрдЧрд╛рдирд╛ (kube-dns) рджрд░реНрддрд╛ рдЧрд░рд┐рдПрдХреЛ рдЫ, рд░ kube-proxy рд▓реЗ iptables рдирд┐рдпрдорд╣рд░реВ рдкреБрд░рд╛рдиреЛ рд╕рдмрдиреЗрдЯрдмрд╛рдЯ рдирдпрд╛рдБрдорд╛ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрджрдЫред рдердк рд▓реЗрдЦрдорд╛ рдпреЛ рдбрд╛рдЙрдирдЯрд╛рдЗрдо рдХрдо рдЧрд░реНрди рд╕рдореНрднрд╛рд╡рд┐рдд рд╡рд┐рдХрд▓реНрдкрд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рд▓реЗрдЦрд┐рдПрдХреЛ рдЫред - рдирд╛рдорд╕реНрдерд╛рдирдорд╛ рдХрдиреНрдлрд┐рдЧрдореНрдпрд╛рдкрд▓рд╛рдИ рдареАрдХ рдЧрд░реМрдВ
kube-system
:kubectl -n kube-system edit cm kubelet-config-1.16
- рдпрд╣рд╛рдБ рдмрджрд▓реНрдиреБрд╣реЛрд╕реН
clusterDNS
kube-dns рд╕реЗрд╡рд╛рдХреЛ рдирдпрд╛рдБ рдЖрдИрдкреА рдареЗрдЧрд╛рдирд╛рдорд╛:kubectl -n kube-system get svc kube-dns
.kubectl -n kube-system edit cm kubeadm-config
- рд╣рд╛рдореА рдпрд╕рд▓рд╛рдИ рдареАрдХ рдЧрд░реНрдиреЗрдЫреМрдВ
data.ClusterConfiguration.networking.serviceSubnet
рдирдпрд╛рдБ рд╕рдмрдиреЗрдЯрдорд╛ред - kube-dns рдареЗрдЧрд╛рдирд╛ рдкрд░рд┐рд╡рд░реНрддрди рднрдПрдХреЛрд▓реЗ, рдпреЛ рд╕рдмреИ рдиреЛрдбрд╣рд░реВрдорд╛ kubelet рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ:
kubeadm upgrade node phase kubelet-config && systemctl restart kubelet
- рдмрд╛рдБрдХреА рд░рд╣реЗрдХреЛ рд╕рдмреИ рдкреЛрдбрд╣рд░реВ рдХреНрд▓рд╕реНрдЯрд░рдорд╛ рдкреБрди: рд╕реБрд░реБ рдЧрд░реНрди рд╣реЛ:
kubectl get pods --no-headers=true --all-namespaces |sed -r 's/(S+)s+(S+).*/kubectl --namespace 1 delete pod 2/e'
рдбрд╛рдЙрдирдЯрд╛рдЗрдо рдиреНрдпреВрдирддрдо рдЧрд░реНрдиреБрд╣реЛрд╕реН
рдбрд╛рдЙрдирдЯрд╛рдЗрдо рдХрд╕рд░реА рдХрдо рдЧрд░реНрдиреЗ рдмрд╛рд░реЗ рд╡рд┐рдЪрд╛рд░рд╣рд░реВ:
- рдХрдиреНрдЯреНрд░реЛрд▓ рдкреНрд▓реЗрди рдореЗрдирд┐рдлреЗрд╕реНрдЯ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реЗрдкрдЫрд┐, рдирдпрд╛рдБ kube-dns рд╕реЗрд╡рд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдирд╛рдордХреЛ рд╕рд╛рде
kube-dns-tmp
рд░ рдирдпрд╛рдБ рдареЗрдЧрд╛рдирд╛172.24.0.10
. - рдмрдирд╛рдЙрдиреБрд╣реЛрд╕реН
if
etcdhelper рдорд╛, рдЬрд╕рд▓реЗ kube-dns рд╕реЗрд╡рд╛ рдкрд░рд┐рдорд╛рд░реНрдЬрди рдЧрд░реНрджреИрдиред - рд╕рдмреИ kubelets рдорд╛ рдареЗрдЧрд╛рдирд╛ рдмрджрд▓реНрдиреБрд╣реЛрд╕реН
ClusterDNS
рдирдпрд╛рдБрдорд╛, рдЬрдмрдХрд┐ рдкреБрд░рд╛рдиреЛ рд╕реЗрд╡рд╛рд▓реЗ рдирдпрд╛рдБрд╕рдБрдЧ рдПрдХреИрд╕рд╛рде рдХрд╛рдо рдЧрд░реНрди рдЬрд╛рд░реА рд░рд╛рдЦреНрдиреЗрдЫред - рдПрдкреНрд▓рд┐рдХреЗрд╕рдирд╣рд░реВ рднрдПрдХрд╛ рдкреЛрдбрд╣рд░реВ рдкреНрд░рд╛рдХреГрддрд┐рдХ рдХрд╛рд░рдгрд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ рд╡рд╛ рдПрдХ рд╕рд╣рдорддрд┐ рднрдПрдХреЛ рд╕рдордпрдорд╛ рдЖрдлреИрдВрд▓реЗ рд░реЛрд▓ рдУрднрд░ рдирднрдПрд╕рдореНрдо рдкрд░реНрдЦрдиреБрд╣реЛрд╕реНред
- рд╕реЗрд╡рд╛ рдореЗрдЯрд╛рдЙрдиреБрд╣реЛрд╕реН
kube-dns-tmp
рд░ рдкрд░рд┐рд╡рд░реНрддрдиserviceSubnetCIDR
kube-dns рд╕реЗрд╡рд╛рдХреЛ рд▓рд╛рдЧрд┐ред
рдпреЛ рдпреЛрдЬрдирд╛рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдбрд╛рдЙрдирдЯрд╛рдЗрдо ~ рдПрдХ рдорд┐рдиреЗрдЯрдорд╛ рдХрдо рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреЗрдЫ - рд╕реЗрд╡рд╛ рд╣рдЯрд╛рдЙрдиреЗ рдЕрд╡рдзрд┐рдХреЛ рд▓рд╛рдЧрд┐ kube-dns-tmp
рд░ рд╕реЗрд╡рд╛рдХреЛ рд▓рд╛рдЧрд┐ рд╕рдмрдиреЗрдЯ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрджреИ kube-dns
.
рдкрд░рд┐рдорд╛рд░реНрдЬрди рдкреЛрдбрдиреЗрдЯрд╡рд░реНрдХ
рдПрдХреИ рд╕рдордпрдорд╛, рд╣рд╛рдореАрд▓реЗ рдкрд░рд┐рдгрд╛рдорд┐рдд etcdhelper рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ podNetwork рдХрд╕рд░реА рдкрд░рд┐рдорд╛рд░реНрдЬрди рдЧрд░реНрдиреЗ рднрдиреЗрд░ рд╣реЗрд░реНрдиреЗ рдирд┐рд░реНрдгрдп рдЧрд░реНрдпреМрдВред рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рдХреНрд░рдо рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдЫ:
- рдорд╛ рдХрдиреНрдлрд┐рдЧрд╣рд░реВ рдлрд┐рдХреНрд╕ рдЧрд░реНрджреИ
kube-system
; - kube-controller-manager manifest рдлрд┐рдХреНрд╕ рдЧрд░реНрджреИ;
- podCIDR рд╕рд┐рдзреИ etcd рдорд╛ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдиреБрд╣реЛрд╕реН;
- рд╕рдмреИ рдХреНрд▓рд╕реНрдЯрд░ рдиреЛрдбрд╣рд░реВ рд░рд┐рдмреБрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реНред
рдЕрдм рдпреА рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдердк:
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. рд╕рд┐рдзреИ etcd рдорд╛ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реЗрд░ podCIDR рдмрджрд▓реНрдиреБрд╣реЛрд╕реН:
./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
рел. рдкреЛрдбрд╕реАрдЖрдИрдбреАрдЖрд░ рд╡рд╛рд╕реНрддрд╡рдореИ рдкрд░рд┐рд╡рд░реНрддрди рднрдПрдХреЛ рдЫ рднрдиреА рдЬрд╛рдБрдЪ рдЧрд░реМрдВ:
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"
}
]
рем. рд╕рдмреИ рдХреНрд▓рд╕реНрдЯрд░ рдиреЛрдбрд╣рд░реВ рдПрдХ-рдПрдХ рдЧрд░реЗрд░ рд░рд┐рдмреБрдЯ рдЧрд░реМрдВред
7. рдпрджрд┐ рддрдкрд╛рдИрдВрд▓реЗ рдХрдореНрддрд┐рдорд╛ рдПрдЙрдЯрд╛ рдиреЛрдб рдЫреЛрдбреНрдиреБрднрдпреЛ рднрдиреЗ рдкреБрд░рд╛рдиреЛ podCIDR, рддреНрдпрд╕рдкрдЫрд┐ kube-controller-manager рд╕реБрд░реБ рдЧрд░реНрди рд╕рдХреНрд╖рдо рд╣реБрдиреЗрдЫреИрди, рд░ рдХреНрд▓рд╕реНрдЯрд░рдорд╛ рдкреЛрдбрд╣рд░реВ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реБрдиреЗ рдЫреИрдирдиреНред
рд╡рд╛рд╕реНрддрд╡рдорд╛, podCIDR рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рдЕрдЭ рд╕рд░рд▓ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, spec.clusterIP
.)
рдкрд░рд┐рдгрд╛рдо
рд▓реЗрдЦрд▓реЗ рдбреЗрдЯрд╛рд╕рдБрдЧ рдкреНрд░рддреНрдпрдХреНрд╖ рд░реВрдкрдорд╛ etcd рдорд╛ рдХрд╛рдо рдЧрд░реНрдиреЗ рд╕рдореНрднрд╛рд╡рдирд╛рдХреЛ рдмрд╛рд░реЗрдорд╛ рдЫрд▓рдлрд▓ рдЧрд░реНрджрдЫ, рдЕрд░реНрдерд╛рддреНред Kubernetes API рд▓рд╛рдИ рдмрд╛рдЗрдкрд╛рд╕ рдЧрд░реНрджреИред рдХрд╣рд┐рд▓реЗрдХрд╛рд╣реАрдБ рдпреЛ рджреГрд╖реНрдЯрд┐рдХреЛрдгрд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ "рдареБрд▓реЛ рдХреБрд░рд╛рд╣рд░реВ" рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред рд╣рд╛рдореАрд▓реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ K8s рдХреНрд▓рд╕реНрдЯрд░рд╣рд░реВрдорд╛ рдкрд╛рдардорд╛ рджрд┐рдЗрдПрдХреЛ рдЕрдкрд░реЗрд╕рдирд╣рд░реВрдХреЛ рдкрд░реАрдХреНрд╖рдг рдЧрд░реНрдпреМрдВред рдпрджреНрдпрдкрд┐, рд╡реНрдпрд╛рдкрдХ рдкреНрд░рдпреЛрдЧрдХреЛ рд▓рд╛рдЧрд┐ рддрд┐рдиреАрд╣рд░реВрдХреЛ рддрддреНрдкрд░рддрд╛рдХреЛ рд╕реНрдерд┐рддрд┐ рдЫ PoC (рдЕрд╡рдзрд╛рд░рдгрд╛рдХреЛ рдкреНрд░рдорд╛рдг)ред рддреНрдпрд╕рдХрд╛рд░рдг, рдпрджрд┐ рддрдкрд╛рдЗрдБ рддрдкрд╛рдЗрдБрдХреЛ рдХреНрд▓рд╕реНрдЯрд░рд╣рд░реВрдорд╛ etcdhelper рдЙрдкрдпреЛрдЧрд┐рддрд╛рдХреЛ рдкрд░рд┐рдорд╛рд░реНрдЬрд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдЪрд╛рд╣рдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рддрдкрд╛рдЗрдБрдХреЛ рдЖрдлреНрдиреИ рдЬреЛрдЦрд┐рдордорд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реНред
PS
рд╣рд╛рдореНрд░реЛ рдмреНрд▓рдЧрдорд╛ рдкрдирд┐ рдкрдвреНрдиреБрд╣реЛрд╕реН:
- ┬л
etcd 3.4.3: рднрдгреНрдбрд╛рд░рдг рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рд░ рд╕реБрд░рдХреНрд╖рд╛рдХреЛ рдЕрдзреНрдпрдпрди ┬╗; - ┬л
Kubernetes рдорд╛ рдиреЗрдЯрд╡рд░реНрдХрд┐рдВрдЧ рдХреЛ рд▓рд╛рдЧреА рдХреНрдпрд╛рд▓рд┐рдХреЛ: рдкрд░рд┐рдЪрдп рд░ рдПрдХ рд╕рд╛рдиреЛ рдЕрдиреБрднрд╡ ┬╗; - ┬л
Kubernetes рдХреЛ рд╕рдЮреНрдЪрд╛рд▓рдирдорд╛ 6 рдордиреЛрд░рдЮреНрдЬрди рдкреНрд░рдгрд╛рд▓реА рдмрдЧрд╣рд░реВ [рд░ рддрд┐рдиреАрд╣рд░реВрдХреЛ рд╕рдорд╛рдзрд╛рди] ┬╗; - ┬л
Kubernetes рд╕рдорд╕реНрдпрд╛ рдирд┐рд╡рд╛рд░рдг рдХреЛ рд▓рд╛рдЧреА рдПрдХ рднрд┐рдЬреБрдЕрд▓ рдЧрд╛рдЗрдб "ред
рд╕реНрд░реЛрдд: www.habr.com