自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

自定義基于kubeadm創(chuàng)建的k8s集群證書

云計算 云原生
本文詳細(xì)介紹了如何自定義基于kubeadm創(chuàng)建的Kubernetes集群證書的過期時間,并對證書進(jìn)行定期檢查和替換。通過重新編譯kubeadm源碼,我們能夠靈活地設(shè)置證書的有效期限,從而為測試環(huán)境和生產(chǎn)環(huán)境提供便利。

在 Kubernetes 集群的運(yùn)維過程中,證書管理是非常重要的一部分。尤其是自定義證書的過期時間和定期的證書檢查與替換。本文將詳細(xì)介紹如何自定義基于kubeadm創(chuàng)建的k8s集群證書。

1、確認(rèn)當(dāng)前Kubernetes版本

首先,確認(rèn)當(dāng)前 Kubernetes版本:

Bash
kubectl version
WARNING: This version information is deprecated and will be replaced with the output from kubectl version --short.  Use --output=yaml|json to get the full version.
Client Version: version.Info{Major:"1", Minor:"27", GitVersion:"v1.27.6", GitCommit:"741c8db18a52787d734cbe4795f0b4ad860906d6", GitTreeState:"clean", BuildDate:"2023-09-13T09:21:34Z", GoVersion:"go1.20.8", Compiler:"gc", Platform:"linux/amd64"}
Kustomize Version: v5.0.1
Server Version: version.Info{Major:"1", Minor:"27", GitVersion:"v1.27.6", GitCommit:"741c8db18a52787d734cbe4795f0b4ad860906d6", GitTreeState:"clean", BuildDate:"2023-09-13T09:14:09Z", GoVersion:"go1.20.8", Compiler:"gc", Platform:"linux/amd64"}
# 這里查看的go環(huán)境版本為:GoVersion:"go1.20.8"
# Kubernetes源碼版本為:GitVersion:"v1.27.6"

圖片圖片

2、下載對應(yīng)源碼和編譯環(huán)境

下載對應(yīng)源碼

根據(jù)Kubernetes版本信息下載對應(yīng)版本的Kubernetes源碼,

下載地址:https://github.com/kubernetes/kubernetes/releases,

這里是v1.27.6版本

圖片圖片

下載對應(yīng)go環(huán)境

根據(jù)Kubernetes版本信息下載對應(yīng)版本的go環(huán)境,下載地址:https://go.dev/dl/,這里是1.20.8版本

圖片圖片

3、證書備份

為確保安全,先進(jìn)行證書備份:

Bash
# master
cp -r /etc/kubernetes/pki /etc/kubernetes/pki-backup

圖片圖片

4、證書檢查

Kubernetes 提供了 kubeadm 命令來檢測集群證書的過期時間。執(zhí)行以下命令檢查證書狀態(tài):

Bash
kubeadm certs check-expiration
[check-expiration] Reading configuration from the cluster...
[check-expiration] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -o yaml'


CERTIFICATE                EXPIRES                  RESIDUAL TIME   CERTIFICATE AUTHORITY   EXTERNALLY MANAGED
admin.conf                 Feb 14, 2026 05:26 UTC   364d            ca                      no      
apiserver                  Feb 14, 2026 05:26 UTC   364d            ca                      no      
apiserver-etcd-client      Feb 14, 2026 05:26 UTC   364d            etcd-ca                 no      
apiserver-kubelet-client   Feb 14, 2026 05:26 UTC   364d            ca                      no      
controller-manager.conf    Feb 14, 2026 05:26 UTC   364d            ca                      no      
etcd-healthcheck-client    Feb 14, 2026 05:26 UTC   364d            etcd-ca                 no      
etcd-peer                  Feb 14, 2026 05:26 UTC   364d            etcd-ca                 no      
etcd-server                Feb 14, 2026 05:26 UTC   364d            etcd-ca                 no      
front-proxy-client         Feb 14, 2026 05:26 UTC   364d            front-proxy-ca          no      
scheduler.conf             Feb 14, 2026 05:26 UTC   364d            ca                      no

圖片圖片

此命令會列出集群中所有證書的過期信息,當(dāng)前證書過期時間為1年。

5、自定義證書時間并替換

按照以下步驟進(jìn)行替換:

5.1 準(zhǔn)備編譯環(huán)境

在 master節(jié)點(diǎn)準(zhǔn)備編譯環(huán)境:

Bash
# master
tar xf go1.20.8.linux-amd64.tar.gz -C /usr/local/
echo "export PATH=$PATH:/usr/local/go/bin" >>/etc/profile
source /etc/profile
go version

圖片圖片

5.2 源碼編譯和替換

然后,編譯 kubeadm 并替換原有版本:

Bash
# master
tar xf kubernetes-1.27.6.tar.gz
cd kubernetes-1.27.6/
vi cmd/kubeadm/app/constants/constants.go

圖片圖片

修改證書有效期為 10 年(3650 天):

Bash
CertificateValidity = time.Hour * 24 * 365 * 10

圖片圖片

編譯 kubeadm:

