Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
kubernetes:无法加载现有证书apiserver etcd客户端:_Kubernetes_Kubectl_Kubespray - Fatal编程技术网

kubernetes:无法加载现有证书apiserver etcd客户端:

kubernetes:无法加载现有证书apiserver etcd客户端:,kubernetes,kubectl,kubespray,Kubernetes,Kubectl,Kubespray,我的群集证书已过期,现在无法执行任何kubectls命令 root@node1:~# kubectl get ns Unable to connect to the server: x509: certificate has expired or is not yet valid root@node1:~# 我使用Kubespray创建了这个集群,kubeadm版本是v1.16.3,kubernetesVersion版本是v1.16.3 root@node1:~# kubeadm alpha

我的群集证书已过期,现在无法执行任何kubectls命令

root@node1:~# kubectl get ns
Unable to connect to the server: x509: certificate has expired or is not yet valid
root@node1:~# 
我使用Kubespray创建了这个集群,kubeadm版本是v1.16.3,kubernetesVersion版本是v1.16.3

root@node1:~# kubeadm alpha certs check-expiration
failed to load existing certificate apiserver-etcd-client: open /etc/kubernetes/pki/apiserver-etcd-client.crt: no such file or directory
To see the stack trace of this error execute with --v=5 or higher
root@node1:~# 
并且发现/etc/kubernetes/pki目录中缺少apiserver-etcd-client.crt和apiserver-etcd-client.key文件

root@node1:/etc/kubernetes/pki# ls -ltr
total 72
-rw------- 1 root root 1679 Jan 24 2020 ca.key
-rw-r--r-- 1 root root 1025 Jan 24 2020 ca.crt
-rw-r----- 1 root root 1679 Jan 24 2020 apiserver.key.old
-rw-r----- 1 root root 1513 Jan 24 2020 apiserver.crt.old
-rw------- 1 root root 1679 Jan 24 2020 apiserver.key
-rw-r--r-- 1 root root 1513 Jan 24 2020 apiserver.crt
-rw------- 1 root root 1675 Jan 24 2020 apiserver-kubelet-client.key
-rw-r--r-- 1 root root 1099 Jan 24 2020 apiserver-kubelet-client.crt
-rw-r----- 1 root root 1675 Jan 24 2020 apiserver-kubelet-client.key.old
-rw-r----- 1 root root 1099 Jan 24 2020 apiserver-kubelet-client.crt.old
-rw------- 1 root root 1679 Jan 24 2020 front-proxy-ca.key
-rw-r--r-- 1 root root 1038 Jan 24 2020 front-proxy-ca.crt
-rw-r----- 1 root root 1675 Jan 24 2020 front-proxy-client.key.old
-rw-r----- 1 root root 1058 Jan 24 2020 front-proxy-client.crt.old
-rw------- 1 root root 1675 Jan 24 2020 front-proxy-client.key
-rw-r--r-- 1 root root 1058 Jan 24 2020 front-proxy-client.crt
-rw------- 1 root root 451 Jan 24 2020 sa.pub
-rw------- 1 root root 1679 Jan 24 2020 sa.key
root@node1:/etc/kubernetes/pki#
我尝试了以下命令,但没有任何效果,并且显示错误:

#sudo kubeadm alpha certs renew all
#kubeadm alpha phase certs apiserver-etcd-client
#kubeadm alpha certs apiserver-etcd-client --config /etc/kubernetes/kubeadm-config.yaml
库贝斯雷司令部:

#ansible-playbook -i inventory/mycluster/hosts.yaml --become --become-user=root cluster.yml
上述命令以以下错误结束:

失败!=>{“尝试”:5,“更改”:true,“cmd”:[“/usr/local/bin/kubeadm”、“--kubeconfig”、“/etc/kubernetes/admin.conf”、“token”、“create”]、“delta”:“0:01:15.058756”、“end”:“2021-02-05 13:32:51.656901”、“msg”:“非零返回代码”、“rc”:1、“start”:“2021-02-05 13:31:36.598145”、“stderr”:“等待条件超时\n若要查看此错误的堆栈跟踪,请使用--v=5或更高版本执行”,“标准输出线”:[“等待条件超时”,“若要查看此错误的堆栈跟踪,请使用--v=5或更高版本执行”,“标准输出线”:[])


首先,您需要续订过期的证书,请使用
kubeadm
执行此操作:

kubeadm alpha certs renew apiserver
kubeadm alpha certs renew apiserver-kubelet-client
kubeadm alpha certs renew front-proxy-client
接下来生成新的
kubeconfig
文件:

kubeadm alpha kubeconfig user --client-name kubernetes-admin --org system:masters > /etc/kubernetes/admin.conf
kubeadm alpha kubeconfig user --client-name system:kube-controller-manager > /etc/kubernetes/controller-manager.conf
# instead of $(hostname) you may need to pass the name of the master node as in "/etc/kubernetes/kubelet.conf" file.
kubeadm alpha kubeconfig user --client-name system:node:$(hostname) --org system:nodes > /etc/kubernetes/kubelet.conf 
kubeadm alpha kubeconfig user --client-name system:kube-scheduler > /etc/kubernetes/scheduler.conf
复制新的
kubernetes管理
kubeconfig
文件:

cp /etc/kubernetes/admin.conf ~/.kube/config
最后,您需要重新启动:
kube-apiserver
kube-controller-manager
kube-scheduler
。您可以使用以下命令或只需重新启动主节点:

sudo kill -s SIGHUP $(pidof kube-apiserver)
sudo kill -s SIGHUP $(pidof kube-controller-manager)
sudo kill -s SIGHUP $(pidof kube-scheduler)
此外,你可以找到更多的信息,并可能对你有很大的帮助

sudo kill -s SIGHUP $(pidof kube-apiserver)
sudo kill -s SIGHUP $(pidof kube-controller-manager)
sudo kill -s SIGHUP $(pidof kube-scheduler)