Kubeadm: рдПрдкрд┐рд╕рд░реНрд╡рд░ рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ рдХреА рд╕рдордп рд╕реАрдорд╛ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдкрд░ рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ рдХрд╛ рдирд╡реАрдиреАрдХрд░рдг рдХреИрд╕реЗ рдХрд░реЗрдВ?

рдХреЛ рдирд┐рд░реНрдорд┐рдд 30 рдирд╡ре░ 2017  ┬╖  38рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: kubernetes/kubeadm

рдХреНрдпрд╛ рдпрд╣ рдорджрдж рдХрд╛ рдЕрдиреБрд░реЛрдз рд╣реИ?

рдпрджрд┐ рд╣рд╛рдБ, рддреЛ рдЖрдкрдХреЛ рд╣рдорд╛рд░реА рд╕рдорд╕реНрдпрд╛ рдирд┐рд╡рд╛рд░рдг рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛ рдФрд░ рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рд╕рд╣рд╛рдпрддрд╛ рдЪреИрдирд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, http://kubernetes.io/docs/troubleshooting/ рджреЗрдЦреЗрдВ

рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдЗрд╕ рдЕрдиреБрднрд╛рдЧ рдХреЛ рд╣рдЯрд╛ рджреЗрдВ рдФрд░ рдЬрд╛рд░реА рд░рдЦреЗрдВред

рдЗрд╕реЗ рдлрд╛рдЗрд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЖрдкрдиреЗ kubeadm рдореБрджреНрджреЛрдВ рдореЗрдВ рдХреМрди рд╕реЗ рдХреАрд╡рд░реНрдб рдЦреЛрдЬреЗ?

рдпрджрд┐ рдЖрдкрдХреЛ рдХреЛрдИ рдбреБрдкреНрд▓реАрдХреЗрдЯ рдорд┐рд▓рд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рд╡рд╣рд╛рдВ рдЙрддреНрддрд░ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЗрд╕ рдкреГрд╖реНрда рдХреЛ рдмрдВрдж рдХрд░ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдпрджрд┐ рдЖрдкрдХреЛ рдХреЛрдИ рдбреБрдкреНрд▓реАрдХреЗрдЯ рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИ, рддреЛ рдЗрд╕ рдЕрдиреБрднрд╛рдЧ рдХреЛ рд╣рдЯрд╛ рджреЗрдВ рдФрд░ рдЬрд╛рд░реА рд░рдЦреЗрдВред

рдХреНрдпрд╛ рдпрд╣ рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ рдпрд╛ рд╕реБрд╡рд┐рдзрд╛ рдЕрдиреБрд░реЛрдз рд╣реИ?

рдПрдХ рдЪреБрдиреЗрдВ: рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ рдпрд╛ рд╕реБрд╡рд┐рдзрд╛ рдЕрдиреБрд░реЛрдз

рд╕рдВрд╕реНрдХрд░рдгреЛрдВ

рдХреБрдмреЗрджрдо рд╕рдВрд╕реНрдХрд░рдг ( kubeadm version ): 1.7.5

рдкрд░реНрдпрд╛рд╡рд░рдг :

  • рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╕рдВрд╕реНрдХрд░рдг ( kubectl version ): 1.7.5
  • рдХреНрд▓рд╛рдЙрдб рдкреНрд░рджрд╛рддрд╛ рдпрд╛ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди :
  • OS (рдЬреИрд╕реЗ /etc/os-release рд╕реЗ):
  • рдХрд░реНрдиреЗрд▓ (рдЬреИрд╕реЗ uname -a ):
  • рдЕрдиреНрдп :

рдХреНрдпрд╛ рд╣реБрдЖ?

рдЖрдкрдХреЛ рдХреНрдпрд╛ рд╣реЛрдиреЗ рдХреА рдЙрдореНрдореАрдж рдереА?

рдЗрд╕реЗ рдХреИрд╕реЗ рдкреБрди: рдкреЗрд╢ рдХрд░реЗрдВ (рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЙрддрдирд╛ рдиреНрдпреВрдирддрдо рдФрд░ рд╕рдЯреАрдХ)?

рд╣рдореЗрдВ рдФрд░ рдХреБрдЫ рдЬрд╛рдирдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ?

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдпрджрд┐ рдЖрдк 1.8 рд╕реЗ рдкрд╣рд▓реЗ рдХреБрдмреЗрджрдо рдХреЗ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬрд╣рд╛рдВ рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ рд░реЛрдЯреЗрд╢рди # 206 рдХреЛ рдЬрдЧрд╣ рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рдерд╛ ( рдмреАрдЯрд╛ рдлреАрдЪрд░ рдХреЗ рд░реВрдк

рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдорд╛рд╕реНрдЯрд░ рдиреЛрдб рдореЗрдВ SSH рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдпрджрд┐ рдЖрдк рдХреБрдмреЗрджрдо>= 1.8 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддреЛ 2 рдкрд░ рдЬрд╛рдПрдВред

  1. рдЬрд░реВрд░рдд рдкрдбрд╝рдиреЗ рдкрд░ рдХреБрдмреЗрджрдо рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВред рдореИрдВ рдкрд╣рд▓реЗ 1.7 рдкрд░ рдерд╛ред
$ sudo curl -sSL https://dl.k8s.io/release/v1.8.15/bin/linux/amd64/kubeadm > ./kubeadm.1.8.15
$ chmod a+rx kubeadm.1.8.15
$ sudo mv /usr/bin/kubeadm /usr/bin/kubeadm.1.7
$ sudo mv kubeadm.1.8.15 /usr/bin/kubeadm
  1. рдмреИрдХрдЕрдк рдкреБрд░рд╛рдиреЗ рдПрдкрд┐рд╕рд░реНрд╡рд░, рдПрдкрд┐рд╕рд░реНрд╡рд░-рдХреНрдпреВрдмрд▓реЗрдЯ-рдХреНрд▓рд╛рдЗрдВрдЯ, рдФрд░ рдлреНрд░рдВрдЯ-рдкреНрд░реЙрдХреНрд╕реА-рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗрд░реНрдЯреНрд╕ рдФрд░ рдХреАрдЬрд╝ред
$ sudo mv /etc/kubernetes/pki/apiserver.key /etc/kubernetes/pki/apiserver.key.old
$ sudo mv /etc/kubernetes/pki/apiserver.crt /etc/kubernetes/pki/apiserver.crt.old
$ sudo mv /etc/kubernetes/pki/apiserver-kubelet-client.crt /etc/kubernetes/pki/apiserver-kubelet-client.crt.old
$ sudo mv /etc/kubernetes/pki/apiserver-kubelet-client.key /etc/kubernetes/pki/apiserver-kubelet-client.key.old
$ sudo mv /etc/kubernetes/pki/front-proxy-client.crt /etc/kubernetes/pki/front-proxy-client.crt.old
$ sudo mv /etc/kubernetes/pki/front-proxy-client.key /etc/kubernetes/pki/front-proxy-client.key.old
  1. рдирдпрд╛ рдПрдкрд┐рд╕рд░реНрд╡рд░, рдПрдкрд┐рд╕рд░реНрд╡рд░-рдХреНрдпреВрдмрд▓реЗрдЯ-рдХреНрд▓рд╛рдЗрдВрдЯ, рдФрд░ рдлреНрд░рдВрдЯ-рдкреНрд░реЙрдХреНрд╕реА-рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗрд░реНрдЯреНрд╕ рдФрд░ рдХреБрдВрдЬрд┐рдпрд╛рдБ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВред
$ sudo kubeadm alpha phase certs apiserver --apiserver-advertise-address <IP address of your master server>
$ sudo kubeadm alpha phase certs apiserver-kubelet-client
$ sudo kubeadm alpha phase certs front-proxy-client
  1. рдмреИрдХрдЕрдк рдкреБрд░рд╛рдиреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЗрдВ
$ sudo mv /etc/kubernetes/admin.conf /etc/kubernetes/admin.conf.old
$ sudo mv /etc/kubernetes/kubelet.conf /etc/kubernetes/kubelet.conf.old
$ sudo mv /etc/kubernetes/controller-manager.conf /etc/kubernetes/controller-manager.conf.old
$ sudo mv /etc/kubernetes/scheduler.conf /etc/kubernetes/scheduler.conf.old
  1. рдирдИ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЗрдВ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВред

рдпрд╣рд╛рдБ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдиреЛрдЯ рд╣реИред рдпрджрд┐ рдЖрдк AWS рдкрд░ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕ рдЕрдиреБрд░реЛрдз рдореЗрдВ --node-name рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрд╛рд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЕрдиреНрдпрдерд╛ рдЖрдкрдХреЛ рдПрдХ рддреНрд░реБрдЯрд┐ рдорд┐рд▓реЗрдЧреА рдЬреИрд╕реЗ: Unable to register node "ip-10-0-8-141.ec2.internal" with API server: nodes "ip-10-0-8-141.ec2.internal" is forbidden: node ip-10-0-8-141 cannot modify node ip-10-0-8-141.ec2.internal рдЖрдкрдХреЗ рд▓реЙрдЧ рдореЗрдВ sudo journalctl -u kubelet --all | tail рдФрд░ рдорд╛рд╕реНрдЯрд░ рдиреЛрдб рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реЗрдЧрд╛ рдХрд┐ рдпрд╣ Not Ready рдЬрдм рдЖрдк kubectl get nodes рдЪрд▓рд╛рддреЗ рд╣реИрдВред

рдХреГрдкрдпрд╛ --apiserver-advertise-address рдФрд░ --node-name рдореЗрдВ рдкрд╛рд░рд┐рдд рдорд╛рдиреЛрдВ рдХреЛ рдЕрдкрдиреЗ рдкрд░рд┐рд╡реЗрд╢ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдорд╛рдиреЛрдВ рд╕реЗ рдмрджрд▓рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВред

$ sudo kubeadm alpha phase kubeconfig all --apiserver-advertise-address 10.0.8.141 --node-name ip-10-0-8-141.ec2.internal
[kubeconfig] Wrote KubeConfig file to disk: "admin.conf"
[kubeconfig] Wrote KubeConfig file to disk: "kubelet.conf"
[kubeconfig] Wrote KubeConfig file to disk: "controller-manager.conf"
[kubeconfig] Wrote KubeConfig file to disk: "scheduler.conf"

  1. рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХрд╛ kubectl рдЖрдкрдХреА рдХреЙрдиреНрдлрд┐рдЧ рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдЬрдЧрд╣ рдкрд░ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИред
$ mv .kube/config .kube/config.old
$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
$ sudo chown $(id -u):$(id -g) $HOME/.kube/config
$ sudo chmod 777 $HOME/.kube/config
$ export KUBECONFIG=.kube/config
  1. рдЕрдкрдиреЗ рдорд╛рд╕реНрдЯрд░ рдиреЛрдб рдХреЛ рд░рд┐рдмреВрдЯ рдХрд░реЗрдВ
$ sudo /sbin/shutdown -r now
  1. рдЕрдкрдиреЗ рдорд╛рд╕реНрдЯрд░ рдиреЛрдб рд╕реЗ рдлрд┐рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ рдФрд░ рдЕрдкрдирд╛ рдЯреЛрдХрди рд▓реЗрдВ, рдФрд░ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХрд╛ рдорд╛рд╕реНрдЯрд░ рдиреЛрдб "рддреИрдпрд╛рд░" рд╣реИред рдЯреЛрдХрди рдХреЛ рдЕрдкрдиреЗ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВред рдЕрдЧрд▓реЗ рдЪрд░рдг рдореЗрдВ рдЖрдкрдХреЛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