Bash
make WHAT=cmd/kubeadm GOFLAGS=-v
ll _output/bin/
mv /usr/bin/kubeadm /usr/bin/kubeadm.bak
cp _output/bin/kubeadm /usr/bin/

圖片圖片

圖片圖片

5.3 更新證書

執(zhí)行以下命令更新所有證書:

Bash
# master
kubeadm certs renew all
# 如不需要更新所有證書,可以按需更新以下證書
kubeadm certs renew admin.conf
kubeadm certs renew apiserver
kubeadm certs renew apiserver-kubelet-client 
kubeadm certs renew controller-manager.conf
kubeadm certs renew front-proxy-client
kubeadm certs renew scheduler.conf

圖片圖片

5.4 同步文件至其他Master節(jié)點(diǎn)

將更新后的 kubeadm 二進(jìn)制文件和證書同步到其他 Master 節(jié)點(diǎn):

Bash
scp /usr/bin/kubeadm master02:/usr/bin
scp /usr/bin/kubeadm master03:/usr/bin

5.5 重啟相關(guān)組件

最后,重啟相關(guān)的 Kubernetes 組件,使證書生效:

Bash
kubectl -n kube-system delete po -l 'compnotallow=kube-apiserver'
kubectl -n kube-system delete po -l 'compnotallow=kube-controller-manager'
kubectl -n kube-system delete po -l 'compnotallow=kube-scheduler'

圖片圖片

通過執(zhí)行這些命令,集群中的證書將會更新,并且相關(guān)的組件會自動重啟,應(yīng)用新證書。

5.6 證書檢查

執(zhí)行以下命令檢查證書狀態(tài):

Bash
kubeadm certs check-expiration
[check-expiration] Reading configuration from the cluster...
[check-expiration] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -o yaml'


CERTIFICATE                EXPIRES                  RESIDUAL TIME   CERTIFICATE AUTHORITY   EXTERNALLY MANAGED
admin.conf                 Feb 12, 2035 05:48 UTC   9y              ca                      no      
apiserver                  Feb 12, 2035 05:48 UTC   9y              ca                      no      
apiserver-etcd-client      Feb 12, 2035 05:48 UTC   9y              etcd-ca                 no      
apiserver-kubelet-client   Feb 12, 2035 05:48 UTC   9y              ca                      no      
controller-manager.conf    Feb 12, 2035 05:48 UTC   9y              ca                      no      
etcd-healthcheck-client    Feb 12, 2035 05:48 UTC   9y              etcd-ca                 no    
etcd-peer                  Feb 12, 2035 05:48 UTC   9y              etcd-ca                 no      
etcd-server                Feb 12, 2035 05:48 UTC   9y              etcd-ca                 no      
front-proxy-client         Feb 12, 2035 05:48 UTC   9y              front-proxy-ca          no      
scheduler.conf             Feb 12, 2035 05:48 UTC   9y              ca                      no

圖片圖片

可以看到,現(xiàn)在所有證書過期時間均已變成10年。

5、總 結(jié)

本文詳細(xì)介紹了如何自定義基于kubeadm創(chuàng)建的Kubernetes集群證書的過期時間,并對證書進(jìn)行定期檢查和替換。通過重新編譯kubeadm源碼,我們能夠靈活地設(shè)置證書的有效期限,從而為測試環(huán)境和生產(chǎn)環(huán)境提供便利。

自定義證書過期時間不僅簡化了運(yùn)維管理,還減少了因證書過期導(dǎo)致的潛在風(fēng)險。此外,通過本文的步驟,您可以確保集群的安全性和穩(wěn)定性,同時避免了頻繁更新證書帶來的額外工作負(fù)擔(dān)。

通過執(zhí)行上述步驟,您可以有效地更新集群中的證書,并確保相關(guān)組件能夠自動重啟并應(yīng)用新證書。這種方法不僅提高了運(yùn)維效率,還增強(qiáng)了集群的整體安全性。

責(zé)任編輯:武曉燕 來源: 新鈦云服
相關(guān)推薦

2021-12-08 07:55:53

K8S WebhookKubernetes

2021-11-04 07:49:58

K8SStatefulSetMySQL

2021-03-24 06:26:00

kubeadmK8Scontainerd

2023-03-05 21:50:46

K8s集群容量

2023-09-03 23:58:23

k8s集群容量

2021-04-22 09:46:35

K8SCluster Aut集群

2015-02-12 15:33:43

微信SDK

2022-04-22 13:32:01

K8s容器引擎架構(gòu)

2024-02-01 09:48:17

2023-11-06 07:16:22

WasmK8s模塊

2022-12-28 10:52:34

Etcd備份

2024-05-27 00:00:10

KubernetesK8s云原生

2022-04-29 11:13:08

K8s資源Linux

2020-02-29 15:20:18

K8SKubernetes集群

2023-09-07 08:58:36

K8s多集群

2023-11-07 08:23:05

2024-08-30 09:21:28

2022-04-07 10:17:18

云原生服務(wù)器優(yōu)化

2024-10-25 08:30:57

計算機(jī)視覺神經(jīng)網(wǎng)絡(luò)YOLOv8模型

2019-09-09 09:53:52

K8s集群架構(gòu)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號