当前位置: 首页 > news >正文

k8s证书有效期修改为10年

1 查看当前有效期

kubeadm certs check-expiration

2 备份证书和etcd数据

#备份证书 mkdir /etc/kubernetes.bak cp -r /etc/kubernetes/pki/ /etc/kubernetes.bak cp /etc/kubernetes/*.conf /etc/kubernetes.bak #备份etcd数据目录 cp -r /var/lib/etcd /var/lib/etcd.bak

3 重新编译kubeadm

#下载源码 https://github.com/kubernetes/kubernetes/releases/tag/v1.27.4 vim cmd/kubeadm/app/util/pkiutil/pki_helpers.go // NewSignedCert creates a signed certificate using the given CA certificate and key func NewSignedCert(cfg *CertConfig, key crypto.Signer, caCert *x509.Certificate, caKey crypto.Signer, isCA bool) (*x509.Certificate, error) { // returns a uniform random value in [0, max-1), then add 1 to serial to make it a uniform random value in [1, max). const duration365d = time.Hour * 24 * 365 * 10 ##增加变量,设置为10年 serial, err := cryptorand.Int(cryptorand.Reader, new(big.Int).SetInt64(math.MaxInt64-1)) if err != nil { return nil, err } serial = new(big.Int).Add(serial, big.NewInt(1)) if len(cfg.CommonName) == 0 { return nil, errors.New("must specify a CommonName") } keyUsage := x509.KeyUsageKeyEncipherment | x509.KeyUsageDigitalSignature if isCA { keyUsage |= x509.KeyUsageCertSign } RemoveDuplicateAltNames(&cfg.AltNames) notAfter := time.Now().Add(duration365d).UTC() #将原代码替换成这一行 if cfg.NotAfter != nil { notAfter = *cfg.NotAfter } certTmpl := x509.Certificate{ Subject: pkix.Name{ CommonName: cfg.CommonName, Organization: cfg.Organization, }, DNSNames: cfg.AltNames.DNSNames, IPAddresses: cfg.AltNames.IPs, SerialNumber: serial, NotBefore: caCert.NotBefore, NotAfter: notAfter, KeyUsage: keyUsage, ExtKeyUsage: cfg.Usages, BasicConstraintsValid: true, IsCA: isCA, } certDERBytes, err := x509.CreateCertificate(cryptorand.Reader, &certTmpl, caCert, key.Public(), caKey) if err != nil { return nil, err } return x509.ParseCertificate(certDERBytes) }

编译kubeadmin,并将生成的kubeadm替换下原命令

$ make WHAT=cmd/kubeadm GOFLAGS=-v $ ls _output/bin/kubeadm _output/bin/kubeadm
#替换下 root@k8s-master02:~# mv /usr/local/bin/kubeadm /usr/local/bin/kubeadm.bak root@k8s-master02:~# chmod +x /usr/local/bin/kubeadm

4 更新证书

#使用新kubeadm更新证书 kubeadm certs renew all #重启api-server、controller-manager、scheduler root@k8s-master02:/etc/kubernetes/manifests# ls kube-apiserver.yaml kube-controller-manager.yaml kube-scheduler.yaml

6 补充

我在按照上述办法重新编译1.33.4版本的kubeadm时,发现还是只能最多更新一年的时间,后来把下面的代码注释掉后并把时间改成了9年才成功的

const duration365d = time.Hour * 24 * 365 * 9 ........... notAfter := time.Now().Add(duration365d).UTC() //notAfter := notBefore.Add(kubeadmconstants.CertificateValidityPeriod) // if !cfg.NotAfter.IsZero() { // notAfter = cfg.NotAfter // }
http://www.jsqmd.com/news/489489/

相关文章:

  • 如何让Agent智能选工具?
  • OpenClaw v2026.3.7 史诗级更新!Context Engine 上线,AI 记忆可插拔,普通用户也能玩出极客级效果
  • Nginx 安全防护与 HTTPS 部署实战全解析
  • “你还在为树形结构处理犯难?一文掌握Java组合模式的应用场景!”
  • 软件测试实验室申请CNAS/CMA资质费用预算清单
  • UL+FDA双认证:福尔蒂医用导管色母量产前7轮迭代实录
  • Linux命令行最基础操作指南(新手入门必看)
  • Python 工程化实战:从目录结构到 VSCode 完美配置
  • HTB - VariaType
  • GD60920你一定很少听说,但它可能就在你身边:智能照明应用解决方案分享(全文干货)
  • 2026跑腿创业,市面上系统那么多,为什么我独推荐诚心呈意共享骑手系统?
  • 高可用:mysql主备keepAlived+vip
  • dhcp技术
  • 字符串!!!!
  • PMP认证备考全攻略:从报名到3A通过的实战经验分享
  • **Sora仿真人剧2025推荐,解锁沉浸式互动叙事新体验*
  • 无人机飞控系统专业术语
  • 东南大学提出 AutoIAD:多 Agent 驱动的工业异常检测自动化框架
  • 大晓机器人开源Kairos 3.0-4B:具身世界模型性能全面领跑
  • mysql转postgres 字段定义备忘
  • 事件相机 + RGB:如何实现高速6D姿态跟踪?这项研究给出了答案
  • RWKV-7 G1e 系列模型开源,性能表现亮眼
  • 什么牌子的头戴式耳机性价比高?精选十大高性价比头戴式耳机推荐
  • 由二叉树的前序结果来生成二叉树
  • 吃透YOLOv8:从结构拆解到实战优化,新手也能落地工业级目标检测
  • 从后台管理到 IoT 远程控表,这个 Spring Boot 3 开源项目把能耗管理链路做完整了
  • 论文写不完?这9款智能写作AI神器,从选题到答辩全包了
  • 创维电视刷机通用教程
  • B2B战略咨询在时代浪潮中找准发展定位
  • Rockchip RV1126:为AI而生的SoC