$ kubectl get nodes
$ kubeadm token list

рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╡реИрдз рдЯреЛрдХрди рдирд╣реАрдВ рд╣реИред рдЖрдк рдЗрд╕рдХреЗ рд╕рд╛рде рдПрдХ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ:

$ kubeadm token create

рдЯреЛрдХрди рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП 6dihyb.d09sbgae8ph2atjw

  1. рдкреНрд░рддреНрдпреЗрдХ рджрд╛рд╕ рдиреЛрдб рдореЗрдВ SSH рдФрд░ рдЙрдиреНрд╣реЗрдВ рдорд╛рд╕реНрдЯрд░ рд╕реЗ рдлрд┐рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ
$ sudo curl -sSL https://dl.k8s.io/release/v1.8.15/bin/linux/amd64/kubeadm > ./kubeadm.1.8.15
$ chmod a+rx kubeadm.1.8.15
$ sudo mv /usr/bin/kubeadm /usr/bin/kubeadm.1.7
$ sudo mv kubeadm.1.8.15 /usr/bin/kubeadm
$ sudo kubeadm join --token=<token from step 8>  <ip of master node>:<port used 6443 is the default> --node-name <should be the same one as from step 5>

  1. рдкреНрд░рддреНрдпреЗрдХ рдХрдиреЗрдХреНрдЯрд┐рдВрдЧ рдиреЛрдб рдХреЗ рд▓рд┐рдП рдЪрд░рдг 9 рджреЛрд╣рд░рд╛рдПрдВред рдорд╛рд╕реНрдЯрд░ рдиреЛрдб рд╕реЗ, рдЖрдк рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕рднреА рджрд╛рд╕ рдиреЛрдбреНрд╕ рдХрдиреЗрдХреНрдЯ рд╣реЛ рдЧрдП рд╣реИрдВ рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рддреИрдпрд╛рд░ рд╣реИрдВ:
$ kubectl get nodes

рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдЖрдкрдХреЛ рд╡рд╣реАрдВ рдорд┐рд▓реЗрдЧрд╛ рдЬрд╣рд╛рдВ рдЖрдкрдХреЛ @davidcomeyne рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╕рднреА 38 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

https://github.com/kubernetes/kubeadm/issues/206 рдХрд╛ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ

@zalmanzhao рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд┐рдпрд╛?

рдореИрдВрдиреЗ рдПрдХ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдПрдХ kubeadm v1.9.3 рдХреНрд▓рд╕реНрдЯрд░ рдмрдирд╛рдпрд╛ рдерд╛ рдФрд░ рдпрд╣ рдЗрд╕ рд╕рдордп рдареАрдХ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рдерд╛ред рдореИрдВ рдЖрдЬ рдПрдХ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЧрдпрд╛ рдФрд░ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рдореБрдЭреЗ рдПрдкреАрдЖрдИ рд╕реЗ рдмрд╛рд╣рд░ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛ рдерд╛ред рдореИрдВ kubeadm alpha phase certs apiserver рднреА рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ failure loading apiserver certificate: the certificate has expired (рдХреБрдмреЗрджрдо рд╕рдВрд╕реНрдХрд░рдг рд╡рд░реНрддрдорд╛рди рдореЗрдВ 1.10.6 рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ)ред

