《Kubernets证书篇:基于Kylin V10+ARM架构CPU修改K8S 1.26.15版本证书时间限制》

一、背景

Kubernetes 默认的证书有效期只有1年,因此需要每年手动更新一次节点上面的证书,特别麻烦而且更新过程中可能会出现问题,因此我们要对 Kubernetes 的 SSL 证书有效期进行修改,这里将证书的时间限制修改为100年。

环境信息如下:

K8S版本 系统版本 CPU架构 内核版本
1.26.15 Kylin Linux Advanced Server V10 aarch64 4.19.90-17.5.ky10.aarch64

二、查看证书有效期

[root@k8s-master-42 ~]# kubeadm certs check-expiration

如下图所示:
在这里插入图片描述
由上图可见,除了ca根证书,其他证书有效期都是1年。


三、go环境部署

由下图可见,需要安装go1.21.8版本。

在这里插入图片描述
操作步骤如下:

# 1、安装go语言
[root@k8s-master-42 ~]# wget https://studygolang.com/dl/golang/go1.21.8.linux-arm64.tar.gz
[root@k8s-master-42 ~]# tar axf go1.21.8.linux-arm64.tar.gz -C /usr/local/
# 2、配置环境变量
[root@k8s-master-42 ~]# echo "export PATH=$PATH:/usr/local/go/bin" >> /etc/profile
# 3、环境变量生效命令
[root@k8s-master-42 ~]# source /etc/profile

四、下载K8S源码

[root@k8s-master-42 ~]# mkdir -p /data/k8s-src && cd /data/k8s-src
[root@k8s-master-42 k8s-src]# wget https://github.com/kubernetes/kubernetes/archive/refs/tags/v1.26.15.zip
[root@k8s-master-42 k8s-src]# unzip v1.26.15.zip

五、修改Kubeadm源码包更新证书策略

1、修改 NewSelfSignedCACert 方法的 NotAfter 为(100年): now.Add(duration365d * 100).UTC()

[root@k8s-master-42 ~]# cd kubernetes-1.26.15
[root@k8s-master-42 kubernetes-1.26.15]# vim ./staging/src/k8s.io/client-go/util/cert/cert.goNotAfter:              now.Add(duration365d * 10).UTC(),

如下图所示:
在这里插入图片描述
2、修改 CertificateValidity 为: time.Hour * 24 * 365 * 100

[root@k8s-master-42 kubernetes-1.26.15]# vim ./cmd/kubeadm/app/constants/constants.goCertificateValidity = time.Hour * 24 * 365 * 100

如下图所示:
在这里插入图片描述

3、执行编译

[root@k8s-master-42 kubernetes-1.26.15]# make clean && KUBE_BUILD_PLATFORMS=linux/arm64 make all DBG=1 WHAT=cmd/kubeadm

如下图所示:
在这里插入图片描述

4、原证书备份

[root@k8s-master-42 kubernetes-1.26.15]# cp -arp /etc/kubernetes /etc/kubernetes_`date +%F`
[root@k8s-master-42 kubernetes-1.26.15]# mv /usr/bin/kubeadm /usr/bin/kubeadm_`date +%F`
[root@k8s-master-42 kubernetes-1.26.15]# cp -a _output/bin/kubeadm /usr/bin

5、证书更新

[root@k8s-master-42 kubernetes-1.26.15]# kubeadm certs renew all 
[root@k8s-master-42 kubernetes-1.26.15]# crictl pods --namespace kube-system --name 'kube-scheduler-*|kube-controller-manager-*|kube-apiserver-*|etcd-*' -q | /usr/bin/xargs crictl rmp -f
[root@k8s-master-42 kubernetes-1.26.15]# kubeadm certs check-expiration

如下图所示:
在这里插入图片描述


总结:整理不易,如果对你有帮助,可否点赞关注一下?

更多详细内容请参考:企业级K8s集群运维实战

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/819195.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

112 arcpy 发布 mxd地图文件 到 arcgis服务器 为 地图服务

前言 此文档主要是记录一下 最近的一次机遇 arcpy 来发布 地图文件到 arcgis服务器 上面 arcpy 主要是来自于 ArcGIS_Desktop_105_154030.zip 安装之后会在 python 的安装目录 安装另外的一份带 arcgis 的 python 环境, 然后 本文相关类库 也是基于 这个 arcpy 的 python 环境…

web实战项目环境部署(LNMP)

环境搭建准备 1、在本机安装VMware虚拟机,实际工作中,使用的是云服务器 2、在虚拟机上安装并运行Linux系统 3、在本机上安装好远程连接工具(xshell/FinalShell),通过远程连接工具连接到虚拟机 4、关闭linux上的防火…

深度学习之PyTorch实现卷积神经网络(CNN)

在深度学习领域,卷积神经网络(Convolutional Neural Networks,CNN)是一种非常强大的模型,专门用于处理图像数据。CNN通过卷积操作和池化操作来提取图像中的特征,具有较好的特征学习能力,特别适用…

云原生:企业数字化转型的引擎与未来

一,引言 随着信息技术的飞速发展,企业数字化转型已成为时代的必然趋势。在这场深刻的变革中,云原生技术以其独特的优势,逐渐成为推动企业数字化转型的核心动力。本文将详细探讨云原生技术的内涵、发展历程,以及在企业数…

【Java开发指南 | 第八篇】Java变量、构造方法、创建对象

