因為我是安裝用kubeadm自動安裝的,目前最新版本1.63
但是限於證書過期時間問題,需要去做更改,特此記錄!
一、安裝go語言。
現在新版本的k8s重新編譯都需要高版本的go語言了。我這邊安裝的是V1.13.5
先下載:go1.135.linux-amd64.tar.gz
tar -zxvf go1.135.linux-amd64.tar.gz
mv go /usr/local/
添加環境變量:
export PATH=$PATH:/usr/local/go/bin
source /etc/profile
查看go語言版本
go verison
warning: GOPATH set to GOROOT (/usr/local/go) has no effect
go version go1.13.5 linux/amd64
一定要確定go語言有環境變量 不然后面編譯會報錯。
二、下載源碼
git clone https://github.com/kubernetes/kubernetes.git 或者 瀏覽器打開https://github.com/kubernetes/kubernetes 后下載zip壓縮包
我是用的瀏覽器下載的,得到一個kubernetes-master.zip 解壓后:得到文件夾 kubernetes-master
三、開始修改
cd kubernetes-master
修改時間:vim cmd/kubeadm/app/constants/constants.go
CertificateValidity = time.Hour * 24 * 365 改為 time.Hour * 24 * 365 * 10 (我的是10年,根據各人需求來吧)
四、編譯
在當前kubernetes-master下執行:make WHAT=cmd/kubeadm GOFLAGS=-v
新生成的kubeadm在 _output/bin/ 目錄下
五、開始備份替換kubeadm
先備份
cp /usr/bin/kubeadm /usr/bin/kubeadm.backup
再替換
cp _output/bin/kubeadm /usr/bin/kubeadm
六、最后證書更新
cp -r /etc/kubernetes/pki /etc/kubernetes/pki.backup
cd /etc/kubernetes/pki
kubeadm alpha certs renew all
查看結果
kubeadm alpha certs check-expiration
證書10年,完美生成。(中間我自己踩坑1天多)