Advertisement

error: You must be logged in to the server (Unauthorized)报错处理

阅读量:

报错



k8s集群1.14.2 平常正常使用,某天突然无法部署新服务。

kubeadm报错
error: You must be logged in to the server (Unauthorized)

kubectl 出现错误




原因及处理方法



<1>权限问题,身份认证的文件未配置

常见于部署时或重新初始化后,$HOME/.kube/config文件没有得到替换



解决方法:

复制代码
    将新文件替换
    
    mkdir -p $HOME/.kube
    sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    sudo chown $(id -u):$(id -g) $HOME/.kube/config


<2>k8s证书到期了(常见问题)

常见于部署时就未调整证书日期,1年后证书过期,出现的异常



解决方法:

复制代码
    从部署时就调整证书时长:
    

or

复制代码
    升级证书
    
    
    1、查询当前证书过期时间
    kubeadm alpha certs check-expiration
    or
    openssl x509 -noout -dates -in /etc/kubernetes/pki/apiserver.crt
    or
    for i in `find /etc/kubernetes/pki -name "*.crt"`;do openssl x509 -in $i -text -noout| grep Not;echo $i;done
    
    
    Not Before 初始时间  
    Not After  过期时间
    
    主要有如下证书,需要注意:
    apiserver.crt                
    front-proxy-ca.crt          
    ca.crt                      
    apiserver-etcd-client.crt
    apiserver-kubelet-client.crt    
    front-proxy-client.crt      
    
    etcd/server.crt              
    etcd/ca.crt                 
    etcd/peer.crt                
    etcd/healthcheck-client.crt  
    
    
    
    2、备份
    cp -r /etc/kubernetes /etc/kubernetes_back
    
    
    3、生成集群配置文件
    kubeadm config view > /root/cluster.yaml
    
    
    4、续期证书
    kubeadm alpha certs renew all --config=/root/cluster.yaml
    (拷贝新证书到其他master节点)
    
    
    5、重新生成配置文件
    cd /etc/kubernetes
    ls *conf
    rm -rf *conf
    kubeadm init phase kubeconfig all --config=/root/cluster.yaml
    
    
    6.复制新的认证文件(在所有master上执行,使证书生效)
    
    rm -rf ~/.kube
    mkdir -p $HOME/.kube
    sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    sudo chown $(id -u):$(id -g) $HOME/.kube/config
    
    
    7、重启kubelet、apiserver、controller-manager、scheduler、etcd(在所有master上执行,使证书生效)
    docker ps | egrep "etcd|kube-apiserver|kube-controller-manager|kube-scheduler" | grep -v pause | awk '{print $1}' | xargs -i docker restart {}
    
    
    8、检查每个master的证书有效期
    for i in `find /etc/kubernetes/pki -name "*.crt"`;do openssl x509 -in $i -text -noout| grep Not;echo $i;done


全部评论 (0)

还没有任何评论哟~