专栏:Java开发指南 CSDN秋说 文章目录 Java变量构造方法创建对象 Java变量 局部变量:在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。成员变量(…

研究生,该学单片机还是plc。?

PLC门槛相对较低,但是在深入学习和应用时,仍然有很高的技术要求。我这里有一套单片机入门教程,不仅包含了详细的视频 讲解,项目实战。如果你渴望学习单片机,不妨点个关注,给个评论222,私信22&am…

OpenHarmony实战开发-图片选择和下载保存案例。

介绍 本示例介绍图片相关场景的使用:包含访问手机相册图片、选择预览图片并显示选择的图片到当前页面,下载并保存网络图片到手机相册或到指定用户目录两个场景。 效果图预览 使用说明 从主页通用场景集里选择图片选择和下载保存进入首页。分两个场景点…

Linux UDP通信系统

目录 一、socket编程接口 1、socket 常见API socket():创建套接字 bind():将用户设置的ip和port在内核中和我们的当前进程关联 listen() accept() 2、sockaddr结构 3、inet系列函数 二、UDP网络程序—发送消息 1、服务器udp_server.hpp initS…

stm32开发之threadx整合letter-shell 组件记录

前言 使用过rt-thread的shell 命令交互的方式,觉得比较方便,所以在threadx中也移植个shell的组件。这里使用的是letter-shellletter-shell 核心的逻辑在于组件通过链接文件自动初始化或自动添加的两种方式,方便开发源码仓库 实验(核心代码) shell 线程…

rhce day1

一 . 在系统中设定延迟任务要求如下 在系统中建立 easylee 用户,设定其密码为 easylee 延迟任务由 root 用户建立 要求在 5 小时后备份系统中的用户信息文件到 /backup 中 确保延迟任务是使用非交互模式建立 确保系统中只有 root 用户和 easylee 用户可以执行延…

✌粤嵌—2024/3/11—跳跃游戏

代码实现&#xff1a; 方法一&#xff1a;递归记忆化 int path; int used[10000];bool dfs(int *nums, int numsSize) {if (path numsSize - 1) {return true;}for (int i 1; i < nums[path]; i) {if (used[path i]) {continue;}path i;used[path] 1;if (dfs(nums, num…

“华为杯“华南理工大学程序设计竞赛 L-再一道好题

题目 #include<bits/stdc.h> using namespace std; #define int long long #define pb push_back #define fi first #define se second const int maxn 1e6 5; const int inf 1e9 5;using namespace std;int n, m;void solve(){int res 0;int q;string s;int k;cin …

北京市为例的空气质量分析报告分析【免费送】

原始数据&#xff1a; 日期名称类型所属区拥挤指数速度客流指数20240405世界之花假日广场购物;购物中心大兴区2.46621.369.4920240405华润五彩城购物;购物中心海淀区2.01329.7111.1720240405北京市百货大楼购物;购物中心东城区1.85615.938.2320240405apm购物;购物中心东城区1.…

Grok-1.5 Vision:X AI发布突破性的多模态AI模型,超越GPT 4V

在人工智能领域&#xff0c;多模态模型的发展一直是科技巨头们竞争的焦点。 近日&#xff0c;马斯克旗下的X AI公司发布了其最新的多模态模型——Grok-1.5 Vision&#xff08;简称Grok-1.5V&#xff09;&#xff0c;这一模型在处理文本和视觉信息方面展现出了卓越的能力&#x…

即席查询笔记

文章目录 一、Kylin4.x1、Kylin概述1.1 定义1.2 Kylin 架构1.3 Kylin 特点1.4 Kylin4.0 升级 2、Kylin 环境搭建2.1 简介2.2 Spark 安装和部署2.3 Kylin 安装和部署2.4 Kylin 启动环境准备2.5 Kylin 启动和关闭 3、快速入门3.1 数据准备3.2 Kylin项目创建入门3.3 Hive 和 Kylin…

【个人博客搭建】(3)添加SqlSugar ORM

1、安装sqlsugar。在models下的依赖项那右击选择管理Nuget程序包&#xff0c;输入sqlsugarcore&#xff08;因为我们用的是netcore&#xff0c;而不是net famework所以也对应sqlsugarcore&#xff09;&#xff0c;出来的第一个就是了&#xff0c;然后点击选择版本&#xff0c;一…

密码学 | 椭圆曲线 ECC 密码学入门(四)

目录 正文 1 曲线方程 2 点的运算 3 求解过程 4 补充&#xff1a;有限域 ⚠️ 知乎&#xff1a;【密码专栏】动手计算双线性对&#xff08;中&#xff09; - 知乎 ⚠️ 写在前面&#xff1a;本文属搬运博客&#xff0c;自己留着学习。注意&#xff0c;这篇博客与前三…

代码随想录算法训练营Day56|LC583 两个字符串的删除操作LC72 编辑距离

一句话总结&#xff1a;看起来复杂&#xff0c;动规分析以后就比较简单。 原题链接&#xff1a;583 两个字符串的删除操作 本质就是求两个字符串的最短子序列的长度。已经做过&#xff0c;不再详解。 class Solution {public int minDistance(String word1, String word2) {/…

Python(11):网络编程

文章目录 一、一些基本概念二、软件的开发架构&#xff08;c/s架构和b/s架构&#xff09;三、OSI模型四、socket套接字编程1.socket编程过程2.python中的socket编程 一、一些基本概念 来了解一些网络的基本概念 名词解释IP&#xff08;互联网协议地址&#xff09;IP用来标识网…