insecure-skip-tls-verify: true рдХреЛ ~/.kube/config тЖТ clusters[0].cluser рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рднреА рдорджрдж рдирд╣реАрдВ рдорд┐рд▓рддреА рд╣реИ - рдореБрдЭреЗ You must be logged in to the server (Unauthorized) рдЬрдм kubectl get pods (https://github. com/kubernetes/kubernetes/issues/39767)ред

рдХреНрд▓рд╕реНрдЯрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдкрдирд╛ рдЬреАрд╡рди рддрдм рддрдХ рдЬреАрддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдпрд╣ рд╕реНрд╡рдпрдВ рдирд╖реНрдЯ рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддрд╛ рдпрд╛ рдЬрдм рддрдХ рдЪреАрдЬреЗрдВ рдареАрдХ рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддреА ЁЯШЕ рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдореБрдЭреЗ # 206 рдореЗрдВ рдЕрдкрдиреА рд╕реНрдерд┐рддрд┐ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдорд┐рд▓рд╛ рдФрд░ рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕рд╕реЗ рдХреИрд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рд╛ рдЬрд╛рдПред рдПрдХрдорд╛рддреНрд░ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╕рд╛рдордЧреНрд░реА рдЬрд┐рд╕реЗ рдореИрдВ рдЦреЛрдж рд╕рдХрддрд╛ рдерд╛, рд╡рд╣ рдПрдХ /etc/kubernetes/ssl/ рдлрд╝реЛрд▓реНрдбрд░ рдирд╣реАрдВ рдерд╛ (рдХреЗрд╡рд▓ /etc/kubernetes/pki/ ) - рдпрд╛ рддреЛ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдЕрд▓рдЧ k8s рд╕рдВрд╕реНрдХрд░рдг рд╣реИ рдпрд╛ рдореИрдВрдиреЗ рдмрд┐рдирд╛ рдзреНрдпрд╛рди рджрд┐рдП рдЙрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рд╣реИред

@errordeveloper рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдХреБрдЫ рд╕реБрдЭрд╛ рд╕рдХрддреЗ рд╣реИрдВ? рдореБрдЭреЗ kubeadm reset рдФрд░ рдкреЗрд▓реЛрдб рдордиреЛрд░рдВрдЬрди рдХреЗ рдмрд┐рдирд╛ рдЪреАрдЬреЛрдВ рдХреЛ рдареАрдХ рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛ред

@kachkaev рдХреНрдпрд╛ рдЖрдкрдХреЛ
рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рд╕рд╛рдЭрд╛ рдХрд░реЗрдВ, рдореБрдЭреЗ рдпрд╣рд╛рдБ k8s 1.7.4 рдХреЗ рд╕рд╛рде рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИред рдФрд░ рдореИрдВ рдЕрдкрдЧреНрд░реЗрдб рдирд╣реАрдВ рдХрд░ рдкрд╛ рд░рд╣рд╛ рд╣реВрдВ ($ kubeadm рдЕрдкрдЧреНрд░реЗрдб рдкреНрд▓рд╛рди) рдХреНрдпреЛрдВрдХрд┐ рддреНрд░реБрдЯрд┐ рдлрд┐рд░ рд╕реЗ рдкреЙрдк рдЕрдк рдХрд░рдХреЗ рдореБрдЭреЗ рдмрддрд╛ рд░рд╣реА рд╣реИ рдХрд┐ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХреА рд╕рдордп рд╕реАрдорд╛ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдИ рд╣реИ рдФрд░ рдпрд╣ рдореЗрд░реЗ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдорд╛рд╕реНрдЯрд░реНрд╕ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ:

[ERROR APIServerHealth]: the API Server is unhealthy; /healthz didn't return "ok"
[ERROR MasterNodesReady]: couldn't list masters in cluster: Get https://172.31.18.88:6443/api/v1/nodes?labelSelector=node-role.kubernetes.io%2Fmaster%3D: x509: certificate has expired or is not yet valid

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

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж
рдЕрдЧрд░ рдореБрдЭреЗ рдХреБрдЫ рдорд┐рд▓рддрд╛ рд╣реИ рддреЛ рдореИрдВ рдЗрд╕реЗ рдпрд╣рд╛рдВ рдкреЛрд╕реНрдЯ рдХрд░рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реВрдВрдЧрд╛ ...

рдпрджрд┐ рдЖрдк 1.8 рд╕реЗ рдкрд╣рд▓реЗ рдХреБрдмреЗрджрдо рдХреЗ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬрд╣рд╛рдВ рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ рд░реЛрдЯреЗрд╢рди # 206 рдХреЛ рдЬрдЧрд╣ рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рдерд╛ ( рдмреАрдЯрд╛ рдлреАрдЪрд░ рдХреЗ рд░реВрдк

рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдорд╛рд╕реНрдЯрд░ рдиреЛрдб рдореЗрдВ SSH рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдпрджрд┐ рдЖрдк рдХреБрдмреЗрджрдо>= 1.8 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддреЛ 2 рдкрд░ рдЬрд╛рдПрдВред

  1. рдЬрд░реВрд░рдд рдкрдбрд╝рдиреЗ рдкрд░ рдХреБрдмреЗрджрдо рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВред рдореИрдВ рдкрд╣рд▓реЗ 1.7 рдкрд░ рдерд╛ред
$ sudo curl -sSL https://dl.k8s.io/release/v1.8.15/bin/linux/amd64/kubeadm > ./kubeadm.1.8.15
$ chmod a+rx kubeadm.1.8.15
$ sudo mv /usr/bin/kubeadm /usr/bin/kubeadm.1.7
$ sudo mv kubeadm.1.8.15 /usr/bin/kubeadm
  1. рдмреИрдХрдЕрдк рдкреБрд░рд╛рдиреЗ рдПрдкрд┐рд╕рд░реНрд╡рд░, рдПрдкрд┐рд╕рд░реНрд╡рд░-рдХреНрдпреВрдмрд▓реЗрдЯ-рдХреНрд▓рд╛рдЗрдВрдЯ, рдФрд░ рдлреНрд░рдВрдЯ-рдкреНрд░реЙрдХреНрд╕реА-рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗрд░реНрдЯреНрд╕ рдФрд░ рдХреАрдЬрд╝ред
$ sudo mv /etc/kubernetes/pki/apiserver.key /etc/kubernetes/pki/apiserver.key.old
$ sudo mv /etc/kubernetes/pki/apiserver.crt /etc/kubernetes/pki/apiserver.crt.old
$ sudo mv /etc/kubernetes/pki/apiserver-kubelet-client.crt /etc/kubernetes/pki/apiserver-kubelet-client.crt.old
$ sudo mv /etc/kubernetes/pki/apiserver-kubelet-client.key /etc/kubernetes/pki/apiserver-kubelet-client.key.old
$ sudo mv /etc/kubernetes/pki/front-proxy-client.crt /etc/kubernetes/pki/front-proxy-client.crt.old
$ sudo mv /etc/kubernetes/pki/front-proxy-client.key /etc/kubernetes/pki/front-proxy-client.key.old
  1. рдирдпрд╛ рдПрдкрд┐рд╕рд░реНрд╡рд░, рдПрдкрд┐рд╕рд░реНрд╡рд░-рдХреНрдпреВрдмрд▓реЗрдЯ-рдХреНрд▓рд╛рдЗрдВрдЯ, рдФрд░ рдлреНрд░рдВрдЯ-рдкреНрд░реЙрдХреНрд╕реА-рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗрд░реНрдЯреНрд╕ рдФрд░ рдХреБрдВрдЬрд┐рдпрд╛рдБ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВред
$ sudo kubeadm alpha phase certs apiserver --apiserver-advertise-address <IP address of your master server>
$ sudo kubeadm alpha phase certs apiserver-kubelet-client
$ sudo kubeadm alpha phase certs front-proxy-client
  1. рдмреИрдХрдЕрдк рдкреБрд░рд╛рдиреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЗрдВ
$ sudo mv /etc/kubernetes/admin.conf /etc/kubernetes/admin.conf.old
$ sudo mv /etc/kubernetes/kubelet.conf /etc/kubernetes/kubelet.conf.old
$ sudo mv /etc/kubernetes/controller-manager.conf /etc/kubernetes/controller-manager.conf.old
$ sudo mv /etc/kubernetes/scheduler.conf /etc/kubernetes/scheduler.conf.old
  1. рдирдИ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЗрдВ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВред

рдпрд╣рд╛рдБ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдиреЛрдЯ рд╣реИред рдпрджрд┐ рдЖрдк AWS рдкрд░ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕ рдЕрдиреБрд░реЛрдз рдореЗрдВ --node-name рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрд╛рд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЕрдиреНрдпрдерд╛ рдЖрдкрдХреЛ рдПрдХ рддреНрд░реБрдЯрд┐ рдорд┐рд▓реЗрдЧреА рдЬреИрд╕реЗ: Unable to register node "ip-10-0-8-141.ec2.internal" with API server: nodes "ip-10-0-8-141.ec2.internal" is forbidden: node ip-10-0-8-141 cannot modify node ip-10-0-8-141.ec2.internal рдЖрдкрдХреЗ рд▓реЙрдЧ рдореЗрдВ sudo journalctl -u kubelet --all | tail рдФрд░ рдорд╛рд╕реНрдЯрд░ рдиреЛрдб рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реЗрдЧрд╛ рдХрд┐ рдпрд╣ Not Ready рдЬрдм рдЖрдк kubectl get nodes рдЪрд▓рд╛рддреЗ рд╣реИрдВред

рдХреГрдкрдпрд╛ --apiserver-advertise-address рдФрд░ --node-name рдореЗрдВ рдкрд╛рд░рд┐рдд рдорд╛рдиреЛрдВ рдХреЛ рдЕрдкрдиреЗ рдкрд░рд┐рд╡реЗрд╢ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдорд╛рдиреЛрдВ рд╕реЗ рдмрджрд▓рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВред

$ sudo kubeadm alpha phase kubeconfig all --apiserver-advertise-address 10.0.8.141 --node-name ip-10-0-8-141.ec2.internal
[kubeconfig] Wrote KubeConfig file to disk: "admin.conf"
[kubeconfig] Wrote KubeConfig file to disk: "kubelet.conf"
[kubeconfig] Wrote KubeConfig file to disk: "controller-manager.conf"
[kubeconfig] Wrote KubeConfig file to disk: "scheduler.conf"

  1. рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХрд╛ kubectl рдЖрдкрдХреА рдХреЙрдиреНрдлрд┐рдЧ рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдЬрдЧрд╣ рдкрд░ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИред
$ mv .kube/config .kube/config.old
$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
$ sudo chown $(id -u):$(id -g) $HOME/.kube/config
$ sudo chmod 777 $HOME/.kube/config
$ export KUBECONFIG=.kube/config
  1. рдЕрдкрдиреЗ рдорд╛рд╕реНрдЯрд░ рдиреЛрдб рдХреЛ рд░рд┐рдмреВрдЯ рдХрд░реЗрдВ
$ sudo /sbin/shutdown -r now
  1. рдЕрдкрдиреЗ рдорд╛рд╕реНрдЯрд░ рдиреЛрдб рд╕реЗ рдлрд┐рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ рдФрд░ рдЕрдкрдирд╛ рдЯреЛрдХрди рд▓реЗрдВ, рдФрд░ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХрд╛ рдорд╛рд╕реНрдЯрд░ рдиреЛрдб "рддреИрдпрд╛рд░" рд╣реИред рдЯреЛрдХрди рдХреЛ рдЕрдкрдиреЗ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВред рдЕрдЧрд▓реЗ рдЪрд░рдг рдореЗрдВ рдЖрдкрдХреЛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
$ kubectl get nodes
$ kubeadm token list

рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╡реИрдз рдЯреЛрдХрди рдирд╣реАрдВ рд╣реИред рдЖрдк рдЗрд╕рдХреЗ рд╕рд╛рде рдПрдХ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ:

$ kubeadm token create

рдЯреЛрдХрди рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП 6dihyb.d09sbgae8ph2atjw

  1. рдкреНрд░рддреНрдпреЗрдХ рджрд╛рд╕ рдиреЛрдб рдореЗрдВ SSH рдФрд░ рдЙрдиреНрд╣реЗрдВ рдорд╛рд╕реНрдЯрд░ рд╕реЗ рдлрд┐рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ
$ sudo curl -sSL https://dl.k8s.io/release/v1.8.15/bin/linux/amd64/kubeadm > ./kubeadm.1.8.15
$ chmod a+rx kubeadm.1.8.15
$ sudo mv /usr/bin/kubeadm /usr/bin/kubeadm.1.7
$ sudo mv kubeadm.1.8.15 /usr/bin/kubeadm
$ sudo kubeadm join --token=<token from step 8>  <ip of master node>:<port used 6443 is the default> --node-name <should be the same one as from step 5>

  1. рдкреНрд░рддреНрдпреЗрдХ рдХрдиреЗрдХреНрдЯрд┐рдВрдЧ рдиреЛрдб рдХреЗ рд▓рд┐рдП рдЪрд░рдг 9 рджреЛрд╣рд░рд╛рдПрдВред рдорд╛рд╕реНрдЯрд░ рдиреЛрдб рд╕реЗ, рдЖрдк рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕рднреА рджрд╛рд╕ рдиреЛрдбреНрд╕ рдХрдиреЗрдХреНрдЯ рд╣реЛ рдЧрдП рд╣реИрдВ рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рддреИрдпрд╛рд░ рд╣реИрдВ:
$ kubectl get nodes

рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдЖрдкрдХреЛ рд╡рд╣реАрдВ рдорд┐рд▓реЗрдЧрд╛ рдЬрд╣рд╛рдВ рдЖрдкрдХреЛ @davidcomeyne рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдзрдиреНрдпрд╡рд╛рдж рдПрдХ рдЧреБрдЪреНрдЫрд╛ @danroliver !
рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдпрд╣ рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ рдФрд░ рдЕрдкрдиреЗ рдирд┐рд╖реНрдХрд░реНрд╖ рдпрд╣рд╛рдВ рдкреЛрд╕реНрдЯ рдХрд░реВрдВрдЧрд╛ред

@danroliver рдзрдиреНрдпрд╡рд╛рдж! рдмрд╕ рдЗрд╕реЗ рдкреБрд░рд╛рдиреЗ рд╕рд┐рдВрдЧрд▓-рдиреЛрдб рдХреНрд▓рд╕реНрдЯрд░ рдкрд░ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдЗрд╕рд▓рд┐рдП 7 рддрдХ рдХрджрдо рдЙрдард╛рдПред рдЗрд╕рдиреЗ рдХрд╛рдо рдХрд┐рдпрд╛ред

@danroliver рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ред рдзрдиреНрдпрд╡рд╛рджред

рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛, рдПрдХ рдирдпрд╛ рдХреНрд▓рд╕реНрдЯрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рд▓реЗрдХрд┐рди рдЦреБрд╢реА рд╣реИ рдХрд┐ рдЗрд╕рдиреЗ рджреВрд╕рд░реЛрдВ рдХреА рдорджрдж рдХреА!

рдзрдиреНрдпрд╡рд╛рдж @danroliver ред рдЗрд╕рд╕реЗ рдореЗрд░рд╛ рдХрд╛рдо рдмрдирддрд╛ рд╣реИ
рдФрд░ рдореЗрд░рд╛ рдХреБрдмреЗрджрдо рд╕рдВрд╕реНрдХрд░рдг 1.8.5 . рд╣реИ

рдзрдиреНрдпрд╡рд╛рдж @danroliver рдПрдХ рд╕рд╛рде рдХрджрдо рд░рдЦ рд░рд╣рд╛ рд╣реИред рдореБрдЭреЗ рдЖрдкрдХреЗ рдХрджрдореЛрдВ рдореЗрдВ рдЫреЛрдЯреЗ-рдЫреЛрдЯреЗ рдЬреЛрдбрд╝ рдХрд░рдиреЗ рдереЗред рдореЗрд░рд╛ рдХреНрд▓рд╕реНрдЯрд░ v1.9.3 рдЪрд▓ рд░рд╣рд╛ рд╣реИ рдФрд░ рдпрд╣ рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реЗ рджреВрд░ рдПрдХ рдирд┐рдЬреА рдбреЗрдЯрд╛рд╕реЗрдВрдЯрд░ рдореЗрдВ рд╣реИред

рдорд╛рд╕реНрдЯрд░ рдкрд░

  1. рдПрдХ рдХреБрдмреЗрджрдо config.yml ред
apiVersion: kubeadm.k8s.io/v1alpha1
kind: MasterConfiguration
api:
  advertiseAddress: <master-ip>
kubernetesVersion: 1.9.3
  1. рдмреИрдХрдЕрдк рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдФрд░ рдЧреЛрдкрдиреАрдп рдлрд╝рд╛рдЗрд▓реЗрдВ
mkdir ~/conf-archive/
for f in `ls *.conf`;do mv $f ~/conf-archive/$f.old;done

mkdir ~/pki-archive
for f in `ls apiserver* front-*client*`;do mv $f ~/pki-archive/$f.old;done
  1. рдорд╛рд╕реНрдЯрд░ рдкрд░ рдХреБрдмреЗрджрдо рдХрдорд╛рдВрдб рдореЗрдВ --config config.yml рдЗрд╕ рддрд░рд╣ рдерд╛:
kubeadm alpha phase certs apiserver --config ./config.yml 
kubeadm alpha phase certs apiserver-kubelet-client --config ./config.yml 
kubeadm alpha phase certs front-proxy-client --config ./config.yml
kubeadm alpha phase kubeconfig all --config ./config.yml --node-name <master-node>
reboot
  1. рдЯреЛрдХрди рдмрдирд╛рдПрдВ

рдорд┐рдирд┐рдпрди рдкрд░

рдореБрдЭреЗ рд╣рд┐рд▓рдирд╛ рдкрдбрд╝рд╛

mv /etc/kubernetes/pki/ca.crt ~/archive/
mv /etc/kubernetes/kubelet.conf ~/archive/
systemctl stop kubelet
kubeadm join --token=eeefff.55550009999b3333 --discovery-token-unsafe-skip-ca-verification <master-ip>:6443

рдзрдиреНрдпрд╡рд╛рдж @danroliver! рдХреЗрд╡рд▓ рдореЗрд░рд╛ рд╕рд┐рдВрдЧрд▓-рдиреЛрдб рдХреНрд▓рд╕реНрдЯрд░ 1-6 рдЪрд░рдгреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдерд╛ (рдХреЛрдИ рд░реАрдмреВрдЯ рдирд╣реАрдВ) рдлрд┐рд░ SIGHUP рд╕реЗ kube-apiserver рднреЗрдЬреЗрдВред рдмрд╕ рдХрдВрдЯреЗрдирд░ рдЖрдИрдбреА рдХреЛ docker ps рдФрд░ рд╕рд┐рдЧреНрдирд▓ рдХреЛ docker kill -s HUP <container id> рд╕рд╛рде рд╕реЗрдЯ рдХрд┐рдпрд╛ред

рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж @danroliver! рд╣рдорд╛рд░реЗ рд╕рд┐рдВрдЧрд▓-рдорд╛рд╕реНрдЯрд░/рдорд▓реНрдЯреА-рд╡рд░реНрдХрд░реНрд╕ рдХреНрд▓рд╕реНрдЯрд░ рдкрд░, 1 рд╕реЗ 7 рддрдХ рдХреЗ рд╕реНрдЯреЗрдкреНрд╕ рдХрд░рдирд╛ рдХрд╛рдлреА рдерд╛, рд╣рдореЗрдВ рд╣рд░ рд╡рд░реНрдХрд░ рдиреЛрдб рдХреЛ рдорд╛рд╕реНрдЯрд░ рд╕реЗ рджреЛрдмрд╛рд░рд╛ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рдереА (рдЬреЛ рдХрд┐ рд╕рдмрд╕реЗ рджрд░реНрджрдирд╛рдХ рд╣рд┐рд╕реНрд╕рд╛ рдерд╛)ред

рдЗрд╕ рдмреЗрд╣рддрд░реАрди рдЪрд░рдг-рджрд░-рдЪрд░рдг рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, @danroliver! рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдорд▓реНрдЯреА-рдорд╛рд╕реНрдЯрд░ рдХреНрд▓рд╕реНрдЯрд░ (рдирдВрдЧреЗ рдзрд╛рддреБ, рд╡рд░реНрддрдорд╛рди рдореЗрдВ 1.11.1 рдкрд░ рдЪрд▓ рд░рд╣реЗ) рдкрд░ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдЕрдзрд┐рдорд╛рдирддрдГ рдмрд┐рдирд╛ рдбрд╛рдЙрдирдЯрд╛рдЗрдо рдХреЗред рдореЗрд░реЗ рдХрд░реНрдЯ рдЕрднреА рддрдХ рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рд╣реБрдП рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдпрд╣ рд╕реАрдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдРрд╕рд╛ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЙрдиреНрд╣реЗрдВ рдХреИрд╕реЗ рдкреБрди: рдЙрддреНрдкрдиреНрди/рдирд╡реАрдиреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рдПред

@kcronin
рдХреГрдкрдпрд╛ рдЗрд╕ рдирдП рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ:
https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-certs/
рдЙрдореНрдореАрдж рд╣реИ рдХреА рд╡реЛ рдорджрдж рдХрд░рджреЗред

@danroliver : рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж, рдпрд╣ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред

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

systemctl рдкреБрдирдГ рдЖрд░рдВрдн рдХреНрдпреВрдмрд▓реЗрдЯ
рдореИрдВ рдХреЗ рд▓рд┐рдП $(docker ps | egrep 'admin|controller|scheduler|api|fron|proxy' | Rev | awk '{print $1}' | Rev);
docker stop $i; рдХрд┐рдпрд╛ рд╣реБрдЖ

рдореБрдЭреЗ рдЗрд╕рд╕реЗ 1.13 рдХреНрд▓рд╕реНрдЯрд░ рдкрд░ рднреА рдирд┐рдкрдЯрдирд╛ рдерд╛, рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдкреНрд░рдорд╛рдг рдкрддреНрд░ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдереЗ, рдЗрд╕рд▓рд┐рдП рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдПрдХ рдПрдХрд▓ рдорд╛рд╕реНрдЯрд░ \ рдирд┐рдпрдВрддреНрд░рдг рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛, рдЗрд╕рд▓рд┐рдП рдПрдЪрдП рд╕реЗрдЯрдЕрдк рдпрд╛ рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рдереА
рдкреАрдЫреЗ рдХреЗ рдЪрд░рдгреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдиреЗ рдКрдкрд░ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рд╣реИ

рдЪреВрдВрдХрд┐ рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ рдХреА рд╕рдордп рд╕реАрдорд╛ рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рд╣реБрдИ рдереА, рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╡рд░реНрдХрд▓реЛрдб рдерд╛ рдЬрд┐рд╕реЗ рдореИрдВ рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛
рдЖрджрд┐ рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рдереА рдпрд╛ рддреЛ рдЗрд╕ рд╕рдордп рдЫреЛрдбрд╝реЗ рдЧрдП рд╣реИрдВ

рддреЛ рдЙрдЪреНрдЪ рд╕реНрддрд░ рдкрд░ рдореБрдЭреЗ рдХрд░рдирд╛ рдкрдбрд╝рд╛

  • рдЧреБрд░реБ рдкрд░

    • рдорд╛рд╕реНрдЯрд░ рдкрд░ рдирдП рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВ

    • рдПрдореНрдмреЗрдбреЗрдб рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рдХреЗ рд╕рд╛рде рдирдП kubeconfigs рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВ

    • рдирдпрд╛ рдХреНрдпреВрдмрд▓реЗрдЯ рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ рдЬреЗрдирд░реЗрдЯ рдХрд░реЗрдВ - рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рд╕рд░реНрд╡рд░

    • рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдиреЛрдб рдХреНрдпреВрдмрд▓реЗрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдЯреЛрдХрди рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВ

  • рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП

    • рдордЬрджреВрд░ рдХреЛ рдкрд╣рд▓реЗ рдорд╛рд▓рд┐рдХ рдкрд░ рдЙрддрд╛рд░реЛ

    • рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдХреЛ ssh, рдХреНрдпреВрдмрд▓реЗрдЯ рдХреЛ рд░реЛрдХреЗрдВ, рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╣рдЯрд╛рдПрдВ рдФрд░ рдХреНрдпреВрдмрд▓реЗрдЯ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░реЗрдВ

    • рдорд╛рд╕реНрдЯрд░ рдкрд░ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдХреЛ рдЦреЛрд▓рдирд╛

  • рдЕрдВрдд рдореЗрдВ рдорд╛рд╕реНрдЯрд░ рдкрд░

    • рдЯреЛрдХрди рд╣рдЯрд╛рдПрдВ

# On master - See https://kubernetes.io/docs/setup/certificates/#all-certificates

# Generate the new certificates - you may have to deal with AWS - see above re extra certificate SANs
sudo kubeadm alpha certs renew apiserver
sudo kubeadm alpha certs renew apiserver-etcd-client
sudo kubeadm alpha certs renew apiserver-kubelet-client
sudo kubeadm alpha certs renew front-proxy-client

# Generate new kube-configs with embedded certificates - Again you may need extra AWS specific content - see above
sudo kubeadm alpha kubeconfig user --org system:masters --client-name kubernetes-admin  > admin.conf
sudo kubeadm alpha kubeconfig user --client-name system:kube-controller-manager > controller-manager.conf
sudo kubeadm alpha kubeconfig user --org system:nodes --client-name system:node:$(hostname) > kubelet.conf
sudo kubeadm alpha kubeconfig user --client-name system:kube-scheduler > scheduler.conf

# chown and chmod so they match existing files
sudo chown root:root {admin,controller-manager,kubelet,scheduler}.conf
sudo chmod 600 {admin,controller-manager,kubelet,scheduler}.conf

# Move to replace existing kubeconfigs
sudo mv admin.conf /etc/kubernetes/
sudo mv controller-manager.conf /etc/kubernetes/
sudo mv kubelet.conf /etc/kubernetes/
sudo mv scheduler.conf /etc/kubernetes/

# Restart the master components
sudo kill -s SIGHUP $(pidof kube-apiserver)
sudo kill -s SIGHUP $(pidof kube-controller-manager)
sudo kill -s SIGHUP $(pidof kube-scheduler)

# Verify master component certificates - should all be 1 year in the future
# Cert from api-server
echo -n | openssl s_client -connect localhost:6443 2>&1 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | openssl x509 -text -noout | grep Not
# Cert from controller manager
echo -n | openssl s_client -connect localhost:10257 2>&1 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | openssl x509 -text -noout | grep Not
# Cert from scheduler
echo -n | openssl s_client -connect localhost:10259 2>&1 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | openssl x509 -text -noout | grep Not

# Generate kubelet.conf
sudo kubeadm alpha kubeconfig user --org system:nodes --client-name system:node:$(hostname) > kubelet.conf
sudo chown root:root kubelet.conf
sudo chmod 600 kubelet.conf

# Drain
kubectl drain --ignore-daemonsets $(hostname)
# Stop kubelet
sudo systemctl stop kubelet
# Delete files
sudo rm /var/lib/kubelet/pki/*
# Copy file
sudo mv kubelet.conf /etc/kubernetes/
# Restart
sudo systemctl start kubelet
# Uncordon
kubectl uncordon $(hostname)

# Check kubelet
echo -n | openssl s_client -connect localhost:10250 2>&1 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | openssl x509 -text -noout | grep Not

рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдлрд┐рд░ рд╕реЗ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдиреЛрдбреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдЯреЛрдХрди рдмрдирд╛рдПрдВ (рдХреНрдпреВрдмрд▓реЗрдЯ рдкреБрдирд░рд╛рд░рдВрдн рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж)

# On master
sudo kubeadm token create

рдЕрдм рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП - рдПрдХ рд╕рдордп рдореЗрдВ рдПрдХ

kubectl drain --ignore-daemonsets --delete-local-data WORKER-NODE-NAME

рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдиреЛрдб рдХреЗ рд▓рд┐рдП ssh

# Stop kubelet
sudo systemctl stop kubelet

# Delete files
sudo rm /etc/kubernetes/kubelet.conf
sudo rm /var/lib/kubelet/pki/*

# Alter the bootstrap token
new_token=TOKEN-FROM-CREATION-ON-MASTER
sudo sed -i "s/token: .*/token: $new_token/" /etc/kubernetes/bootstrap-kubelet.conf

# Start kubelet
sudo systemctl start kubelet

# Check kubelet certificate
echo -n | openssl s_client -connect localhost:10250 2>&1 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | openssl x509 -text -noout | grep Not
sudo openssl x509 -in /var/lib/kubelet/pki/kubelet-client-current.pem -text -noout | grep Not
sudo openssl x509 -in /var/lib/kubelet/pki/kubelet.crt -text -noout | grep Not

рдорд╛рд╕реНрдЯрд░ рдХреЗ рдкрд╛рд╕ рд╡рд╛рдкрд╕ рдЬрд╛рдПрдВ рдФрд░ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдХреЛ рдЕрдирдХреЙрд░реНрдб рдХрд░реЗрдВ

kubectl uncordon WORKER-NODE-NAME

рд╕рднреА рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреЗ рдЕрдкрдбреЗрдЯ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж - рдЯреЛрдХрди рдирд┐рдХрд╛рд▓реЗрдВ - 24 рдШрдВрдЯреЛрдВ рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдПрдВ

On master
sudo kubeadm token delete TOKEN-FROM-CREATION-ON-MASTER

@pmcgrath рдЙрди рдЪрд░рдгреЛрдВ рдХреЛ рдкреЛрд╕реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ рдЙрдирдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рдиреЗ рдФрд░ рдЕрдкрдиреЗ рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рдХреЛ рдирд╡реАрдиреАрдХреГрдд рдХрд░рдиреЗ, рдФрд░ рдПрдХ рдХрд╛рд░реНрдпрд╢реАрд▓ рдХреНрд▓рд╕реНрдЯрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ред

рдпрджрд┐ рдЖрдк 1.8 рд╕реЗ рдкрд╣рд▓реЗ рдХреБрдмреЗрджрдо рдХреЗ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬрд╣рд╛рдВ рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ рд░реЛрдЯреЗрд╢рди # 206 рдХреЛ рдЬрдЧрд╣ рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рдерд╛ ( рдмреАрдЯрд╛ рдлреАрдЪрд░ рдХреЗ рд░реВрдк

рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдорд╛рд╕реНрдЯрд░ рдиреЛрдб рдореЗрдВ SSH рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдпрджрд┐ рдЖрдк рдХреБрдмреЗрджрдо>= 1.8 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддреЛ 2 рдкрд░ рдЬрд╛рдПрдВред

1. Update Kubeadm, if needed. I was on 1.7 previously.
$ sudo curl -sSL https://dl.k8s.io/release/v1.8.15/bin/linux/amd64/kubeadm > ./kubeadm.1.8.15
$ chmod a+rx kubeadm.1.8.15
$ sudo mv /usr/bin/kubeadm /usr/bin/kubeadm.1.7
$ sudo mv kubeadm.1.8.15 /usr/bin/kubeadm
1. Backup old apiserver, apiserver-kubelet-client, and front-proxy-client certs and keys.
$ sudo mv /etc/kubernetes/pki/apiserver.key /etc/kubernetes/pki/apiserver.key.old
$ sudo mv /etc/kubernetes/pki/apiserver.crt /etc/kubernetes/pki/apiserver.crt.old
$ sudo mv /etc/kubernetes/pki/apiserver-kubelet-client.crt /etc/kubernetes/pki/apiserver-kubelet-client.crt.old
$ sudo mv /etc/kubernetes/pki/apiserver-kubelet-client.key /etc/kubernetes/pki/apiserver-kubelet-client.key.old
$ sudo mv /etc/kubernetes/pki/front-proxy-client.crt /etc/kubernetes/pki/front-proxy-client.crt.old
$ sudo mv /etc/kubernetes/pki/front-proxy-client.key /etc/kubernetes/pki/front-proxy-client.key.old
1. Generate new apiserver, apiserver-kubelet-client, and front-proxy-client certs and keys.
$ sudo kubeadm alpha phase certs apiserver --apiserver-advertise-address <IP address of your master server>
$ sudo kubeadm alpha phase certs apiserver-kubelet-client
$ sudo kubeadm alpha phase certs front-proxy-client
1. Backup old configuration files
$ sudo mv /etc/kubernetes/admin.conf /etc/kubernetes/admin.conf.old
$ sudo mv /etc/kubernetes/kubelet.conf /etc/kubernetes/kubelet.conf.old
$ sudo mv /etc/kubernetes/controller-manager.conf /etc/kubernetes/controller-manager.conf.old
$ sudo mv /etc/kubernetes/scheduler.conf /etc/kubernetes/scheduler.conf.old
1. Generate new configuration files.

рдпрд╣рд╛рдБ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдиреЛрдЯ рд╣реИред рдпрджрд┐ рдЖрдк AWS рдкрд░ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕ рдЕрдиреБрд░реЛрдз рдореЗрдВ --node-name рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрд╛рд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЕрдиреНрдпрдерд╛ рдЖрдкрдХреЛ рдПрдХ рддреНрд░реБрдЯрд┐ рдорд┐рд▓реЗрдЧреА рдЬреИрд╕реЗ: Unable to register node "ip-10-0-8-141.ec2.internal" with API server: nodes "ip-10-0-8-141.ec2.internal" is forbidden: node ip-10-0-8-141 cannot modify node ip-10-0-8-141.ec2.internal рдЖрдкрдХреЗ рд▓реЙрдЧ рдореЗрдВ sudo journalctl -u kubelet --all | tail рдФрд░ рдорд╛рд╕реНрдЯрд░ рдиреЛрдб рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реЗрдЧрд╛ рдХрд┐ рдпрд╣ Not Ready рдЬрдм рдЖрдк kubectl get nodes рдЪрд▓рд╛рддреЗ рд╣реИрдВред

рдХреГрдкрдпрд╛ --apiserver-advertise-address рдФрд░ --node-name рдореЗрдВ рдкрд╛рд░рд┐рдд рдорд╛рдиреЛрдВ рдХреЛ рдЕрдкрдиреЗ рдкрд░рд┐рд╡реЗрд╢ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдорд╛рдиреЛрдВ рд╕реЗ рдмрджрд▓рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВред

$ sudo kubeadm alpha phase kubeconfig all --apiserver-advertise-address 10.0.8.141 --node-name ip-10-0-8-141.ec2.internal
[kubeconfig] Wrote KubeConfig file to disk: "admin.conf"
[kubeconfig] Wrote KubeConfig file to disk: "kubelet.conf"
[kubeconfig] Wrote KubeConfig file to disk: "controller-manager.conf"
[kubeconfig] Wrote KubeConfig file to disk: "scheduler.conf"
1. Ensure that your `kubectl` is looking in the right place for your config files.
$ mv .kube/config .kube/config.old
$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
$ sudo chown $(id -u):$(id -g) $HOME/.kube/config
$ sudo chmod 777 $HOME/.kube/config
$ export KUBECONFIG=.kube/config
1. Reboot your master node
$ sudo /sbin/shutdown -r now
1. Reconnect to your master node and grab your token, and verify that your Master Node is "Ready". Copy the token to your clipboard. You will need it in the next step.
$ kubectl get nodes
$ kubeadm token list

рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╡реИрдз рдЯреЛрдХрди рдирд╣реАрдВ рд╣реИред рдЖрдк рдЗрд╕рдХреЗ рд╕рд╛рде рдПрдХ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ:

$ kubeadm token create

рдЯреЛрдХрди рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП 6dihyb.d09sbgae8ph2atjw

1. SSH into each of the slave nodes and reconnect them to the master
$ sudo curl -sSL https://dl.k8s.io/release/v1.8.15/bin/linux/amd64/kubeadm > ./kubeadm.1.8.15
$ chmod a+rx kubeadm.1.8.15
$ sudo mv /usr/bin/kubeadm /usr/bin/kubeadm.1.7
$ sudo mv kubeadm.1.8.15 /usr/bin/kubeadm
$ sudo kubeadm join --token=<token from step 8>  <ip of master node>:<port used 6443 is the default> --node-name <should be the same one as from step 5>
1. Repeat Step 9 for each connecting node. From the master node, you can verify that all slave nodes have connected and are ready with:
$ kubectl get nodes

рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдЖрдкрдХреЛ рд╡рд╣реАрдВ рдорд┐рд▓реЗрдЧрд╛ рдЬрд╣рд╛рдВ рдЖрдкрдХреЛ @davidcomeyne рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рдореБрдЭреЗ рдХреЗрд╡рд▓ 1.14.2 рдХреЗ рд▓рд┐рдП рдЪрд╛рд╣рд┐рдП .. рдХреИрд╕реЗ рдХрд░реЗрдВ рдкрд░ рдХреЛрдИ рд╕рдВрдХреЗрдд

рдореБрдЭреЗ рдЗрд╕рд╕реЗ 1.13 рдХреНрд▓рд╕реНрдЯрд░ рдкрд░ рднреА рдирд┐рдкрдЯрдирд╛ рдерд╛, рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдкреНрд░рдорд╛рдг рдкрддреНрд░ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдереЗ, рдЗрд╕рд▓рд┐рдП рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдПрдХ рдПрдХрд▓ рдорд╛рд╕реНрдЯрд░ \ рдирд┐рдпрдВрддреНрд░рдг рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛, рдЗрд╕рд▓рд┐рдП рдПрдЪрдП рд╕реЗрдЯрдЕрдк рдпрд╛ рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рдереА
рдкреАрдЫреЗ рдХреЗ рдЪрд░рдгреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдиреЗ рдКрдкрд░ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рд╣реИ

рдЪреВрдВрдХрд┐ рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ рдХреА рд╕рдордп рд╕реАрдорд╛ рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рд╣реБрдИ рдереА, рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╡рд░реНрдХрд▓реЛрдб рдерд╛ рдЬрд┐рд╕реЗ рдореИрдВ рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛
рдЖрджрд┐ рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рдереА рдпрд╛ рддреЛ рдЗрд╕ рд╕рдордп рдЫреЛрдбрд╝реЗ рдЧрдП рд╣реИрдВ

рддреЛ рдЙрдЪреНрдЪ рд╕реНрддрд░ рдкрд░ рдореБрдЭреЗ рдХрд░рдирд╛ рдкрдбрд╝рд╛

* On the master

  * Generate new certificates on the master
  * Generate new kubeconfigs with embedded certificates
  * Generate new kubelet certicates - client and server
  * Generate a new token for the worker node kubelets

* For each worker

  * Drain the worker first on the master
  * ssh to the worker, stop the kubelet, remove files and restart the kubelet
  * Uncordon the worker on the master

* On master at the end

  * Delete token
# On master - See https://kubernetes.io/docs/setup/certificates/#all-certificates

# Generate the new certificates - you may have to deal with AWS - see above re extra certificate SANs
sudo kubeadm alpha certs renew apiserver
sudo kubeadm alpha certs renew apiserver-etcd-client
sudo kubeadm alpha certs renew apiserver-kubelet-client
sudo kubeadm alpha certs renew front-proxy-client

# Generate new kube-configs with embedded certificates - Again you may need extra AWS specific content - see above
sudo kubeadm alpha kubeconfig user --org system:masters --client-name kubernetes-admin  > admin.conf
sudo kubeadm alpha kubeconfig user --client-name system:kube-controller-manager > controller-manager.conf
sudo kubeadm alpha kubeconfig user --org system:nodes --client-name system:node:$(hostname) > kubelet.conf
sudo kubeadm alpha kubeconfig user --client-name system:kube-scheduler > scheduler.conf

# chown and chmod so they match existing files
sudo chown root:root {admin,controller-manager,kubelet,scheduler}.conf
sudo chmod 600 {admin,controller-manager,kubelet,scheduler}.conf

# Move to replace existing kubeconfigs
sudo mv admin.conf /etc/kubernetes/
sudo mv controller-manager.conf /etc/kubernetes/
sudo mv kubelet.conf /etc/kubernetes/
sudo mv scheduler.conf /etc/kubernetes/

# Restart the master components
sudo kill -s SIGHUP $(pidof kube-apiserver)
sudo kill -s SIGHUP $(pidof kube-controller-manager)
sudo kill -s SIGHUP $(pidof kube-scheduler)

# Verify master component certificates - should all be 1 year in the future
# Cert from api-server
echo -n | openssl s_client -connect localhost:6443 2>&1 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | openssl x509 -text -noout | grep Not
# Cert from controller manager
echo -n | openssl s_client -connect localhost:10257 2>&1 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | openssl x509 -text -noout | grep Not
# Cert from scheduler
echo -n | openssl s_client -connect localhost:10259 2>&1 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | openssl x509 -text -noout | grep Not

# Generate kubelet.conf
sudo kubeadm alpha kubeconfig user --org system:nodes --client-name system:node:$(hostname) > kubelet.conf
sudo chown root:root kubelet.conf
sudo chmod 600 kubelet.conf

# Drain
kubectl drain --ignore-daemonsets $(hostname)
# Stop kubelet
sudo systemctl stop kubelet
# Delete files
sudo rm /var/lib/kubelet/pki/*
# Copy file
sudo mv kubelet.conf /etc/kubernetes/
# Restart
sudo systemctl start kubelet
# Uncordon
kubectl uncordon $(hostname)

# Check kubelet
echo -n | openssl s_client -connect localhost:10250 2>&1 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | openssl x509 -text -noout | grep Not

рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдлрд┐рд░ рд╕реЗ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдиреЛрдбреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдЯреЛрдХрди рдмрдирд╛рдПрдВ (рдХреНрдпреВрдмрд▓реЗрдЯ рдкреБрдирд░рд╛рд░рдВрдн рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж)

# On master
sudo kubeadm token create

рдЕрдм рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП - рдПрдХ рд╕рдордп рдореЗрдВ рдПрдХ

kubectl drain --ignore-daemonsets --delete-local-data WORKER-NODE-NAME

рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдиреЛрдб рдХреЗ рд▓рд┐рдП ssh

# Stop kubelet
sudo systemctl stop kubelet

# Delete files
sudo rm /etc/kubernetes/kubelet.conf
sudo rm /var/lib/kubelet/pki/*

# Alter the bootstrap token
new_token=TOKEN-FROM-CREATION-ON-MASTER
sudo sed -i "s/token: .*/token: $new_token/" /etc/kubernetes/bootstrap-kubelet.conf

# Start kubelet
sudo systemctl start kubelet

# Check kubelet certificate
echo -n | openssl s_client -connect localhost:10250 2>&1 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | openssl x509 -text -noout | grep Not
sudo openssl x509 -in /var/lib/kubelet/pki/kubelet-client-current.pem -text -noout | grep Not
sudo openssl x509 -in /var/lib/kubelet/pki/kubelet.crt -text -noout | grep Not

рдорд╛рд╕реНрдЯрд░ рдХреЗ рдкрд╛рд╕ рд╡рд╛рдкрд╕ рдЬрд╛рдПрдВ рдФрд░ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдХреЛ рдЕрдирдХреЙрд░реНрдб рдХрд░реЗрдВ

kubectl uncordon WORKER-NODE-NAME

рд╕рднреА рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреЗ рдЕрдкрдбреЗрдЯ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж - рдЯреЛрдХрди рдирд┐рдХрд╛рд▓реЗрдВ - 24 рдШрдВрдЯреЛрдВ рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдПрдВ

On master
sudo kubeadm token delete TOKEN-FROM-CREATION-ON-MASTER

рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдореБрджреНрджрд╛ рдмрдВрдж рд╣реЛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ 1.14.2 рдкрд░ рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ рдФрд░ рдЧрд╛рдЗрдб рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдХреНрд▓рд╕реНрдЯрд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рдФрд░ рдЯреЛрдХрди рдХреЛ рдлрд┐рд░ рд╕реЗ рдЬрд╛рд░реА рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ (рдореИрдВ рдЕрд╕рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реВрдВ)

kubeadm v1.9.x рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдП рдЧрдП рдПрдХ k8s рдХреНрд▓рд╕реНрдЯрд░ рдиреЗ v1.14.1 lol рдХреА рдЙрдореНрд░ рдореЗрдВ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ ( apiserver-kubelet-client.crt 2 рдЬреБрд▓рд╛рдИ рдХреЛ рд╕рдорд╛рдкреНрдд) рдХрд╛ рдЕрдиреБрднрд╡ рдХрд┐рдпрд╛ред

рдореБрдЭреЗ рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рдХреЛ рдирд╡реАрдиреАрдХреГрдд рдХрд░рдиреЗ, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдФрд░ рд╕рд╛рдзрд╛рд░рдг 3 рдиреЛрдб рдХреНрд▓рд╕реНрдЯрд░ рдХреЛ рд╡рд╛рдкрд╕ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП 4 рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реНрд░реЛрддреЛрдВ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред

@danroliver рдиреЗ рдЖрдИрдмреАрдПрдо рд╕реЗ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЧрд╛рдЗрдб рдХреЗ рдмрд╣реБрдд рдХрд░реАрдм, рдмрд╣реБрдд рдЕрдЪреНрдЫреЗ рдФрд░ рд╕рдВрд░рдЪрд┐рдд рдирд┐рд░реНрджреЗрд╢ рджрд┐рдПред
[рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреНрд▓рд╕реНрдЯрд░ рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рдХрд╛ рдирд╡реАрдиреАрдХрд░рдг] IBM рд╕реЗ рд╡рд╛рд╣! (https://www.ibm.com/support/knowledgecenter/en/SSCKRH_1.1.0/platform/t_certificate_renewal.html)

рдиреЛрдЯ: рдЖрдИрдмреАрдПрдо рдлрд╛рдЗрдиреЗрдВрд╢рд┐рдпрд▓ рдХреНрд░рд╛рдЗрдореНрд╕ рдЗрдирд╕рд╛рдЗрдЯ рд╡рд┐рдж рд╡рд╛рдЯрд╕рди рдкреНрд░рд╛рдЗрд╡реЗрдЯ k8s рджреНрд╡рд╛рд░рд╛ рд╕рдВрдЪрд╛рд▓рд┐рдд рд╣реИ, рдпрд╣ рдХрднреА рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдерд╛ред

рдЪрд░рдг 3 рдФрд░ рдЪрд░рдг 5 рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛

рдЪрд░рдг 3 рдореЗрдВ рдХрдорд╛рдВрдб рдореЗрдВ рдЪрд░рдг рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП

$ sudo kubeadm alpha certs renew apiserver
$ sudo kubeadm alpha certs renew apiserver-kubelet-client
$ sudo kubeadm alpha certs renew front-proxy-client

рдЪрд░рдг 5 рдиреАрдЪреЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, kubeadm alpha рдореЗрдВ kubeconfig рд╕рднреА рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдПрдХ kubeadm init рдЪрд░рдг рд╣реИ

# kubeadm init phase kubeconfig all
I0705 12:42:24.056152   32618 version.go:240] remote version is much newer: v1.15.0; falling back to: stable-1.14
[kubeconfig] Using kubeconfig folder "/etc/kubernetes"
[kubeconfig] Writing "admin.conf" kubeconfig file
[kubeconfig] Writing "kubelet.conf" kubeconfig file
[kubeconfig] Writing "controller-manager.conf" kubeconfig file
[kubeconfig] Writing "scheduler.conf" kubeconfig file

1.15 рдореЗрдВ рд╣рдордиреЗ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдирд╡реАрдиреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рджрд╕реНрддрд╛рд╡реЗрдЬ рдЬреЛрдбрд╝реЗ рд╣реИрдВ:
https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-certs/

рд╕рд╛рде рд╣реА, 1.15 kubeadm upgrade рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЖрдкрдХреЗ рд▓рд┐рдП рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рдХрд╛ рдирд╡реАрдиреАрдХрд░рдг рдХрд░реЗрдЧрд╛!

Kubeadm v1.9.x рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдП рдЧрдП k8s рдХреНрд▓рд╕реНрдЯрд░ рдиреЗ v1.14.1 lol рдХреА рдЙрдореНрд░ рдореЗрдВ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ (apiserver-kubelet-client.crt 2 рдЬреБрд▓рд╛рдИ рдХреЛ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдИ) рдХрд╛ рдЕрдиреБрднрд╡ рдХрд┐рдпрд╛ред

1.13 рд╕реЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрд╕рдорд░реНрдерд┐рдд рд╣реИрдВред
рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЗрд╕ рддреЗрдЬреА рд╕реЗ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рдмрдиреЗ рд░рд╣рдиреЗ рдХреЗ рд▓рд┐рдП рджреГрдврд╝рддрд╛ рд╕реЗ рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░рддреЗ рд╣реИрдВред

рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд▓реЙрдиреНрдЧрдЯрд░реНрдо рд╕рдкреЛрд░реНрдЯ рд╡рд░реНрдХрд┐рдВрдЧ рдЧреНрд░реБрдк рджреНрд╡рд╛рд░рд╛ рдЪрд░реНрдЪрд╛ рдЪрд▓ рд░рд╣реА рд╣реИ рдХрд┐ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд╕рдорд░реНрдерд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдХреБрдЫ рд╕рдордп рд▓рдЧ рд╕рдХрддрд╛ рд╣реИред

рдзрдиреНрдпрд╡рд╛рдж @pmorie ред
рдХреНрдпреВрдм рд╕рдВрд╕реНрдХрд░рдг 1.13.6 . рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

рдмрд╕ рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдФрд░ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЕрдиреБрд░реЛрдз: рдЗрд╕ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХреА рд╕рдорд╛рдкреНрддрд┐ рдиреЗ рдЖрдЬ рд╕реБрдмрд╣ рд╣рдорд╛рд░реЗ Kubernetes 1.11.x рдХреНрд▓рд╕реНрдЯрд░ рдкрд░ рдЙрддреНрдкрд╛рджрди рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред рд╣рдордиреЗ рдКрдкрд░ (рдФрд░ рд▓рд┐рдВрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП) рд╕рдм рдХреБрдЫ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдХрдИ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдорд╛рд░рд╛, рдХреБрдЫ рдШрдВрдЯреЛрдВ рдХреЗ рдмрд╛рдж рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдПрдХ рдмрдбрд╝реЗ рд╣реЛрд╕реЗрд╕ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд╕рд╛рде рдлрдВрд╕рдиреЗ рдХреЗ рдмрд╛рдж рдЫреЛрдбрд╝ рджрд┐рдпрд╛ред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рд╣рдо рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ 1.15 (рдФрд░ рдПрдХ рдирдпрд╛ рдХреНрд▓рд╕реНрдЯрд░ рдмрдирд╛рдиреЗ) рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рд╕реЗ рд▓рдЧрднрдЧ 2 рд╕рдкреНрддрд╛рд╣ рджреВрд░ рдереЗ, рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рд╕реНрдХреНрд░реИрдЪ рд╕реЗ рдПрдХ рдирдпрд╛ 1.15 рдХреНрд▓рд╕реНрдЯрд░ рдмрдирд╛рдирд╛ рдФрд░ рдЕрдкрдиреЗ рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбреЗрдЯрд╛ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдирд╛ рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛ред

рдХрд╛рд╢ рдРрд╕рд╛ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХреБрдЫ рдЪреЗрддрд╛рд╡рдиреА рд╣реЛрддреАред рд╣рдо рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЪреЗрддрд╛рд╡рдиреА рдХреЗ "рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рд╕реНрдерд┐рд░ рдХреНрд▓рд╕реНрдЯрд░" рд╕реЗ "рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЯреВрдЯреЗ рд╣реБрдП рдирд╛рд░рдХреАрдп рджреБрдГрд╕реНрд╡рдкреНрди" рдореЗрдВ рдЪрд▓реЗ рдЧрдП, рдФрд░ рд╢рд╛рдпрдж рд╣рдорд╛рд░рд╛ рдЕрдм рддрдХ рдХрд╛ рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рд╕рдордп рдерд╛ред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рд╢реБрдХреНрд░рд╡рд╛рд░ рдХреА рджреЛрдкрд╣рд░ рдПрдХ рдкрд╢реНрдЪрд┐рдореА рддрдЯ рдерд╛, рдЗрд╕рд▓рд┐рдП рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдХрдо рдкреНрд░рднрд╛рд╡рдХрд╛рд░реА рдерд╛ред

рдКрдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рдФрд░ рд╕рднреА рд▓рд┐рдВрдХреНрдб рдЯрд┐рдХрдЯреЛрдВ рдореЗрдВ рд╕реЗ, рдПрдХ рдЪреАрдЬ рдЬрд┐рд╕рдиреЗ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдХрдорд╛рдИ рдХреА рд╣реЛрдЧреА
рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЕрдВрддрд░ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: рдЬрдм рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЬрд▓реНрдж рд╣реА рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реЛрдВ рддреЛ рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВ ред (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк kubectl рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХреБрдЫ рд╣реА рд╣рдлреНрддреЛрдВ рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдмрддрд╛рдПрдВ!)ред

рдЖрдкрдХреА рдкрд░реЗрд╢рд╛рдиреА рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИред рдЖрдо рддреМрд░ рдкрд░ рдпрд╣ рдСрдкрд░реЗрдЯрд░ рдХреА рдЬрд┐рдореНрдореЗрджрд╛рд░реА рд╣реИ
рд╕рдорд╛рдкреНрддрд┐ рдХреЗ рд▓рд┐рдП рдбрд┐рд╕реНрдХ рдкрд░ рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рд▓реЗрдХрд┐рди рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ рдХрдореА
рдЖрд╕рд╛рди рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рдХрд╛рд░рдг рдкрд░реЗрд╢рд╛рдиреА рд╣реЛ рд╕рдХрддреА рд╣реИред рдпрд╣реА рдПрдХ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд╣рдордиреЗ рдЬреЛрдбрд╝рд╛
рдХреБрдмреЗрджрдо рдореЗрдВ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХреА рд╕рдордп рд╕реАрдорд╛ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХрд╛ рдЖрджреЗрд╢ред рджреЗрдЦреЛ
https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-certs/

рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ 1.15 рдХреЗ рдмрд╛рдж kubeadm рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рдХреЛ рд╕реНрд╡рддрдГ рдирд╡реАрдиреАрдХреГрдд рдХрд░реЗрдЧрд╛
рдЙрдиреНрдирдпрдиред рдЬреЛ рдпреВрдЬрд░реНрд╕ рдХреЛ рдЕрдзрд┐рдХ рдмрд╛рд░ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░рддрд╛ рд╣реИред
рдЬреБрд▓рд╛рдИ 20, 2019 03:49 рдкрд░, "рд╡рд┐рд▓рд┐рдпрдо рд╕реНрдЯреАрди" рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com рдиреЗ рд▓рд┐рдЦрд╛:

рдмрд╕ рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдФрд░ рд╕реБрд╡рд┐рдзрд╛ рдЕрдиреБрд░реЛрдз: рдЗрд╕ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХреА рд╕рдорд╛рдкреНрддрд┐ рдиреЗ рд╣рдореЗрдВ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд┐рдпрд╛
рдЖрдЬ рд╕реБрдмрд╣ рд╣рдорд╛рд░реЗ Kubernetes 1.11.x рдХреНрд▓рд╕реНрдЯрд░ рдкрд░ рдЙрддреНрдкрд╛рджрдиред рдХреЛрд╢рд┐рд╢ рдХреА
рдКрдкрд░ рд╕рдм рдХреБрдЫ (рдФрд░ рд▓рд┐рдВрдХ рдХреЗ рд▓рд┐рдП), рд▓реЗрдХрд┐рди рдХрдИ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдорд╛рд░рд╛, рдПрдХ рдХреЗ рдмрд╛рдж рдЫреЛрдбрд╝ рджрд┐рдпрд╛
рдХреБрдЫ рдШрдВрдЯреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдПрдХ рдмрдбрд╝реЗ рд╣реЛрд╕реЗрд╕ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд╕рд╛рде рдлрдВрд╕ рдЧрдПред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ,
рд╣рдо Kubernetes 1.15 (рдФрд░ рдмрд┐рд▓реНрдбрд┐рдВрдЧ .) рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рд╕реЗ рд▓рдЧрднрдЧ 2 рд╕рдкреНрддрд╛рд╣ рджреВрд░ рдереЗ
рдПрдХ рдирдпрд╛ рдХреНрд▓рд╕реНрдЯрд░) рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рд╕реНрдХреНрд░реИрдЪ рд╕реЗ рдПрдХ рдирдпрд╛ 1.15 рдХреНрд▓рд╕реНрдЯрд░ рдмрдирд╛рдпрд╛
рдФрд░ рд╣рдорд╛рд░реЗ рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбреЗрдЯрд╛ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдирд╛ред

