03.04 K8s二進制部署-編譯源碼解決kubelet-client-xxxx證書一年問題

  • cpu6核心以上
  • 內存15gb以上
  • 拉取源碼
  • 確保golang版本與源碼版本一致(一般新的不行就往回退個版本)

主要為了解決 二進制方式部署Kubernetes的 kubelet-client證書1年的問題(二進制部署其餘證書都是可以在安裝的時候自己配置時間的,)改k8s源碼為5年

準備編譯環境

<code>yum  install git  wget  vim  gcc  gcc+  make  -y
yum install golang -y #新版的是編譯不了舊版本的k8s源碼的 這裡要注意下/<code>

下載k8s源碼包

<code>go version
wget https://github.com/kubernetes/kubernetes/archive/v1.14.8.tar.gz
cd kubernetes-1.14.8//<code>

改kubelet-client證書時長

<code>#改為五年
vi ./pkg/controller/apis/config/v1alpha1/defaults.go
原: = metav1.Duration{Duration: 365 * 24 * time.Hour
改5年:
obj.ClusterSigningDuration = metav1.Duration{Duration: 365 * 24 * time.Hour * 10}/<code>

編譯

<code>cd  kubernetes-1.14.8/
KUBE_BUILD_PLATFORMS=linux/amd64 make/<code>

#生成的二進制文件


<code>[root@31039 kubernetes-1.14.8]# ls _output/bin/
apiextensions-apiserver deepcopy-gen e2e.test genman ginkgo hyperkube kube-controller-manager kubemark linkcheck
cloud-controller-manager defaulter-gen gendocs genswaggertypedocs go2make kubeadm kubectl kube-proxy mounter
conversion-gen e2e_node.test genkubedocs genyaml go-bindata kube-apiserver kubelet kube-scheduler openapi-gen
[root@31039 kubernetes-1.14.8]#
[root@31039 kubernetes-1.14.8]# cd _output/bin/
[root@31039 bin]# ./kube-controller-manager --version
Kubernetes v1.14.8
[root@31039 bin]#/<code>

用法:

將編譯好的kube-controller-manager 拷貝出來,

  • 在已有集群使用: 替換默認的kube-controller-manager,重啟master節點,node節點相關服務
  • 在準備二進制安裝k8s集群使用:在安裝前替換kube-controller-manager
<code>/usr/local/bin/kube-controller-manager  #替換
systemctl status kube-controller-manager.service #重啟生效
#重新添加Node節點(重啟node節點 kubelet.service)
#接受csr
#驗證證書效果(看證書有效期/直接改Linux系統日誌往後改3年集群不掛即成功)
[root@228-godfs-01 ~]# cd /etc/kubernetes/ssl/
[root@228-godfs-01 ssl]# pwd
/etc/kubernetes/ssl
[root@228-godfs-01 ssl]# openssl x509 -in kubelet-client-2020-03-04-16-23-04.pem -noout -text|grep Not
Not Before: Mar 4 08:18:00 2020 GMT
Not After : Mar 3 08:11:55 2025 GMT
[root@228-godfs-01 ssl]#
/<code>

效果

K8s二進制部署-編譯源碼解決kubelet-client-xxxx證書一年問題


K8s二進制部署-編譯源碼解決kubelet-client-xxxx證書一年問題


分享到:


相關文章: