Kubernetes: expired certificate

前端 未结 4 1686
-上瘾入骨i
-上瘾入骨i 2020-12-02 21:20

Our Kubernetes 1.6 cluster had certificates generated when the cluster was built on April 13th, 2017.

On December 13th, 2017, our cluster was upgraded to version 1.8

4条回答
  •  不思量自难忘°
    2020-12-02 22:01

    I think you need re-generate the apiserver certificate /etc/kubernetes/pki/apiserver.crt you can view current expire date like this.

    openssl x509 -in /etc/kubernetes/pki/apiserver.crt -noout -text |grep ' Not '
                Not Before: Dec 20 14:32:00 2017 GMT
                Not After : Dec 20 14:32:00 2018 GMT
    

    Here is the steps I used to regenerate the certificates on v1.11.5 cluster. compiled steps from here https://github.com/kubernetes/kubeadm/issues/581


    to check all certificate expire date:

    find /etc/kubernetes/pki/ -type f -name "*.crt" -print|egrep -v 'ca.crt$'|xargs -L 1 -t  -i bash -c 'openssl x509  -noout -text -in {}|grep After'
    

    Renew certificate on Master node.

    *) Renew certificate

    mv /etc/kubernetes/pki/apiserver.key /etc/kubernetes/pki/apiserver.key.old
    mv /etc/kubernetes/pki/apiserver.crt /etc/kubernetes/pki/apiserver.crt.old
    mv /etc/kubernetes/pki/apiserver-kubelet-client.crt /etc/kubernetes/pki/apiserver-kubelet-client.crt.old
    mv /etc/kubernetes/pki/apiserver-kubelet-client.key /etc/kubernetes/pki/apiserver-kubelet-client.key.old
    mv /etc/kubernetes/pki/front-proxy-client.crt /etc/kubernetes/pki/front-proxy-client.crt.old
    mv /etc/kubernetes/pki/front-proxy-client.key /etc/kubernetes/pki/front-proxy-client.key.old
    
    
    kubeadm alpha phase certs apiserver  --config /root/kubeadm-kubetest.yaml
    kubeadm alpha phase certs apiserver-kubelet-client
    kubeadm alpha phase certs front-proxy-client
    
    mv /etc/kubernetes/pki/apiserver-etcd-client.crt /etc/kubernetes/pki/apiserver-etcd-client.crt.old
    mv /etc/kubernetes/pki/apiserver-etcd-client.key /etc/kubernetes/pki/apiserver-etcd-client.key.old
    kubeadm alpha phase certs  apiserver-etcd-client
    
    
    mv /etc/kubernetes/pki/etcd/server.crt /etc/kubernetes/pki/etcd/server.crt.old
    mv /etc/kubernetes/pki/etcd/server.key /etc/kubernetes/pki/etcd/server.key.old
    kubeadm alpha phase certs  etcd-server --config /root/kubeadm-kubetest.yaml
    
    mv /etc/kubernetes/pki/etcd/healthcheck-client.crt /etc/kubernetes/pki/etcd/healthcheck-client.crt.old
    mv /etc/kubernetes/pki/etcd/healthcheck-client.key /etc/kubernetes/pki/etcd/healthcheck-client.key.old
    kubeadm alpha phase certs  etcd-healthcheck-client --config /root/kubeadm-kubetest.yaml
    
    
    mv /etc/kubernetes/pki/etcd/peer.crt /etc/kubernetes/pki/etcd/peert.crt.old
    mv /etc/kubernetes/pki/etcd/peer.key /etc/kubernetes/pki/etcd/peer.key.old
    kubeadm alpha phase certs  etcd-peer --config /root/kubeadm-kubetest.yaml
    
    *)  Backup old configuration files
    mv /etc/kubernetes/admin.conf /etc/kubernetes/admin.conf.old
    mv /etc/kubernetes/kubelet.conf /etc/kubernetes/kubelet.conf.old
    mv /etc/kubernetes/controller-manager.conf /etc/kubernetes/controller-manager.conf.old
    mv /etc/kubernetes/scheduler.conf /etc/kubernetes/scheduler.conf.old
    
    kubeadm alpha phase kubeconfig all  --config /root/kubeadm-kubetest.yaml
    
    mv $HOME/.kube/config .$HOMEkube/config.old
    cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    chown $(id -u):$(id -g) $HOME/.kube/config
    chmod 777 $HOME/.kube/config
    export KUBECONFIG=.kube/config
    

    Reboot the node and check the logs for etcd, kubeapi and kubelet.

    Note: Remember to update your CI/CD job kubeconfig file. If you’re using helm command test that also.

提交回复
热议问题