рд╡рд╛рдврддреНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд, рдХреНрд▓рд╛рдпрдВрдЯ рдЖрдореНрд╣рд╛рд▓рд╛ рдХреНрд▓рд╕реНрдЯрд░рдордзреАрд▓ рд╕реЗрд╡рд╛рдВрдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдХрд░рдгреНрдпрд╛рд╕ рд╕рдХреНрд╖рдо рд╣реЛрдгреНрдпрд╛рд╕рд╛рдареА 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.*.*
рдмрд╣реБрддреЗрдХрджрд╛ рдХреНрд▓рд╛рдпрдВрдЯ рдСрдлрд┐рд╕ рдиреЗрдЯрд╡рд░реНрдХрдордзреНрдпреЗ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ рдЖрдгрд┐ рдмрд░реЗрдЪрджрд╛ рдбреЗрд╡реНрд╣рд▓рдкрд░ рд╣реЛрдо рдиреЗрдЯрд╡рд░реНрдХрдордзреНрдпреЗ. рдЖрдгрд┐ рдордЧ рдЖрдореНрд╣рд╛рд▓рд╛ рд╕рдВрдШрд░реНрд╖ рдорд┐рд│рддреЛ: рд╣реЛрдо рд░рд╛рдЙрдЯрд░ рдпрд╛ рд╕рдмрдиреЗрдЯрд╡рд░ рдХрд╛рд░реНрдп рдХрд░рддрд╛рдд рдЖрдгрд┐ рд╡реНрд╣реАрдкреАрдПрди рдпрд╛ рд╕рдмрдиреЗрдЯрд▓рд╛ рдХреНрд▓рд╕реНрдЯрд░рдордзреВрди рдХреНрд▓рд╛рдпрдВрдЯрдХрдбреЗ рдврдХрд▓рддрд╛рдд. - рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдЕрдиреЗрдХ рдХреНрд▓рд╕реНрдЯрд░ рдЖрд╣реЗрдд (рдЙрддреНрдкрд╛рджрди, рд╕реНрдЯреЗрдЬ рдЖрдгрд┐/рдХрд┐рдВрд╡рд╛ рдЕрдиреЗрдХ рдбреЗрд╡реНрд╣ рдХреНрд▓рд╕реНрдЯрд░). рдирдВрддрд░, рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░, рддреНрдпрд╛ рд╕рд░реНрд╡рд╛рдВрдордзреНрдпреЗ рдкреЙрдбреНрд╕ рдЖрдгрд┐ рд╕реЗрд╡рд╛рдВрд╕рд╛рдареА рд╕рдорд╛рди рд╕рдмрдиреЗрдЯ рдЕрд╕рддреАрд▓, рдЬреНрдпрд╛рдореБрд│реЗ рдЕрдиреЗрдХ рдХреНрд▓рд╕реНрдЯрд░реНрд╕рдордзреАрд▓ рд╕реЗрд╡рд╛рдВрд╕рд╣ рдПрдХрд╛рдЪ рд╡реЗрд│реА рдХрд╛рдо рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдореЛрдареНрдпрд╛ рдЕрдбрдЪрдгреА рдирд┐рд░реНрдорд╛рдг рд╣реЛрддрд╛рдд.
рдПрдХрд╛рдЪ рдкреНрд░рдХрд▓реНрдкрд╛рддреАрд▓ рд╕реЗрд╡рд╛ рдЖрдгрд┐ рдкреЙрдбреНрд╕рд╕рд╛рдареА рд╡реЗрдЧрд╡реЗрдЧрд│реЗ рд╕рдмрдиреЗрдЯ рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА рдкреНрд░рдерд╛ рдЖрдореНрд╣реА рдЦреВрдк рдкреВрд░реНрд╡реАрдкрд╛рд╕реВрди рд╕реНрд╡реАрдХрд╛рд░рд▓реА рдЖрд╣реЗ - рд╕рд░реНрд╡рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ, рдЬреЗрдгреЗрдХрд░реВрди рд╕рд░реНрд╡ рдХреНрд▓рд╕реНрдЯрд░реНрд╕рдЪреЗ рдиреЗрдЯрд╡рд░реНрдХ рд╡реЗрдЧрд│реЗ рдЕрд╕рддреАрд▓. рддрдерд╛рдкрд┐, рдореЛрдареНрдпрд╛ рд╕рдВрдЦреНрдпреЗрдиреЗ рдХреНрд▓рд╕реНрдЯрд░ рдХрд╛рд░реНрдпрд░рдд рдЖрд╣реЗрдд рдЬреЗ рдорд▓рд╛ рд╕реБрд░рд╡рд╛рддреАрдкрд╛рд╕реВрди рд░реЛрд▓ рдУрд╡реНрд╣рд░ рдХрд░рд╛рдпрд▓рд╛ рдЖрд╡рдбрдгрд╛рд░ рдирд╛рд╣реАрдд, рдХрд╛рд░рдг рддреЗ рдЕрдиреЗрдХ рд╕реЗрд╡рд╛, рд╕реНрдЯреЗрдЯрдлреБрд▓ рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ рдЗрддреНрдпрд╛рджреА рдЪрд╛рд▓рд╡рддрд╛рдд.
рдЖрдгрд┐ рдордЧ рдЖрдореНрд╣реА рд╕реНрд╡рддрдГрд▓рд╛ рд╡рд┐рдЪрд╛рд░рд▓реЗ: рд╡рд┐рджреНрдпрдорд╛рди рдХреНрд▓рд╕реНрдЯрд░рдордзреНрдпреЗ рд╕рдмрдиреЗрдЯ рдХрд╕реЗ рдмрджрд▓рд╛рд╡реЗ?
рдирд┐рд░реНрдгрдпрд╛рдВрдЪрд╛ рд╢реЛрдз
рд╕рд░реНрд╡рд╛рдд рд╕рд╛рдорд╛рдиреНрдп рд╕рд░рд╛рд╡ рдореНрд╣рдгрдЬреЗ рдкреБрдиреНрд╣рд╛ рддрдпрд╛рд░ рдХрд░рдгреЗ рд╕рд░реНрд╡ рдХреНрд▓рд╕реНрдЯрд░рдЖрдпрдкреА рдкреНрд░рдХрд╛рд░рд╛рд╕рд╣ рд╕реЗрд╡рд╛. рдПрдХ рдкрд░реНрдпрд╛рдп рдореНрд╣рдгреВрди,
рдЦрд╛рд▓реАрд▓ рдкреНрд░рдХреНрд░рд┐рдпреЗрдд рд╕рдорд╕реНрдпрд╛ рдЖрд╣реЗ: рд╕рд░реНрд╡рдХрд╛рд╣реА рдХреЙрдиреНрдлрд┐рдЧрд░ рдХреЗрд▓реНрдпрд╛рдирдВрддрд░, /etc/resolv.conf рдордзреНрдпреЗ DNS рдиреЗрдорд╕рд░реНрд╡реНрд╣рд░ рдореНрд╣рдгреВрди рдкреЙрдбреНрд╕ рдЬреБрдиреНрдпрд╛ рдЖрдпрдкреАрд╕рд╣ рдпреЗрддрд╛рдд.
рдорд▓рд╛ рдЕрдЬреВрдирд╣реА рдЙрдкрд╛рдп рд╕рд╛рдкрдбрд▓рд╛ рдирд╕рд▓реНрдпрд╛рдореБрд│реЗ, рдорд▓рд╛ kubeadm рд░реАрд╕реЗрдЯрд╕рд╣ рд╕рдВрдкреВрд░реНрдг рдХреНрд▓рд╕реНрдЯрд░ рд░реАрд╕реЗрдЯ рдХрд░рд╛рд╡реЗ рд▓рд╛рдЧрд▓реЗ рдЖрдгрд┐ рддреЗ рдкреБрдиреНрд╣рд╛ рд╕реБрд░реВ рдХрд░рд╛рд╡реЗ рд▓рд╛рдЧрд▓реЗ.
рдкрд░рдВрддреБ рд╣реЗ рдкреНрд░рддреНрдпреЗрдХрд╛рд╕рд╛рдареА рдпреЛрдЧреНрдп рдирд╛рд╣реА... рдЖрдордЪреНрдпрд╛ рдХреЗрд╕рд╕рд╛рдареА рдпреЗрдереЗ рдЕрдзрд┐рдХ рддрдкрд╢реАрд▓рд╡рд╛рд░ рдкрд░рд┐рдЪрдп рдЖрд╣реЗрдд:
- рдлреНрд▓реЕрдиреЗрд▓ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ;
- рдврдЧрд╛рдВрдордзреНрдпреЗ рдЖрдгрд┐ рд╣рд╛рд░реНрдбрд╡реЗрдЕрд░рд╡рд░ рджреЛрдиреНрд╣реА рдХреНрд▓рд╕реНрдЯрд░реНрд╕ рдЖрд╣реЗрдд;
- рдореА рдХреНрд▓рд╕реНрдЯрд░рдордзреАрд▓ рд╕рд░реНрд╡ рд╕реЗрд╡рд╛ рдкреБрдиреНрд╣рд╛ рддреИрдирд╛рдд рдХрд░рдгреЗ рдЯрд╛рд│реВ рдЗрдЪреНрдЫрд┐рддреЛ;
- рд╕рд╛рдорд╛рдиреНрдпрдд: рдХрдореАрддрдХрдореА рд╕рдорд╕реНрдпрд╛рдВрд╕рд╣ рд╕рд░реНрд╡рдХрд╛рд╣реА рдХрд░рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЖрд╣реЗ;
- Kubernetes рдЖрд╡реГрддреНрддреА 1.16.6 рдЖрд╣реЗ (рддрдерд╛рдкрд┐, рдкреБрдвреАрд▓ рдЪрд░рдг рдЗрддрд░ рдЖрд╡реГрддреНрддреНрдпрд╛рдВрд╕рд╛рдареА рд╕рдорд╛рди рдЕрд╕рддреАрд▓);
- рд╕реЗрд╡рд╛ рд╕рдмрдиреЗрдЯрд╕рд╣ kubeadm рд╡рд╛рдкрд░реВрди рддреИрдирд╛рдд рдХреЗрд▓реЗрд▓реНрдпрд╛ рдХреНрд▓рд╕реНрдЯрд░рдордзреНрдпреЗ рдпрд╛рдЪреА рдЦрд╛рддреНрд░реА рдХрд░рдгреЗ рд╣реЗ рдореБрдЦреНрдп рдХрд╛рд░реНрдп рдЖрд╣реЗ
192.168.0.0/16
, рд╕рд╣ рдмрджрд▓рд╛172.24.0.0/16
.
рдЖрдгрд┐ рд╣реЗ рдЕрд╕реЗрдЪ рдШрдбрд▓реЗ рдХреА рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рдордзреНрдпреЗ etcd рдордзреНрдпреЗ рдХрд╛рдп рдЖрдгрд┐ рдХрд╕реЗ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддреЗ, рддреНрдпрд╛рджреНрд╡рд╛рд░реЗ рдХрд╛рдп рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ рд╣реЗ рдкрд╛рд╣рдгреНрдпрд╛рдд рдЖрдореНрд╣рд╛рд▓рд╛ рдЦреВрдк рдкреВрд░реНрд╡реАрдкрд╛рд╕реВрди рд░рд╕ рд╣реЛрддрд╛... рдореНрд╣рдгреВрди рдЖрдореНрд╣реА рд╡рд┐рдЪрд╛рд░ рдХреЗрд▓рд╛: тАЬрдЬреБрдиреЗ IP рдкрддреНрддреЗ (рд╕рдмрдиреЗрдЯ) рдмрджрд▓реВрди рдлрдХреНрдд etcd рдордзреНрдпреЗ рдбреЗрдЯрд╛ рдХрд╛ рдЕрдкрдбреЗрдЯ рдХрд░реВ рдирдпреЗ?
etcd рдордзреАрд▓ рдбреЗрдЯрд╛рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рддрдпрд╛рд░ рд╕рд╛рдзрдирд╛рдВрдЪрд╛ рд╢реЛрдз рдШреЗрддрд▓реНрдпрд╛рдирдВрддрд░, рдЖрдореНрд╣рд╛рд▓рд╛ рд╕рдорд╕реНрдпреЗрдЪреЗ рдкреВрд░реНрдгрдкрдгреЗ рдирд┐рд░рд╛рдХрд░рдг рдХрд░рдгрд╛рд░реЗ рдХрд╛рд╣реАрд╣реА рд╕рд╛рдкрдбрд▓реЗ рдирд╛рд╣реА. (рддрд╕реЗ, рдЬрд░ рддреБрдореНрд╣рд╛рд▓рд╛ рдереЗрдЯ etcd рдордзреНрдпреЗ рдбреЗрдЯрд╛рд╕рд╣ рдХрд╛рдо рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреЛрдгрддреНрдпрд╛рд╣реА рдЙрдкрдпреБрдХреНрддрддреЗрдмрджреНрджрд▓ рдорд╛рд╣рд┐рддреА рдЕрд╕реЗрд▓, рддрд░ рдЖрдореНрд╣реА рд▓рд┐рдВрдХреНрд╕рдЪреА рдкреНрд░рд╢рдВрд╕рд╛ рдХрд░реВ.) рддрдерд╛рдкрд┐, рдПрдХ рдЪрд╛рдВрдЧрд▓рд╛ рдкреНрд░рд╛рд░рдВрдн рдмрд┐рдВрджреВ рдЖрд╣реЗ
рд╣реА рдпреБрдЯрд┐рд▓рд┐рдЯреА рдкреНрд░рдорд╛рдгрдкрддреНрд░реЗ рд╡рд╛рдкрд░реВрди etcd рд╢реА рдХрдиреЗрдХреНрдЯ рдХрд░реВ рд╢рдХрддреЗ рдЖрдгрд┐ рдХрдорд╛рдВрдб рд╡рд╛рдкрд░реВрди рддреЗрдереВрди рдбреЗрдЯрд╛ рд╡рд╛рдЪреВ рд╢рдХрддреЗ ls
, get
, dump
.
etcdhelper рдЬреЛрдбрд╛
рдкреБрдвреАрд▓ рд╡рд┐рдЪрд╛рд░ рддрд╛рд░реНрдХрд┐рдХ рдЖрд╣реЗ: "рдЗрдбреАрдбреАрдордзреНрдпреЗ рдбреЗрдЯрд╛ рд▓рд┐рд╣рд┐рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛ рдЬреЛрдбреВрди рд╣реА рдЙрдкрдпреБрдХреНрддрддрд╛ рдЬреЛрдбрдгреНрдпрд╛рдкрд╛рд╕реВрди рддреБрдореНрд╣рд╛рд▓рд╛ рдХрд╛рдп рдерд╛рдВрдмрд╡рдд рдЖрд╣реЗ?"
рд╣реЗ рджреЛрди рдирд╡реАрди рдлрдВрдХреНрд╢рдиреНрд╕рд╕рд╣ etcdhelper рдЪреА рд╕реБрдзрд╛рд░рд┐рдд рдЖрд╡реГрддреНрддреА рдмрдирд▓реА changeServiceCIDR
╨╕ changePodCIDR
. рддрд┐рдЪреНрдпрд╛ рд╡рд░ рддреБрдореНрд╣реА рдХреЛрдб рдкрд╛рд╣реВ рд╢рдХрддрд╛
рдирд╡реАрди рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рдХрд╛рдп рдХрд░рддрд╛рдд? рдЕрд▓реНрдЧреЛрд░рд┐рджрдо changeServiceCIDR
:
- рдПрдХ deserializer рддрдпрд╛рд░ рдХрд░рд╛;
- CIDR рдкреБрдирд░реНрд╕реНрдерд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддреА рд╕рдВрдХрд▓рд┐рдд рдХрд░рд╛;
- рдЖрдореНрд╣реА рдХреНрд▓рд╕реНрдЯрд░рдордзреАрд▓ ClusterIP рдкреНрд░рдХрд╛рд░рд╛рд╕рд╣ рд╕рд░реНрд╡ рд╕реЗрд╡рд╛рдВрдордзреВрди рдЬрд╛рддреЛ:
- рдЧреЛ рдСрдмреНрдЬреЗрдХреНрдЯрдордзреНрдпреЗ etcd рд╡рд░реВрди рдореВрд▓реНрдп рдбреАрдХреЛрдб рдХрд░рд╛;
- рд░реЗрдЧреНрдпреБрд▓рд░ рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рд╡рд╛рдкрд░реВрди рдЖрдореНрд╣реА рдкрддреНрддреНрдпрд╛рдЪреЗ рдкрд╣рд┐рд▓реЗ рджреЛрди рдмрд╛рдЗрдЯреНрд╕ рдмрджрд▓рддреЛ;
- рдирд╡реАрди рд╕рдмрдиреЗрдЯрд╡рд░реВрди рд╕реЗрд╡реЗрд▓рд╛ IP рдкрддреНрддрд╛ рдирд┐рдпреБрдХреНрдд рдХрд░рд╛;
- рд╕реАрд░рд┐рдпрд▓рд╛рдпрдЭрд░ рддрдпрд╛рд░ рдХрд░рд╛, рдЧреЛ рдСрдмреНрдЬреЗрдХреНрдЯрд▓рд╛ рдкреНрд░реЛрдЯреЛрдмрдлрдордзреНрдпреЗ рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХрд░рд╛, etcd рд╡рд░ рдирд╡реАрди рдбреЗрдЯрд╛ рд▓рд┐рд╣рд╛.
рдХрд╛рд░реНрдп changePodCIDR
рдореВрд▓рдд: рд╕рдорд╛рди changeServiceCIDR
- рдХреЗрд╡рд│ рд╕реЗрд╡рд╛ рддрдкрд╢реАрд▓ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдгреНрдпрд╛рдРрд╡рдЬреА, рдЖрдореНрд╣реА рддреЗ рдиреЛрдб рдЖрдгрд┐ рдмрджрд▓рд╛рд╕рд╛рдареА рдХрд░рддреЛ .spec.PodCIDR
рдирд╡реАрди рд╕рдмрдиреЗрдЯрд╡рд░.
рд╕рд░рд╛рд╡
рд╕реЗрд╡рд╛ CIDR рдмрджрд▓рд╛
рдХрд╛рд░реНрдп рдЕрдВрдорд▓рд╛рдд рдЖрдгрдгреНрдпрд╛рдЪреА рдпреЛрдЬрдирд╛ рдЕрдЧрджреА рд╕реЛрдкреА рдЖрд╣реЗ, рдкрд░рдВрддреБ рдХреНрд▓рд╕реНрдЯрд░рдордзреАрд▓ рд╕рд░реНрд╡ рд╢реЗрдВрдЧрд╛ рдкреБрдиреНрд╣рд╛ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рд╡реЗрд│реА рдбрд╛рдЙрдирдЯрд╛рдЗрдордЪрд╛ рд╕рдорд╛рд╡реЗрд╢ рдЖрд╣реЗ. рдореБрдЦреНрдп рдкрд╛рдпрд▒реНрдпрд╛рдВрдЪреЗ рд╡рд░реНрдгрди рдХреЗрд▓реНрдпрд╛рдирдВрддрд░, рдЖрдореНрд╣реА рд╕рд┐рджреНрдзрд╛рдВрддрд╛рдиреБрд╕рд╛рд░, рд╣рд╛ рдбрд╛рдЙрдирдЯрд╛рдЗрдо рдХрд╕рд╛ рдХрдореА рдХрд░рддрд╛ рдпреЗрдИрд▓ рдпрд╛рд╡рд░ рд╡рд┐рдЪрд╛рд░ рджреЗрдЦреАрд▓ рд╕рд╛рдорд╛рдпрд┐рдХ рдХрд░реВ.
рддрдпрд╛рд░реАрдЪреЗ рдЯрдкреНрдкреЗ:
- рдЖрд╡рд╢реНрдпрдХ рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреЗ рдЖрдгрд┐ рдкреЕрдЪ рдХреЗрд▓реЗрд▓реЗ etcdhelper рдПрдХрддреНрд░ рдХрд░рдгреЗ;
- рдмреЕрдХрдЕрдк etcd рдЖрдгрд┐
/etc/kubernetes
.
рд╕рд░реНрд╡реНрд╣рд┐рд╕рд╕реАрдЖрдпрдбреАрдЖрд░ рдмрджрд▓рдгреНрдпрд╛рд╕рд╛рдареА рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдХреГрддреА рдпреЛрдЬрдирд╛:
- apiserver рдмрджрд▓рдгреЗ рдЖрдгрд┐ рдирд┐рдпрдВрддреНрд░рдХ-рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдкреНрд░рдХрдЯ рд╣реЛрддреЗ;
- рдкреНрд░рдорд╛рдгрдкрддреНрд░реЗ рдкреБрдиреНрд╣рд╛ рдЬрд╛рд░реА рдХрд░рдгреЗ;
- рдЗрддреНрдпрд╛рджреА рдордзреНрдпреЗ рдХреНрд▓рд╕реНрдЯрд░рдЖрдпрдкреА рд╕реЗрд╡рд╛ рдмрджрд▓рдгреЗ;
- рдХреНрд▓рд╕реНрдЯрд░рдордзреАрд▓ рд╕рд░реНрд╡ рд╢реЗрдВрдЧрд╛ рдкреБрдиреНрд╣рд╛ рд╕реБрд░реВ рдХрд░рд╛.
рдЦрд╛рд▓реАрд▓ рдХреНрд░рд┐рдпрд╛рдВрдЪрд╛ рддрдкрд╢реАрд▓рд╡рд╛рд░ рд╕рдВрдкреВрд░реНрдг рдХреНрд░рдо рдЖрд╣реЗ.
1. рдбреЗрдЯрд╛ рдбрдВрдкрд╕рд╛рдареА etcd-рдХреНрд▓рд╛рдпрдВрдЯ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рд╛:
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 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
- рдЪрд▓рд╛ etcd рдордзреНрдпреЗ рдбреЗрдЯрд╛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реВрдпрд╛:
./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 рд╕реЗрд╡реЗрдЪреНрдпрд╛ рдирд╡реАрди IP рдкрддреНрддреНрдпрд╛рд╡рд░: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 рд╕реЗрд╡реЗрдд рдмрджрд▓ рдХрд░рдгрд╛рд░ рдирд╛рд╣реА. - рд╕рд░реНрд╡ рдХреБрдмреЗрд▓реЗрдЯреНрд╕рдордзреНрдпреЗ рдкрддреНрддрд╛ рдмрджрд▓рд╛
ClusterDNS
рдирд╡реАрдирд╕рд╛рдареА, рддрд░ рдЬреБрдиреА рд╕реЗрд╡рд╛ рдирд╡реАрдирд╕рд╣ рдПрдХрд╛рдЪ рд╡реЗрд│реА рдХрд╛рд░реНрдп рдХрд░рдгреЗ рд╕реБрд░реВ рдареЗрд╡реЗрд▓. - рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рд╕рд╣ рд╢реЗрдВрдЧрд╛ рдПрдХрддрд░ рдиреИрд╕рд░реНрдЧрд┐рдХ рдХрд╛рд░рдгрд╛рд╕реНрддрд╡ рд╕реНрд╡рддрдГрд╣реВрди рдХрд┐рдВрд╡рд╛ рдорд╛рдиреНрдп рд╡реЗрд│реЗрдд рд░реЛрд▓ рд╣реЛрдИрдкрд░реНрдпрдВрдд рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рд╛.
- рд╕реЗрд╡рд╛ рд╣рдЯрд╡рд╛
kube-dns-tmp
рдЖрдгрд┐ рдмрджрд▓serviceSubnetCIDR
kube-dns рд╕реЗрд╡реЗрд╕рд╛рдареА.
рд╣реА рдпреЛрдЬрдирд╛ рддреБрдореНрд╣рд╛рд▓рд╛ рд╕реЗрд╡рд╛ рдХрд╛рдвреВрди рдЯрд╛рдХрдгреНрдпрд╛рдЪреНрдпрд╛ рдХрд╛рд▓рд╛рд╡рдзреАрд╕рд╛рдареА рдбрд╛рдЙрдирдЯрд╛рдЗрдо ~рдПрдХ рдорд┐рдирд┐рдЯрд╛рдкрд░реНрдпрдВрдд рдХрдореА рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрдИрд▓ kube-dns-tmp
рдЖрдгрд┐ рд╕реЗрд╡реЗрд╕рд╛рдареА рд╕рдмрдиреЗрдЯ рдмрджрд▓рдгреЗ kube-dns
.
рдмрджрд▓ рдкреЙрдбрдиреЗрдЯрд╡рд░реНрдХ
рддреНрдпрд╛рдЪ рд╡реЗрд│реА, рдЖрдореНрд╣реА рдкрд░рд┐рдгрд╛рдореА etcdhelper рд╡рд╛рдкрд░реВрди podNetwork рдХрд╕реЗ рд╕реБрдзрд╛рд░рд╛рдпрдЪреЗ рддреЗ рдкрд╛рд╣рдгреНрдпрд╛рдЪреЗ рдард░рд╡рд┐рд▓реЗ. рдХреНрд░рд┐рдпрд╛рдВрдЪрд╛ рдХреНрд░рдо рдЦрд╛рд▓реАрд▓рдкреНрд░рдорд╛рдгреЗ рдЖрд╣реЗ:
- рдордзреНрдпреЗ рдХреЙрдиреНрдлрд┐рдЧреНрд╕ рдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдгреЗ
kube-system
; - kube-controller-manager рдореЕрдирд┐рдлреЗрд╕реНрдЯ рдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдгреЗ;
- рдкреЙрдбрд╕реАрдЖрдпрдбреАрдЖрд░ рдереЗрдЯ 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
5. рдкреЙрдбрд╕реАрдЖрдпрдбреАрдЖрд░ рдЦрд░реЛрдЦрд░ рдмрджрд▓рд▓рд╛ рдЖрд╣реЗ рд╣реЗ рддрдкрд╛рд╕реВрдпрд╛:
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. рдЖрдкрдг рдХрд┐рдорд╛рди рдПрдХ рдиреЛрдб рд╕реЛрдбрд▓реНрдпрд╛рд╕ рдЬреБрдирд╛ рдкреЙрдбрд╕реАрдЖрдпрдбреАрдЖрд░, рдирдВрддрд░ kube-controller-manager рд╕реБрд░реВ рдХрд░реВ рд╢рдХрдгрд╛рд░ рдирд╛рд╣реА, рдЖрдгрд┐ рдХреНрд▓рд╕реНрдЯрд░рдордзреАрд▓ рдкреЙрдбреНрд╕ рд╢реЗрдбреНрдпреВрд▓ рдХреЗрд▓реЗ рдЬрд╛рдгрд╛рд░ рдирд╛рд╣реАрдд.
рдЦрд░рдВ рддрд░, рдкреЙрдбрд╕реАрдЖрдпрдбреАрдЖрд░ рдмрджрд▓рдгреЗ рдЖрдгрдЦреА рд╕реЛрдкреЗ рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ (рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, spec.clusterIP
.)
рдкрд░рд┐рдгрд╛рдо
рд▓реЗрдЦ рдереЗрдЯ etcd рдордзреНрдпреЗ рдбреЗрдЯрд╛рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рд╢рдХреНрдпрддреЗрдЪреА рдЪрд░реНрдЪрд╛ рдХрд░рддреЛ, рдореНрд╣рдгрдЬреЗ. Kubernetes API рд▓рд╛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░реВрди. рдХрдзреАрдХрдзреА рд╣рд╛ рджреГрд╖реНрдЯреАрдХреЛрди рдЖрдкрд▓реНрдпрд╛рд▓рд╛ "рдХрдареАрдг рдЧреЛрд╖реНрдЯреА" рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЛ. рдЖрдореНрд╣реА рд╡рд╛рд╕реНрддрд╡рд┐рдХ K8s рдХреНрд▓рд╕реНрдЯрд░реНрд╕рд╡рд░реАрд▓ рдордЬрдХреВрд░рд╛рдд рджрд┐рд▓реЗрд▓реНрдпрд╛ рдСрдкрд░реЗрд╢рдиреНрд╕рдЪреА рдЪрд╛рдЪрдгреА рдХреЗрд▓реА. рддрдерд╛рдкрд┐, рд╡реНрдпрд╛рдкрдХ рд╡рд╛рдкрд░рд╛рд╕рд╛рдареА рддреНрдпрд╛рдВрдЪреНрдпрд╛ рддрдпрд╛рд░реАрдЪреА рд╕реНрдерд┐рддреА рдЖрд╣реЗ PoC (рд╕рдВрдХрд▓реНрдкрдиреЗрдЪрд╛ рдкреБрд░рд╛рд╡рд╛). рдореНрд╣рдгреВрди, рдЬрд░ рддреБрдореНрд╣рд╛рд▓рд╛ рддреБрдордЪреНрдпрд╛ рдХреНрд▓рд╕реНрдЯрд░реНрд╕рд╡рд░ etcdhelper рдпреБрдЯрд┐рд▓рд┐рдЯреАрдЪреА рд╕реБрдзрд╛рд░рд┐рдд рдЖрд╡реГрддреНрддреА рд╡рд╛рдкрд░рд╛рдпрдЪреА рдЕрд╕реЗрд▓, рддрд░ рддреЗ рддреБрдордЪреНрдпрд╛ рд╕реНрд╡рдд:рдЪреНрдпрд╛ рдЬреЛрдЦрдореАрд╡рд░ рдХрд░рд╛.
PS
рдЖрдордЪреНрдпрд╛ рдмреНрд▓реЙрдЧрд╡рд░ рджреЗрдЦреАрд▓ рд╡рд╛рдЪрд╛:
- ┬л
etcd 3.4.3: рд╕реНрдЯреЛрд░реЗрдЬ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдЖрдгрд┐ рд╕реБрд░рдХреНрд╖рд╛ рдЕрднреНрдпрд╛рд╕ "; - ┬л
рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рдордзреНрдпреЗ рдиреЗрдЯрд╡рд░реНрдХрд┐рдВрдЧрд╕рд╛рдареА рдХреЕрд▓рд┐рдХреЛ: рдкрд░рд┐рдЪрдп рдЖрдгрд┐ рдереЛрдбрд╛рд╕рд╛ рдЕрдиреБрднрд╡ "; - ┬л
рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рдЪреНрдпрд╛ рдСрдкрд░реЗрд╢рдирдордзреНрдпреЗ 6 рдордиреЛрд░рдВрдЬрдХ рд╕рд┐рд╕реНрдЯрдо рдмрдЧ [рдЖрдгрд┐ рддреНрдпрд╛рдВрдЪреЗ рдирд┐рд░рд╛рдХрд░рдг] "; - ┬л
рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рдЪреНрдпрд╛ рд╕рдорд╕реНрдпрд╛рдирд┐рд╡рд╛рд░рдгрд╛рд╕рд╛рдареА рд╡реНрд╣рд┐рдЬреНрдпреБрдЕрд▓ рдорд╛рд░реНрдЧрджрд░реНрд╢рдХ ┬╗.
рд╕реНрддреНрд░реЛрдд: www.habr.com