рдХрд╛рд╢ рдРрд╕рд╛ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХреБрдЫ рдЪреЗрддрд╛рд╡рдиреА рд╣реЛрддреАред рд╣рдордиреЗ рдЕрднреА
"рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рд╕реНрдерд┐рд░ рдХреНрд▓рд╕реНрдЯрд░" рд╕реЗ "рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЯреВрдЯреЗ рд╣реБрдП рдирд╛рд░рдХреАрдп" рдореЗрдВ рдЪрд▓рд╛ рдЧрдпрд╛
рджреБрдГрд╕реНрд╡рдкреНрди" рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЪреЗрддрд╛рд╡рдиреА рдХреЗ, рдФрд░ рд╢рд╛рдпрдж рд╣рдорд╛рд░рд╛ рдЕрдм рддрдХ рдХрд╛ рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рд╕рдордп рдерд╛ред
рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рд╢реБрдХреНрд░рд╡рд╛рд░ рдХреА рджреЛрдкрд╣рд░ рдПрдХ рдкрд╢реНрдЪрд┐рдореА рддрдЯ рдерд╛, рдЗрд╕рд▓рд┐рдП рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдХрдо
рдкреНрд░рднрд╛рд╡рд╢рд╛рд▓реАред

рдКрдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рдФрд░ рд╕рднреА рд▓рд┐рдВрдХреНрдб рдЯрд┐рдХрдЯреЛрдВ рдореЗрдВ рд╕реЗ, рдПрдХ рдмрд╛рдд
рдХрд┐ рдПрдХ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдмрдирд╛ рд╣реЛрддрд╛
рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЕрдВрддрд░ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдиреЗ рдкрд░ рдЪреЗрддрд╛рд╡рдиреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВрдЬрд▓реНрдж рд╣реА рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ ред (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк Kubectl рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╣реИ
рдХреБрдЫ рд╣рдлреНрддреЛрдВ рдХреЗ рднреАрддрд░ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдмрддрд╛рдПрдВ!)

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЯрд┐рдкреНрдкрдгреА рдХреА рдереАред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/kubernetes/kubeadm/issues/581?email_source=notifications&email_token=AACRATDWBQHYVVRG4LYVTXLQAJOJHA5CNFSM4EGBFHKKYY3PNVWWK3TUL52HS4DFVREXG43VMVBWK3LOPWZ2-5134
рдпрд╛ рдереНрд░реЗрдб рдХреЛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/AACRATC437G4OZ3ZOEQM5LLQAJOJHANCNFSM4EGBFHKA
.

