K8s You must be logged in to the server (Unauthorized)|certificate has expired or is not yet valid.


在使用Kubernetes 集群时有个大坑,一些证书的有效期是一年,官方考虑到安全性希望开发者在一年内,能及时更新Kubernetes的版本。更新之后有效期会再次刷新。

Kubernetes版本 1.14.2
Ubuntu版本 16.04

  1. 原因证书过期问题
certificate has expired or is not yet valid.

2.原因应该是 /etc/kubernetes/admin.conf 也就是 $HOME/.kube/config 过期的原因。在终端操作命令使用的认证证书,根据/etc/kubernetes/pki/ca.crt生成的。所以这个也需要更新.

kubectl get pods 
`You must be logged in to the server (Unauthorized)`

1、各个证书过期时间

/etc/kubernetes/pki/apiserver.crt                #1年有效期
/etc/kubernetes/pki/front-proxy-ca.crt           #10年有效期
/etc/kubernetes/pki/ca.crt                       #10年有效期
/etc/kubernetes/pki/apiserver-etcd-client.crt    #1年有效期
/etc/kubernetes/pki/front-proxy-client.crt       #1年有效期
/etc/kubernetes/pki/etcd/server.crt              #1年有效期
/etc/kubernetes/pki/etcd/ca.crt                  #10年有效期
/etc/kubernetes/pki/etcd/peer.crt                #1年有效期
/etc/kubernetes/pki/etcd/healthcheck-client.crt  #1年有效期
/etc/kubernetes/pki/apiserver-kubelet-client.crt #1年有效期

2、获取集群的配置文件

  1. 可以使用当时 kubeadm init --config=kubeadm-config.yaml 时的配置文件。
  2. 使用命令获取
  kubeadm config view > /tmp/kubeadm-config.yaml 

3、备份

  1. 备份原有证书
cp -rp /etc/kubernetes /etc/kubernetes.bak
  1. 备份etcd数据目录
cp -r /var/lib/etcd /var/lib/etcd.bak
  1. 备份配置信息
  mkdir /etc/kubernetes/conf-backup
  mv /etc/kubernetes/admin.conf kubelet.conf scheduler.conf controller-manager.conf conf-backup/

4、更新证书

kubeadm alpha certs renew all --config=/tmp/kubeadm-config.yaml

5、更新配置文件

admin.conf 是给kubectl操作时用的,根据car.crt生成 所以需要更新

kubeadm init phase kubeconfig all --config /tmp/kubeadm-config.yaml

6、在三台Master上执行重启kube-apiserver,kube-controller,kube-scheduler,etcd这4个容器,使其生效

docker ps |grep -E 'k8s_kube-apiserver|k8s_kube-controller-manager|k8s_kube-scheduler|k8s_etcd_etcd' | awk -F ' ' '{print $1}' |xargs docker restart

# 重启kubelet
systemctl restart kubelet

7、更换kubectl 操作的配置信息

rm -rf $HOME/.kube
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

8、查看各个证书过期时间

#查看pod
kubectl get pods
# 查看各证书过期时间
for item in `find /etc/kubernetes/pki -maxdepth 2 -name "*.crt"`;do openssl x509 -in $item -text -noout| grep Not;echo ======================$item===============;done
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值