编译kubeadm使生成证书有效期为100年

问题

  • 当我使用kubeadm部署成功k8s集群时在想默认生成的证书有效期是多久,如下所示
/etc/kubernetes/pki/apiserver.crt                #1年有效期
/etc/kubernetes/pki/front-proxy-ca.crt           #10年有效期
/etc/kubernetes/pki/ca.crt                       #10年有效期
/etc/kubernetes/pki/apiserver-etcd-client.crt    #1年有效期
/etc/kubernetes/pki/front-proxy-client.crt       #1年有效期
/etc/kubernetes/pki/etcd/server.crt              #1年有效期
/etc/kubernetes/pki/etcd/ca.crt                  #10年有效期
/etc/kubernetes/pki/etcd/peer.crt                #1年有效期
/etc/kubernetes/pki/etcd/healthcheck-client.crt  #1年有效期
/etc/kubernetes/pki/apiserver-kubelet-client.crt #1年有效期
  • 也可以通过 kubeadm certs check-expiration查看证书和有效期
  • 当然可以使用 kubeadm certs renew all来续订证书,但是证书更新了那些服务如果要重启就很麻烦
  • 所以我想修改kubeadm源码让默认生成的证书有100年有效期

编译

  • 官方文档:编译k8s
  • 下载源码: git clone --depth=1 -b v1.24.2 git@github.com:kubernetes/kubernetes.git,目前最新的kubeadm版本是 v1.24.2,所以直接克隆这个标签
  • 找到该版本使用的镜像: K8S_IMG="k8s.gcr.io/build-image/kube-cross:$(cat ./build/build-image/cross/VERSION)"
  • 我已经放到阿里云上了,现在只需执行: docker pull registry.cn-hangzhou.aliyuncs.com/janbar-k8s/kube-cross:v1.24.0-go1.18.3-bullseye.0到本地就可以了
  • 下载到编译机器,将tag改为官方的格式: docker tag registry.cn-hangzhou.aliyuncs.com/janbar-k8s/kube-cross:v1.24.0-go1.18.3-bullseye.0 $K8S_IMG
  • 修改 NewSelfSignedCACert 方法的 NotAfter 为(100年): now.Add(duration365d * 100).UTC(): vim ./staging/src/k8s.io/client-go/util/cert/cert.go
  • 修改 CertificateValidity 为: time.Hour * 24 * 365 * 99: vim ./cmd/kubeadm/app/constants/constants.go
  • 最终修改提交如下图所示,已经将1年和10年的证书都改成100年

编译kubeadm使生成证书有效期为100年
  • 编译kubeadm: cd build/ && ./run.sh make kubeadm
  • 执行命令查看编译kubeadm的版本: ./_output/dockerized/bin/linux/amd64/kubeadm version
  • 这个可执行程序就可以替换你自己用那个就行了

检查结果

  • 执行检查证书命令: kubeadm certs check-expiration
    编译kubeadm使生成证书有效期为100年
  • 可以看到所有证书有效期都变为100年了

