1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
| 2.1、查看当前证书时间 kubeadm certs check-expiration
2.2、下载K8S源码 git clone https://github.com/kubernetes/kubernetes.git
2.3、查看K8s版本 # kubectl version
2.4、切换版本修改源码 cd kubernetes git checkout v1.27.2 git branch #查看当前版本分支 git branch -r #查看远程版本分支
vim cmd/kubeadm/app/constants/constants.go,找到CertificateValidity,修改如下 ... CertificateValidity = time.Hour * 24 * 365 * 10 ... vim staging/src/k8s.io/client-go/util/cert/cert.go ... const duration365d = time.Hour * 24 * 365 * 10 ... vim hack/lib/version.sh #为了打包后kubeadm的版本不是脏版本(-dirty),脏版本的kubeadm不能升级 ... if git_status=$("${git[@]}" status --porcelain 2>/dev/null) && [[ -z ${git_status} ]]; then KUBE_GIT_TREE_STATE="clean" else #KUBE_GIT_TREE_STATE="dirty" KUBE_GIT_TREE_STATE="clean" fi ...
2.5、安装编译软件 yum -y install gcc automake autoconf libtool make
安装go编译环境,这里就直接使用yum安装 查看go是否安装过 # go env 查看yum的Golang # yum info golang 安装golang yum install -y golang 再次查看go环境变量 # go env
2.6、编译 make WHAT=cmd/kubeadm 编译完会在当前目录生成二进制文件 # ll _output/bin
2.7、备份文件 将之前kubeadm 和K8s集群组件证书全部备份一下 1. cp /usr/bin/kubeadm /opt/yaml/kubeadm-init/kubeadm-old 2. cp -rp /etc/kubernetes/pki /opt/yaml/kubeadm-init/pki-old
2.8、替换二进制文件和重新生成证书 替换当前二进制文件 cp /opt/yaml/kubeadm-init/kubeadm-10y /usr/bin/kubeadm 重新生成证书文件 cd /etc/kubernetes/pki kubeadm certs renew all
2.9、查看是否生效 # kubeadm certs check-expiration 重启kubelet,再次检查一下 systemctl restart kubelet.service
3.0、检查集群是否生效 # kubectl get node
3.1、让其整个集群master生效 将当前新编译好的kubeadm文件复制到其他节点上,然后再替换之前一定要备份好文件,然后重新生成证书,其他操作步骤如上述。 上传kubeadm-10y 到其它节点:/opt/kubeadm-10y cp /usr/bin/kubeadm /opt/kubeadm-old chmod 755 /opt/kubeadm-10y cp /opt/kubeadm-10y /usr/bin/kubeadm
|