k8s证书续签及异常:You must be logged in to the server

1、证书续签(k8s master节点执行):  

# 备份kubernetes配置
sudo cp -r /etc/kubernetes  /etc/kubernetes_bak
# 更新证书
sudo kubeadm certs renew all
# 查看证书过期时间
sudo kubeadm certs check-expiration
#删除conf文件
sudo rm -rf /etc/kubernetes/*.conf 
#重新生成conf文件
sudo kubeadm init phase kubeconfig all
#查看当前服务的k8s conf文件路径配置
echo $KUBECONFIG
#备份并用新的替换k8s conf文件
sudo mv $KUBECONFIG ./config.bak
sudo cp -i /etc/kubernetes/admin.conf $KUBECONFIG
sudo chown $(id -u):$(id -g) $KUBECONFIG
#重启服务
docker ps | egrep "etcd|kube-apiserver|kube-controller-manager|kube-scheduler" | grep -v pause | awk '{print $1}' | xargs -i docker restart {}

 如果 echo $KUBECONFIG 为空,则执行命令:

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
echo "export KUBECONFIG=$HOME/.kube/config" >> ~/.bash_profile
source ~/.bash_profile

2、k8s异常:You must be logged in to the server

解决方法就是上面证书续签的后半部分,将原来的conf文件备份并删除,重新生成后再重启使用即可。特别需要注意 $KUBECONFIG 配置的路径,只有用新生成的admin.conf 文件替换改配置上的旧文件,才能解决该异常

#删除conf文件
sudo rm -rf /etc/kubernetes/*.conf 
#重新生成conf文件
sudo kubeadm init phase kubeconfig all
#以上命令在k8s master节点执行,以下命令在master及其他分节点都要执行
#查看当前服务的k8s conf文件路径配置 echo
$KUBECONFIG #备份并用新的替换k8s conf文件 sudo mv $KUBECONFIG ./config.bak
#拷贝admin.conf文件至 $KUBECONFIG ,如果是其他分节点,则使用scp拷贝 master 节点的/etc/kubernetes/admin.conf sudo cp -i /etc/kubernetes/admin.conf $KUBECONFIG sudo chown $(id -u):$(id -g) $KUBECONFIG #重启服务 docker ps | egrep "etcd|kube-apiserver|kube-controller-manager|kube-scheduler" | grep -v pause | awk '{print $1}' | xargs -i docker restart {}

 

posted @ 2023-05-11 14:24  思无  阅读(494)  评论(0编辑  收藏  举报