kubeadm修改源码设置证书时间100年
安装go环境:
cd /data/
wget https://dl.google.com/go/go1.15.15.linux-amd64.tar.gz
tar -xf go1.15.15.linux-amd64.tar.gz -C /usr/local/
ln -s /usr/local/bin/go /usr/local/go/bin/go
ln -s /usr/local/bin/gofmt /usr/local/go/bin/gofmt
下载kubernetes源码文件
# wget https://github.com/kubernetes/kubernetes/archive/refs/tags/v1.20.15.tar.gz
# tar xf v1.20.15.tar.gz && cd kubernetes-1.20.15
修改证书时间配置
修改constants.go文件:
# vim cmd/kubeadm/app/constants/constants.go
########### 后面追加个 * 100 (注掉部分为源代码,后面跟着的是修改后的代码)
#const duration365d = time.Hour * 24 * 365
const duration365d = time.Hour * 24 * 365 * 100
// Config contains the basic fields required for creating a certificate
type Config struct {
CommonName string
Organization []string
AltNames AltNames
Usages []x509.ExtKeyUsage
}
修改cert.go文件:
$ vim staging/src/k8s.io/client-go/util/cert/cert.go
########### 修改10年为100年(注掉部分为源代码,后面跟着的是修改后的代码)
#NotAfter: now.Add(duration365d * 10).UTC(),
NotAfter: now.Add(duration365d * 100).UTC(),
KeyUsage: x509.KeyUsageKeyEncipherment | x509.KeyUsageDigitalSignature | x509.KeyUsageCertSign,
BasicConstraintsValid: true,
IsCA: true,
......
编译kubeadm
make WHAT=cmd/kubeadm GOFLAGS=-v
cp _output/bin/kubeadm /root/kubeadm
注意:
不要通过mount的方式在windows宿主机和编译的linux虚拟机之间共享kubernets源码,会导致rsync出问题
不要用windows打开任何文件,可能导致Makefile出现tab键的问题
评论区