k8s重新编译kubeadm解决证书过期问题
时间:2022-07-22
本文章向大家介绍k8s重新编译kubeadm解决证书过期问题,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
问题说明
kubeadm 是 kubernetes 提供的一个初始化集群的工具,使用起来非常方便。但是它创建的apiserver、controller-manager等证书默认只有一年的有效期,同时kubelet 证书也只有一年有效期,一年之后 kubernetes 将停止服务。 官方推荐一年之内至少用 kubeadm upgrade 更新一次 kubernetes 系统,更新时也会自动更新证书。不过,生产环境或者无法连接外网的环境频繁更新 kubernetes 不太现实。
重新编译kubeadm
这里测试了三个版本的k8s,一个是v1.15.1, v1.15.3, v1.16.3,都适用
下载k8s源码
直接google搜索kubernetes github
去下载即可
修改源码
进到源码目录中,需要修改两处地方 第一个地方:
# vim ./staging/src/k8s.io/client-go/util/cert/cert.go
NotAfter: now.Add(duration365d * 10).UTC(), //默认为10年,修改为100年,不能超过1000年,因为我试过不行
第二个地方:
# vim ./cmd/kubeadm/app/constants/constants.go
CertificateValidity = time.Hour * 24 * 365 * 100 //改为这里的值
重新编译kubeadm
这里通过docker容器的方式去编译
docker run --rm -it -v /tmp/kubernetes/:/go/src/k8s.io/kubernetes mirrorgooglecontainers/kube-cross:v1.12.10-1 bash
#进入容器
cd /go/src/k8s.io/kubernetes
make all WHAT=cmd/kubeadm GOFLAGS=-v
替换旧的kubeadm
新生成的kubeadm会在./_output/local/bin/linux/amd64/kubeadm
这个路径下
把旧的做好备份,还有/etc/kubernetes/pki
也备份下
cp ./_output/local/bin/linux/amd64/kubeadm /usr/bin/kubeadm
执行命令更新证书
#更新证书
kubeadm alpha certs renew all
#查看证书时间
kubeadm alpha certs check-expiration
- 记一个node实现的图形验证码从0到1
- FHQ Treap小结(神级数据结构!)
- vuex在页面中以对象展开运算符形式引入报错解决
- 手机网页调用相机拍照或者图库
- P1903 【模板】分块/带修改莫队(数颜色)
- 前端如何获取http状态码400的返回值
- 不确定行数的多行文本垂直水平居中的css
- Vue slot简单理解
- css实现图片横向排列滚动
- windows下nvm安装node之后npm命令找不到问题解决办法
- 元素加了position:absolute则该元素的text-align:center居中失效的解决办法
- Chrome设置断点的各种姿势
- React-native踩坑小记
- 带修改莫队算法
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 冒泡排序的实现思路和优化方案
- Java Map转对象
- 59.Vue 使用webpack构建vue项目
- Android初学设置文字跑马灯效果
- 使用Zolom内存解析运行python脚本(不落地)
- 要点3:输入函数对比与自定义输入方式
- 性能测试必备命令(3)- lscpu
- 性能测试必备命令(2)- uptime
- Lua/luajit 点与冒号的区别
- vim的几种模式mode和按键映射map
- PHP parent 的注意点
- 不停服务调试(debug)线上Rsyslog
- 使用ulimit 命令、/etc/security/limits.conf、proc 调整系统参数
- 解决jupyter notebook matplotlib绘图中文乱码问题
- 【动手学深度学习笔记】之过拟合与欠拟合实例