k8s集群证书延期

延期前有几个前提条件

1、kubeadm需要调整,修改证书过期时间,把时间延长到100年(如果不调整,就是默认1年)

2、ca.crt我这里是调整后的100年,在这就没在做调整

补充;kubelet延期未涉及

本次我的集群证书延期,是在这2个前提条件完全满足的情况下进行的

具体操作如下:

1、备份k8s全目录,/etc/kubernetes

cp -r /etc/kubernetes  /etc/kubernetes-bak

2、备份kubelet的目录(当时备份时,由于是第一次搞,考虑到万一kubelet受到影响,崩溃了怎么办,索性一股脑的全部备份)

cp -r /var/lib/kubelet /var/lib/kubelet-bak

3、将集群现有的kubeadm的配置文件导出,最好是什么都不变,保持一致

kubectl describe cm -n kube-system kubeadm-config > ./kubeadm-config.yaml

修改kubeadm-config.yaml文件

apiServer:
  extraArgs:
    authorization-mode: Node,RBAC
  timeoutForControlPlane: 4m0s
apiVersion: kubeadm.k8s.io/v1beta2
certificatesDir: /etc/kubernetes/pki
clusterName: kubernetes
controlPlaneEndpoint: 172.22.xx.xx:6443  //这里需要调整
controllerManager: {}
dns:
  type: CoreDNS
etcd:
  local:
    dataDir: /var/lib/etcd
imageRepository: registry.cn-hangzhou.aliyuncs.com/google_containers  /这里需要调整为自己的仓库地址
kind: ClusterConfiguration
kubernetesVersion: v1.17.0  //调整为自己的版本
networking:
  dnsDomain: cluster.local   
  serviceSubnet: 10.96.0.0/16  //调整为自己的网段
scheduler: {}

4、重新生成证书

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

5、检查证书期限是否已经延期为100年

kubeadm alpha certs check-expiration

6、需要更新配置文件

mv /etc/kubernetes/*.conf   /root/
kubeadm init phase kubeconfig all --config=/root/kubeadm-config.yaml

7、然后重启 kube-apiserver,etcd,scheduler,controller 容器或者重启kubelet

注意:我没有遇到下边问题,但我还是贴出来。万一有人遇到了呢

如果重启kubelet后发现出现这样得报错  error: You must be logged in to the server (Unauthorized)。还得更改下权限(因为重新为组件分配了证书)

 echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile                 

source ~/.bash_profile

如果是非root用户:

mkdir -p $HOME/.kube          

sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config         

sudo chown $(id -u):$(id -g) $HOME/.kube/config

8、最后检查集群是否正常。

Logo

开源、云原生的融合云平台

更多推荐