@neolit123 рдзрдиреНрдпрд╡рд╛рдж; рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдХреА рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╣рдо рдЖрдЧрд╛рдореА рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдореБрджреНрджреЛрдВ рдХреА рд╕рдордп-рд╕рдордп рдкрд░ рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдирд┐рдЧрд░рд╛рдиреА рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдореЗрдВ рдХреБрдЫ рдЬреЛрдбрд╝реЗрдВрдЧреЗред

@danroliver Thx рдЖрдкрдХреЗ рдЙрддреНрддрд░ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХреБрдЫред рдЗрд╕рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рдордп рдмрдЪрд╛рдпрд╛ред
рдЙрд▓реНрд▓реЗрдЦ рдХреЗ рд▓рд╛рдпрдХ рдПрдХ рдмрд┐рдВрджреБ "рдЖрджрд┐" рд╕рдВрдмрдВрдзрд┐рдд рдкреНрд░рдорд╛рдг рдкрддреНрд░ рд╣реИ, рдЬрд┐рд╕реЗ рдЙрд╕реА рддрд░рд╣ рдирд╡реАрдиреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреБрдирдГ рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдореЗрдЯрд╛рдбреЗрдЯрд╛ YAML рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╕рдВрджрд░реНрдн рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

Kubernetes v1.14 рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ @desdic рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧреА

  • https://stackoverflow.com/a/56334732/1147487

    • рдмреИрдХрдЕрдк рд▓реЗрдВ рдФрд░ рд╕рднреА рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЬрдирд░реЗрдЯ рдХрд░реЗрдВ:

