рдпрджрд┐ рд╣рд╛рдБ, рддреЛ рдЖрдкрдХреЛ рд╣рдорд╛рд░реА рд╕рдорд╕реНрдпрд╛ рдирд┐рд╡рд╛рд░рдг рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛ рдФрд░ рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рд╕рд╣рд╛рдпрддрд╛ рдЪреИрдирд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, http://kubernetes.io/docs/troubleshooting/ рджреЗрдЦреЗрдВ
рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдЗрд╕ рдЕрдиреБрднрд╛рдЧ рдХреЛ рд╣рдЯрд╛ рджреЗрдВ рдФрд░ рдЬрд╛рд░реА рд░рдЦреЗрдВред
рдпрджрд┐ рдЖрдкрдХреЛ рдХреЛрдИ рдбреБрдкреНрд▓реАрдХреЗрдЯ рдорд┐рд▓рд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рд╡рд╣рд╛рдВ рдЙрддреНрддрд░ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЗрд╕ рдкреГрд╖реНрда рдХреЛ рдмрдВрдж рдХрд░ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдпрджрд┐ рдЖрдкрдХреЛ рдХреЛрдИ рдбреБрдкреНрд▓реАрдХреЗрдЯ рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИ, рддреЛ рдЗрд╕ рдЕрдиреБрднрд╛рдЧ рдХреЛ рд╣рдЯрд╛ рджреЗрдВ рдФрд░ рдЬрд╛рд░реА рд░рдЦреЗрдВред
рдПрдХ рдЪреБрдиреЗрдВ: рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ рдпрд╛ рд╕реБрд╡рд┐рдзрд╛ рдЕрдиреБрд░реЛрдз
рдХреБрдмреЗрджрдо рд╕рдВрд╕реНрдХрд░рдг ( kubeadm version
): 1.7.5
рдкрд░реНрдпрд╛рд╡рд░рдг :
kubectl version
): 1.7.5uname -a
):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 рдкрд░ рдЬрд╛рдПрдВред
$ 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 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
$ 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
$ 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
рдпрд╣рд╛рдБ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдиреЛрдЯ рд╣реИред рдпрджрд┐ рдЖрдк 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"
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
$ sudo /sbin/shutdown -r now
$ kubectl get nodes
$ kubeadm token list
рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╡реИрдз рдЯреЛрдХрди рдирд╣реАрдВ рд╣реИред рдЖрдк рдЗрд╕рдХреЗ рд╕рд╛рде рдПрдХ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ:
$ kubeadm token create
рдЯреЛрдХрди рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП 6dihyb.d09sbgae8ph2atjw
$ 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>
$ kubectl get nodes
рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдЖрдкрдХреЛ рд╡рд╣реАрдВ рдорд┐рд▓реЗрдЧрд╛ рдЬрд╣рд╛рдВ рдЖрдкрдХреЛ @davidcomeyne рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдзрдиреНрдпрд╡рд╛рдж рдПрдХ рдЧреБрдЪреНрдЫрд╛ @danroliver !
рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдпрд╣ рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ рдФрд░ рдЕрдкрдиреЗ рдирд┐рд╖реНрдХрд░реНрд╖ рдпрд╣рд╛рдВ рдкреЛрд╕реНрдЯ рдХрд░реВрдВрдЧрд╛ред
@danroliver рдзрдиреНрдпрд╡рд╛рдж! рдмрд╕ рдЗрд╕реЗ рдкреБрд░рд╛рдиреЗ рд╕рд┐рдВрдЧрд▓-рдиреЛрдб рдХреНрд▓рд╕реНрдЯрд░ рдкрд░ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдЗрд╕рд▓рд┐рдП 7 рддрдХ рдХрджрдо рдЙрдард╛рдПред рдЗрд╕рдиреЗ рдХрд╛рдо рдХрд┐рдпрд╛ред
@danroliver рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ред рдзрдиреНрдпрд╡рд╛рджред
рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛, рдПрдХ рдирдпрд╛ рдХреНрд▓рд╕реНрдЯрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рд▓реЗрдХрд┐рди рдЦреБрд╢реА рд╣реИ рдХрд┐ рдЗрд╕рдиреЗ рджреВрд╕рд░реЛрдВ рдХреА рдорджрдж рдХреА!
рдзрдиреНрдпрд╡рд╛рдж @danroliver ред рдЗрд╕рд╕реЗ рдореЗрд░рд╛ рдХрд╛рдо рдмрдирддрд╛ рд╣реИ
рдФрд░ рдореЗрд░рд╛ рдХреБрдмреЗрджрдо рд╕рдВрд╕реНрдХрд░рдг 1.8.5 . рд╣реИ
рдзрдиреНрдпрд╡рд╛рдж @danroliver рдПрдХ рд╕рд╛рде рдХрджрдо рд░рдЦ рд░рд╣рд╛ рд╣реИред рдореБрдЭреЗ рдЖрдкрдХреЗ рдХрджрдореЛрдВ рдореЗрдВ рдЫреЛрдЯреЗ-рдЫреЛрдЯреЗ рдЬреЛрдбрд╝ рдХрд░рдиреЗ рдереЗред рдореЗрд░рд╛ рдХреНрд▓рд╕реНрдЯрд░ v1.9.3 рдЪрд▓ рд░рд╣рд╛ рд╣реИ рдФрд░ рдпрд╣ рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реЗ рджреВрд░ рдПрдХ рдирд┐рдЬреА рдбреЗрдЯрд╛рд╕реЗрдВрдЯрд░ рдореЗрдВ рд╣реИред
config.yml
редapiVersion: kubeadm.k8s.io/v1alpha1
kind: MasterConfiguration
api:
advertiseAddress: <master-ip>
kubernetesVersion: 1.9.3
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
--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
рдореБрдЭреЗ рд╣рд┐рд▓рдирд╛ рдкрдбрд╝рд╛
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 рдХреНрд▓рд╕реНрдЯрд░ рдкрд░ рднреА рдирд┐рдкрдЯрдирд╛ рдерд╛, рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдкреНрд░рдорд╛рдг рдкрддреНрд░ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдереЗ, рдЗрд╕рд▓рд┐рдП рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдПрдХ рдПрдХрд▓ рдорд╛рд╕реНрдЯрд░ \ рдирд┐рдпрдВрддреНрд░рдг рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛, рдЗрд╕рд▓рд┐рдП рдПрдЪрдП рд╕реЗрдЯрдЕрдк рдпрд╛ рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рдереА
рдкреАрдЫреЗ рдХреЗ рдЪрд░рдгреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдиреЗ рдКрдкрд░ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рд╣реИ
рдЪреВрдВрдХрд┐ рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ рдХреА рд╕рдордп рд╕реАрдорд╛ рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рд╣реБрдИ рдереА, рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╡рд░реНрдХрд▓реЛрдб рдерд╛ рдЬрд┐рд╕реЗ рдореИрдВ рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛
рдЖрджрд┐ рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рдереА рдпрд╛ рддреЛ рдЗрд╕ рд╕рдордп рдЫреЛрдбрд╝реЗ рдЧрдП рд╣реИрдВ
рддреЛ рдЙрдЪреНрдЪ рд╕реНрддрд░ рдкрд░ рдореБрдЭреЗ рдХрд░рдирд╛ рдкрдбрд╝рд╛
# 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 рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧреА
$ 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>
$ 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 , рдЖрдкрдиреЗ рдорд▓реНрдЯреА-рдорд╛рд╕реНрдЯрд░
рдзрдиреНрдпрд╡рд╛рдж
@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 рдХреНрдпреВрдм рдХреЙрдиреНрдлрд┐рдЧ рдлрд╛рдЗрд▓ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред (рдорд╛рд╕реНрдЯрд░ рдФрд░ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдкрд░)ред
рд╕рднреА рдиреЛрдбреНрд╕ рдкрд░ рдХреНрдпреВрдмрд▓реЗрдЯ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░реЗрдВред
рдХреНрдпрд╛ рдореБрдЭреЗ рдЕрднреА рднреА рдПрдХ рдЯреЛрдХрди рдмрдирд╛рдиреЗ рдФрд░ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдиреЛрдбреНрд╕ рдкрд░ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ, рддреЛ рдХреНрдпрд╛ рдЖрдк рдЕрдкрдиреЗ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЧрдП рдЪрд░рдгреЛрдВ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдпрджрд┐ рдЖрдк 1.8 рд╕реЗ рдкрд╣рд▓реЗ рдХреБрдмреЗрджрдо рдХреЗ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬрд╣рд╛рдВ рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ рд░реЛрдЯреЗрд╢рди # 206 рдХреЛ рдЬрдЧрд╣ рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рдерд╛ ( рдмреАрдЯрд╛ рдлреАрдЪрд░ рдХреЗ рд░реВрдк
рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдорд╛рд╕реНрдЯрд░ рдиреЛрдб рдореЗрдВ SSH рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдпрджрд┐ рдЖрдк рдХреБрдмреЗрджрдо>= 1.8 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддреЛ 2 рдкрд░ рдЬрд╛рдПрдВред
рдпрд╣рд╛рдБ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдиреЛрдЯ рд╣реИред рдпрджрд┐ рдЖрдк 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
рдореЗрдВ рдкрд╛рд░рд┐рдд рдорд╛рдиреЛрдВ рдХреЛ рдЕрдкрдиреЗ рдкрд░рд┐рд╡реЗрд╢ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдорд╛рдиреЛрдВ рд╕реЗ рдмрджрд▓рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВредkubectl
рдЖрдкрдХреА рдХреЙрдиреНрдлрд┐рдЧ рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдЬрдЧрд╣ рдкрд░ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИредрдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╡реИрдз рдЯреЛрдХрди рдирд╣реАрдВ рд╣реИред рдЖрдк рдЗрд╕рдХреЗ рд╕рд╛рде рдПрдХ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ:
рдЯреЛрдХрди рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП 6dihyb.d09sbgae8ph2atjw
рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдЖрдкрдХреЛ рд╡рд╣реАрдВ рдорд┐рд▓реЗрдЧрд╛ рдЬрд╣рд╛рдВ рдЖрдкрдХреЛ @davidcomeyne рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред