本文共 2006 字,大约阅读时间需要 6 分钟。
Kubernetes 相关证书详细介绍
在更新 Kubernetes 集群证书之前,应优先查看当前证书的过期时间
查看证书过期时间命令
kubeadm alpha certs check-expiration
在查看证书过期时间之前,需要确保 Go 环境的正确部署
Go 环境部署步骤
wget https://dl.google.com/go/go1.15.6.linux-amd64.tar.gz
tar -zxvf go1.15.6.linux-amd64.tar.gz -C /usr/local
vim /etc/profile
在文件末尾添加以下内容:
export PATH=$PATH:/usr/local/go/bin
source /etc/profile
下载 Kubernetes 源码
cd /homegit clone https://github.com/kubernetes/kubernetes.git
如果需要特定版本,可执行以下命令:
git clone -b 1.15.1 --depth=1 https://github.com/kubernetes/kubernetes.git
切换到指定版本
git checkout -b remotes/origin/release-1.15.1 v1.15.1
Kubeadm 源码包更新证书策略修改
vim staging/src/k8s.io/client-go/util/cert/cert.go
pkiutils 证书管理代码vim cmd/kubeadm/app/util/pkiutil/pki_helpers.go
编译并测试修改后的代码
make WHAT=cmd/kubeadm GOFLAGS=-v
将编译后的 kubeadm 拷贝到目标路径
cp _output/bin/kubeadm /root/kubeadm-new
更新 kubeadm 命名
cp /usr/bin/kubeadm /usr/bin/kubeadm.old
cp /root/kubeadm-new /usr/bin/kubeadm
chmod a+x /usr/bin/kubeadm
将节点证书更新至所有 Master 节点
cp -r /etc/kubernetes/pki /etc/kubernetes/pki.old
cd /etc/kubernetes/pki
kubeadm alpha certs renew all --config=/root/kubeadm-config.yaml
验证证书更新
openssl x509 -in apiserver.crt -text-noout | grep Not
为 HA 集群其他 Master 节点进行证书更新
#aleigharing,如果有多个Master节点需要更新,请根据实际IP配置相应脚本
#!/bin/bashmasterNode="192.168.66.20 192.168.66.21"for host in ${masterNode}; do scp /etc/kubernetes/pki/{ca.crt,ca.key,sa.key,sa.pub,front-proxy-ca.crt,front-proxy-ca.key}(${USER}@$host:/etc/kubernetes/pki/) scp /etc/kubernetes/pki/etcd/{ca.crt,ca.key} "root"@$host:/etc/kubernetes/pki/etcd scp /etc/kubernetes/admin.conf "root"@$host:/etc/kubernetes/donefor host in ${CONTROL_PLANE_IPS}; do scp /etc/kubernetes/pki/{ca.crt,ca.key,sa.key,sa.pub,front-proxy-ca.crt,front-proxy-ca.key}(${USER}@$host:/root/pki/) scp /etc/kubernetes/pki/etcd/{ca.crt,ca.key} "root"@$host:/root/etcd scp /etc/kubernetes/admin.conf "root"@$host:/root/kubernetes/done 完成后请再次查看证书过期时间
kubeadm alpha certs check-expiration
转载地址:http://txqoz.baihongyu.com/