ถ้าท่านที่รัน Kubernetes นานพอ ก็จะได้เจอปัญหานี้ พอดี cluster ผมใช้งานมาครบ 365 วันนี้พอดี เราก็มือใหม่ซะด้วยสิ ทีนี้ ว้าวุ่นเลย อิอิ
ปัญหา
เมื่อใช้คำสั่งต่าง ๆ บน control plane แล้วได้ error ประมาณนี้
Unable to connect to the server: x509: certificate has expired or is not yet valid:
สาเหตุ
Certificate ของ kubernetes cluster มีวันหมดอายุ และวันนี้มันหมดอายุไปแล้ว
วิธีตรวจสอบ
kubeadm certs check-expiration
วิธีแก้ไข
kubeadm certs renew all
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
จาก Managing Expired Certificates in Kubernetes Clusters บอกว่า ให้ restart container ที่เกี่ยวข้องกับ
kube-apiserver, kube-scheduler, kube-controller-manager, and etcd
โดยใช้คำสั่ง
for i in $(crictl ps 2>/dev/null | egrep 'etcd|api|sch|control'| cut -d' ' -f 1) ; do crictl stop $i ;done
ตรวจสอบผล
kubeadm certs check-expiration
หวังว่าจะเป็นประโยชน์