kubeadm更新kubernetes集群证书
接着上面阿里云上的kubernetes集群,一步步搭建服务
因为kubernetes要上云测试了。不想到时候突然因为证书导致服务挂掉,挨批。就把证书更新一下,感觉10年差不多了。
查看证书过期时间
cd /etc/kubernetes/pki
ls | grep crt | xargs -I {} openssl x509 -text -in {} | grep "Not After"
需要更新证书有效期 需要先安装go环境
yum -y install wget
cd /opt
wget https://dl.google.com/go/go1.13.6.linux-amd64.tar.gz
tar zxvf go1.13.6.linux-amd64.tar.gz
mv go /usr/local/
cat >> /etc/profile <<EOF
export PATH=$PATH:/usr/local/go/bin
EOF
source /etc/profile
go version
安装git 并下载对应版本的kubernetes源码
下载这个包并上传至服务器的/opt下
链接:https://pan.baidu.com/s/1CrcxXtox8aIkE6GRipnJlg 密码:ld11
yum -y install git
cd /opt
# 上传并解压百度云下载的文件
# 直接下载上传指定release的包也ok
# https://codeload.github.com/kubernetes/kubernetes/zip/release-1.14
unzip kubernetes-release-1.14.zip && cd kubernetes-release-1.14
# git clone https://github.com/kubernetes/kubernetes.git
# git checkout -b remotes/origin/release-1.14.2
修改staging/src/k8s.io/client-go/util/cert/cert.go
const duration365d = time.Hour * 24 * 365 * 10
修改cmd/kubeadm/app/util/pkiutil/pki_helpers.go
duration365d = time.Hour * 24 * 365 * 10
编译kubeadm
make WHAT=cmd/kubeadm GOFLAGS=-v
备份原来的kubeadm和证书 并替换
cp -r /usr/bin/kubeadm /opt/
rm -rf /usr/bin/kubeadm
cp _output/bin/kubeadm /usr/bin/
cp -r /etc/kubernetes/pki /etc/kubernetes/pki.backup
cd /etc/kubernetes/pki
kubeadm alpha certs renew all --config=/root/kubeadm-config.yaml
这里一定要指定配置文件 否则或报错
成功的结果如下
将编译出来的kubeadm 拷贝到其余master节点执行 renew all的命令即可
至此全部替换完成
这里有个小坑 就是更新之后 如果有新的node要加入集群 生成新的token的时候会报错
this version of kubeadm only supports deploying clusters with the control plane version >= 1.13.0. Current version: v0.0.0-master+c8b135d0b49c4
这时需要用老的kubeadm 生成一下 然后再加入
全部加入成功