$ cd /etc/kubernetes/pki/
$ mv {apiserver.crt,apiserver-etcd-client.key,apiserver-kubelet-client.crt,front-proxy-ca.crt,front-proxy-client.crt,front-proxy-client.key,front-proxy-ca.key,apiserver-kubelet-client.key,apiserver.key,apiserver-etcd-client.crt} ~/
$ kubeadm init phase certs all --apiserver-advertise-address <IP>
  • рд╕рднреА kubeconfig рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдмреИрдХрдЕрдк рд▓реЗрдВ рдФрд░ рдкреБрди: рдЬрдирд░реЗрдЯ рдХрд░реЗрдВ:
$ cd /etc/kubernetes/
$ mv {admin.conf,controller-manager.conf,mv kubelet.conf,scheduler.conf} ~/
$ kubeadm init phase kubeconfig all
$ reboot
  • рдирдпрд╛ admin.conf рдХреЙрдкреА рдХрд░реЗрдВ:
$ cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

Kubernetes v1.14 рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧреА рд▓рдЧрддреА рд╣реИ:

* https://stackoverflow.com/a/56334732/1147487

рдПрдХ рдмрд╛рд░ рдЬрдм рдореЗрд░рд╛ рдЕрдкрдирд╛ рдХреНрд▓рд╕реНрдЯрд░ рдлрд┐рдХреНрд╕ рд╣реЛ рдЧрдпрд╛ рддреЛ рдореИрдВрдиреЗ рдлрд┐рдХреНрд╕ рдмрдирд╛рдпрд╛ .. рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдХреЛрдИ рдФрд░ рдЗрд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реИ