Original: https://www.cnblogs.com/janbar/p/16466573.html
Author: janbar
Title: 编译kubeadm使生成证书有效期为100年

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/516257/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 十分钟学会Golang开发gRPC服务

    gRPC是Google发起的一个开源RPC框架,使用HTTP/2传输协议,使用Protocol Buffers编码协议,相比RESTful框架的程序性能提高不少,而且当前流行的编程…

    Go语言 2023年5月25日
    074
  • 对不起,我错了,这代码不好写

    hello,大家好呀,我是小楼。 前几天不是写了这篇文章《发现一个开源项目优化点,点进来就是你的了》嘛。 文章介绍了Sentinl的自适应缓存时间戳算法,从原理到实现都手把手解读了…

    Go语言 2023年5月25日
    067
  • Go语言之数组与切片基础

    数组是同一类型元素的集合,可以放多个值,但是类型一致,内存中连续存储 Go 语言中不允许混合不同类型的元素,而且数组的大小,在定义阶段就确定了,不能更改 1、数组的定义 // 定义…

    Go语言 2023年5月25日
    077
  • GO环境配置

    一、环境安装及配置 引用链接:Go语言环境安装及配置 Go版本安装 百度网盘msi地址:版本v1.18.1提取码:m1mc GoLand工具 链接:【版本2020.1】提取码:7x…

    Go语言 2023年5月25日
    075
  • 一次不规范HTTP请求引发的nginx响应400问题分析与解决

    背景 最近分析数据偶然发现nginx log中有一批用户所有的HTTP POST log上报请求均返回400,没有任何200成功记录,由于只占整体请求的不到0.5%,所以之前也一直…

    Go语言 2023年5月25日
    089
  • Go语言:包管理基础知识

    起因是,遇到一个问题: 经查阅资料,很可能跟包管理有关,之前有了解过忘了就再学一遍顺便解决问题。 学习资料: GO111MODULE 是个啥? – 知乎 (zhihu….

    Go语言 2023年5月25日
    067
  • golang多版本管理工具

    前言 以往我安装 go环境都是去网站上下载对应文件,然后本地解压。每次发布新版本都这样做太麻烦了,所以我在寻找多版本管理工具。 [En] It’s too troubl…

    Go语言 2023年5月25日
    064
  • 关于Golang的学习路线

    基础 安装golang环境Golang基础,流程控制,函数,方法,面向对象网络编程(自己做一个简单的tcp的聊天室,websocket,http,命令行工具)并发(可以看一下并发爬…

    Go语言 2023年5月25日
    065
  • Golang开源流媒体服务器(RTMP/RTSP/HLS/FLV等协议)

    一. lal 简介 lal是开源直播流媒体网络传输项目,主要由三部分组成: lalserver:流媒体转发服务器。类似于 nginx-rtmp-module等服务,但支持更多的协议…

    Go语言 2023年5月25日
    064
  • 基于LSM的Key-Value数据库实现稀疏索引篇

    上篇文章简单的填了一个坑基于LSM数据库的实现了WAL,在该版本中如数据写入到内存表的同时将未持久化的数据写入到WAL文件,在未将数据持久化时程序崩溃,可通过WAL文件将数据还原恢…

    Go语言 2023年5月25日
    078
  • Golang笔记

    本文主要为go的学习过程笔记。 一、基本介绍 1、开发环境安装-windows安装 打开Golang官网,选择对应版本,进行安装。 2、环境变量配置 1)步骤 (1)首先在环境变量…

    Go语言 2023年5月25日
    052
  • Excelize 2.5.0 正式发布,这些新增功能值得关注

    Excelize 是 Go 语言编写的用于操作 Office Excel 文档基础库,基于 ECMA-376,ISO/IEC 29500 国际标准。可以使用它来读取、写入由 Mic…

    Go语言 2023年5月25日
    067
  • Go语言之高级篇beego框架之配置beego环境

    1、配置beego环境 进入部署目录中 软件部署目录: 把要部署的软件代码,放在src目录下面。 启动项目 posted @2019-02-18 15:31 努力哥 阅读(938 …

    Go语言 2023年5月29日
    072
  • 【golang详解】go语言GMP(GPM)原理和调度

    Goroutine调度是一个很复杂的机制,下面尝试用简单的语言描述一下Goroutine调度机制,想要对其有更深入的了解可以去研读一下源码。 首先介绍一下GMP什么意思: G &#…

    Go语言 2023年5月25日
    061
  • 流量管制-令牌桶与漏桶

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Go语言 2023年5月25日
    057
  • 【golang】 关于for range中只存储最后一个元素的问题

    前言: 今天用for range写了个demo,发现无论怎么运行,最后的结果是一直是最后一个。自己思考过后,又和其他伙伴商量了下,最终算是解决了自己的疑惑。 正文: 下面我们来看个…

    Go语言 2023年5月25日
    059
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球