证书过期
利用kubeadm安装后发现ca的证书过期时间是十年,但是由ca签发的如apiserver.crt的证书过期时间都是一年,这就尴尬了。
- 如果已经创建后的集群到了一年执行kubectl命令会出现:
1 | Unable to connect to the server: x509: certificate has expired or is not yet valid |
此时需要手动更新证书。
- 如果我们还没开始搭建,在搭建集群前我们可以直接修改相关源码解决这个问题。
拉取kubernetes的源码
1 | git clone https://github.com/kubernetes/kubernetes.git |
切换版本
1 | cd kubernetes && git checkout -b remotes/origin/release-1.11 v1.11.0 |
安装Go环境
1 | wget https://dl.google.com/go/go1.10.2.linux-amd64.tar.gz |
修改源码
1 | cd ~/kubernetes/staging/src/k8s.io/client-go/util/cert/ |
编译Go
1 | cd /kubernetes/ && make WHAT=cmd/kubeadm |
查看编译后的文件
1 | ll ~/kubernetes/_output/bin/kubeadm |
替换kubeadm
1 | mv /usr/bin/kubeadm /usr/bin/kubeadm_backup |