@danroliver рдиреЗ рдЖрдИрдмреАрдПрдо рд╕реЗ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЧрд╛рдЗрдб рдХреЗ рдмрд╣реБрдд рдХрд░реАрдм, рдмрд╣реБрдд рдЕрдЪреНрдЫреЗ рдФрд░ рд╕рдВрд░рдЪрд┐рдд рдирд┐рд░реНрджреЗрд╢ рджрд┐рдПред
[рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреНрд▓рд╕реНрдЯрд░ рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рдХрд╛ рдирд╡реАрдиреАрдХрд░рдг] IBM рд╕реЗ рд╡рд╛рд╣! (https://www.ibm.com/support/knowledgecenter/en/SSCKRH_1.1.0/platform/t_certificate_renewal.html)

рдЕрдЪреНрдЫрд╛! рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдпрд╣ рдХрдм рдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реБрдЖ рдерд╛ред рдЬрдм рдореИрдВ рдЗрд╕рд╕реЗ рдЧреБрдЬрд░ рд░рд╣рд╛ рдерд╛ рддреЛ рдореБрдЭреЗ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдпрд╣ рдорджрджрдЧрд╛рд░ рд▓рдЧрд╛ рд╣реЛрдЧрд╛ред

K8s рдореЗрдВ рдЯреЛрдХрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдиреЛрдЯ 1.13.x (рд╕рдВрднрд╡рддрдГ рдЕрдиреНрдп K8s рд╕рдВрд╕реНрдХрд░рдг)
рдпрджрд┐ рдЖрдкрдиреЗ рдЕрдкрдирд╛ CA рдкреНрд░рдорд╛рдгрдкрддреНрд░ ( /etc/kubernetes/pki/ca.crt ) рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдирд╛ рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЗ рдЯреЛрдХрди (рджреЗрдЦреЗрдВ kubectl -n kube-system get secret | grep token ) рдореЗрдВ рдкреБрд░рд╛рдирд╛ CA рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдЙрд╕реЗ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ред рдкрд░реЗрд╢рд╛рди рдЯреЛрдХрди рдореЗрдВ kube-proxy-token , coredns-token рдореЗрд░реЗ рдорд╛рдорд▓реЗ (рдФрд░ рдЕрдиреНрдп) рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдереЗ, рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рдХреНрд▓рд╕реНрдЯрд░-рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕реЗрд╡рд╛рдПрдВ K8s API рдХреЗ рд╕рд╛рде рдкреНрд░рдорд╛рдгрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рдереАрдВред
рдЯреЛрдХрди рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреБрд░рд╛рдиреЗ рдХреЛ рд╣рдЯрд╛ рджреЗрдВ, рдФрд░ рдЙрдиреНрд╣реЗрдВ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рд╡рд╣реА K8s API рд╕реЗ рдмрд╛рдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рдХрд┐рд╕реА рднреА рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдЬрд╛рддрд╛ рд╣реИ, рдЬреИрд╕реЗ PV рдкреНрд░реЛрд╡рд┐рдЬрдирд░, рдЗрдирдЧреНрд░реЗрдб рдХрдВрдЯреНрд░реЛрд▓рд░, cert-manager , рдЖрджрд┐ред

рдЗрд╕ рдмреЗрд╣рддрд░реАрди рдЪрд░рдг-рджрд░-рдЪрд░рдг рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, @danroliver! рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдорд▓реНрдЯреА-рдорд╛рд╕реНрдЯрд░ рдХреНрд▓рд╕реНрдЯрд░ (рдирдВрдЧреЗ рдзрд╛рддреБ, рд╡рд░реНрддрдорд╛рди рдореЗрдВ 1.11.1 рдкрд░ рдЪрд▓ рд░рд╣реЗ) рдкрд░ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдЕрдзрд┐рдорд╛рдирддрдГ рдмрд┐рдирд╛ рдбрд╛рдЙрдирдЯрд╛рдЗрдо рдХреЗред рдореЗрд░реЗ рдХрд░реНрдЯ рдЕрднреА рддрдХ рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рд╣реБрдП рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдпрд╣ рд╕реАрдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдРрд╕рд╛ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЙрдиреНрд╣реЗрдВ рдХреИрд╕реЗ рдкреБрди: рдЙрддреНрдкрдиреНрди/рдирд╡реАрдиреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рдПред

рд╣рд╛рдп @kcronin , рдЖрдкрдиреЗ рдорд▓реНрдЯреА-рдорд╛рд╕реНрдЯрд░ рдЬреИрд╕рд╛ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ 3 рдЖрдИрдкреА рд╣реИрдВ рдФрд░ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдирд╣реАрдВред

рдзрдиреНрдпрд╡рд╛рдж

@pmcgrath рдпрджрд┐ рдореЗрд░реЗ рдкрд╛рд╕ 3 рдорд╛рд╕реНрдЯрд░ рд╣реИрдВ, рддреЛ рдХреНрдпрд╛ рдореБрдЭреЗ рдкреНрд░рддреНрдпреЗрдХ рдорд╛рд╕реНрдЯрд░ рдХреЗ рдЪрд░рдгреЛрдВ рдХреЛ рджреЛрд╣рд░рд╛рдирд╛ рдЪрд╛рд╣рд┐рдП? рдпрд╛ рдХреНрдпрд╛ рд╣реИ. рдорд╛рдорд▓рд╛

@SuleimanWA , рдпрджрд┐ CA рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рдЖрдк admin.conf рд╕рд╛рде-рд╕рд╛рде CA рдлрд╝рд╛рдЗрд▓ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдЕрдиреНрдп рд╕рднреА рдЪреАрдЬрд╝реЛрдВ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдорд╛рд╕реНрдЯрд░ рдкрд░ рдкреНрд░рдорд╛рдгрдкрддреНрд░ (рдЖрджрд┐, рдХреНрдпреВрдмрд▓реЗрдЯ, рдЕрдиреБрд╕реВрдЪрдХ, рдЖрджрд┐ рдХреЗ рд▓рд┐рдП) рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд░рдгреЛрдВ рдХреЛ рджреЛрд╣рд░рд╛рдирд╛ рдЪрд╛рд╣рд┐рдП

@anapsix
рдореИрдВ рдПрдХ 1.13.x рдХреНрд▓рд╕реНрдЯрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реВрдБ, рдФрд░ apiserver рд░рд┐рдкреЛрд░реНрдЯ рдХрд░ рд░рд╣рд╛ рд╣реИ Unable to authenticate the request due to an error: [x509: certificate has expired or is not yet valid, x509: certificate has expired or is not yet valid] рдХреЗ рдмрд╛рдж рдореИрдВ рдЪрд▓рд╛рдХрд░ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдирдП рд╕рд┐рд░реЗ рд╕реЗ kubeadm alpha certs renew all ред

рдЯреЛрдХрди рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреБрд░рд╛рдиреЗ рдХреЛ рд╣рдЯрд╛ рджреЗрдВ, рдФрд░ рдЙрдиреНрд╣реЗрдВ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЖрдк рдХрд┐рд╕ рдЯреЛрдХрди рдХрд╛ рдЬрд┐рдХреНрд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рдХреНрдпрд╛ рдХреБрдмреЗрджрдо рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдпрд╛ рдореИрдВ рдЯреЛрдХрди рдХреЛ рдХреИрд╕реЗ рд╣рдЯрд╛ рд╕рдХрддрд╛ рд╣реВрдВ?

-----рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ-----
рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдпрд╣ рд░рд╣рд╕реНрдп рд╣реА рд╣реИред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреНрдпреВрдм-рдирд┐рдпрдВрддреНрд░рдХ рдирд╣реАрдВ рдерд╛ рдЗрд╕рд▓рд┐рдП рд░рд╣рд╕реНрдп рд╕реНрд╡рддрдГ рдЙрддреНрдкрдиреНрди рдирд╣реАрдВ рд╣реБрдЖ рдерд╛ред

рдЙрдЪреНрдЪ рд╕рдВрд╕реНрдХрд░рдг рдЙрдкрдпреЛрдЧя╝Ъ

рдХреБрдмреЗрджрдо рдЕрд▓реНрдлрд╛ рд╕реЗрд░реНрдЯреНрд╕ рд╕рднреА рдХреЛ рдирд╡реАрдиреАрдХреГрдд рдХрд░рддреЗ рд╣реИрдВ

рдЬрдм рдкрд╣рд▓реЗ рдорд╛рд╕реНрдЯрд░ рдиреЛрдб рдХрд╛ рдХреНрдпреВрдмрд▓реЗрдЯ рдбрд╛рдЙрди (systemctl рд╕реНрдЯреЙрдк рдХреНрдпреВрдмрд▓реЗрдЯ) рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЕрдиреНрдп рдорд╛рд╕реНрдЯрд░ рдиреЛрдб рдкрд╣рд▓реЗ рдорд╛рд╕реНрдЯрд░ рдиреЛрдб рдкрд░ CA рд╕реЗ рд╕рдВрдкрд░реНрдХ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдирд┐рдореНрди рд╕рдВрджреЗрд╢ рддрдм рддрдХ рдЖрдпрд╛ рдЬрдм рддрдХ рдореВрд▓ рдорд╛рд╕реНрдЯрд░ рдиреЛрдб рдкрд░ рдХреНрдпреВрдмрд▓реЗрдЯ рдСрдирд▓рд╛рдЗрди рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдЖрдпрд╛:

Kubectl рдиреЛрдбреНрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
рд╕рд░реНрд╡рд░ рд╕реЗ рддреНрд░реБрдЯрд┐ (рдЖрдВрддрд░рд┐рдХ рддреНрд░реБрдЯрд┐): рд╕рд░реНрд╡рд░ рдкрд░ рдПрдХ рддреНрд░реБрдЯрд┐ ("") рдиреЗ рдЕрдиреБрд░реЛрдз рдХреЛ рд╕рдлрд▓ рд╣реЛрдиреЗ рд╕реЗ рд░реЛрдХ рджрд┐рдпрд╛ рд╣реИ (рдиреЛрдбреНрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ)

рдХреНрдпрд╛ рдореВрд▓ рд╕реАрдП рдиреЛрдб рдкрд░ рдХреБрдмреНрд▓реЗрдЯ рдбрд╛рдЙрди рд╣реЛрдиреЗ рдкрд░ рд╕реАрдП рднреВрдорд┐рдХрд╛ рдХреЛ рдЕрдиреНрдп рдорд╛рд╕реНрдЯрд░ рдиреЛрдбреНрд╕ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ?

@anapsix
рдореИрдВ рдПрдХ 1.13.x рдХреНрд▓рд╕реНрдЯрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реВрдБ, рдФрд░ apiserver рд░рд┐рдкреЛрд░реНрдЯ рдХрд░ рд░рд╣рд╛ рд╣реИ Unable to authenticate the request due to an error: [x509: certificate has expired or is not yet valid, x509: certificate has expired or is not yet valid] рдХреЗ рдмрд╛рдж рдореИрдВ рдЪрд▓рд╛рдХрд░ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдирдП рд╕рд┐рд░реЗ рд╕реЗ kubeadm alpha certs renew all ред

рдЯреЛрдХрди рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреБрд░рд╛рдиреЗ рдХреЛ рд╣рдЯрд╛ рджреЗрдВ, рдФрд░ рдЙрдиреНрд╣реЗрдВ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЖрдк рдХрд┐рд╕ рдЯреЛрдХрди рдХрд╛ рдЬрд┐рдХреНрд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рдХреНрдпрд╛ рдХреБрдмреЗрджрдо рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдпрд╛ рдореИрдВ рдЯреЛрдХрди рдХреЛ рдХреИрд╕реЗ рд╣рдЯрд╛ рд╕рдХрддрд╛ рд╣реВрдВ?

-----рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ-----
рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдпрд╣ рд░рд╣рд╕реНрдп рд╣реА рд╣реИред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреНрдпреВрдм-рдирд┐рдпрдВрддреНрд░рдХ рдирд╣реАрдВ рдерд╛ рдЗрд╕рд▓рд┐рдП рд░рд╣рд╕реНрдп рд╕реНрд╡рддрдГ рдЙрддреНрдкрдиреНрди рдирд╣реАрдВ рд╣реБрдЖ рдерд╛ред

рдирдорд╕реНрддреЗ, рдореИрдВрдиреЗ рдпрд╣ рдХрд╛рд░реНрдп рдХрд┐рдпрд╛ рд╣реИ рд▓реЗрдХрд┐рди 1.13 рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рдирд╣реАрдВред рдХреНрдпрд╛ рдореИрдВ рдХреБрдЫ рдЪреАрдЬреЗрдВ рдкреВрдЫ рд╕рдХрддрд╛ рд╣реВрдВ рдпрджрд┐ рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдРрд╕рд╛ рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ?
рддреЛ рдореВрд▓ рд░реВрдк рд╕реЗ рдореИрдВ рдХрд░реВрдБрдЧрд╛:
kubeadm alpha certs рд╕рднреА рдХреЛ рдирд╡реАрдиреАрдХреГрдд рдХрд░рддрд╛ рд╣реИ (рдЬреЛ рдорд╛рд╕реНрдЯрд░реНрд╕ рдкрд░ рдХрдВрдЯреНрд░реЛрд▓ рдкреНрд▓реЗрди рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ uber pki/рдлреЛрд▓реНрдбрд░ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИ)ред
kubeadm init phase kubeconfig рдХреНрдпреВрдм рдХреЙрдиреНрдлрд┐рдЧ рдлрд╛рдЗрд▓ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред (рдорд╛рд╕реНрдЯрд░ рдФрд░ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдкрд░)ред
рд╕рднреА рдиреЛрдбреНрд╕ рдкрд░ рдХреНрдпреВрдмрд▓реЗрдЯ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░реЗрдВред

рдХреНрдпрд╛ рдореБрдЭреЗ рдЕрднреА рднреА рдПрдХ рдЯреЛрдХрди рдмрдирд╛рдиреЗ рдФрд░ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдиреЛрдбреНрд╕ рдкрд░ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ, рддреЛ рдХреНрдпрд╛ рдЖрдк рдЕрдкрдиреЗ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЧрдП рдЪрд░рдгреЛрдВ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

luxas picture luxas  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

imedaouidene picture imedaouidene  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ggee picture ggee  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jessfraz picture jessfraz  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

mlevesquedion picture mlevesquedion  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