在不能升级版本的情况下,解决k8s证书到期且续约只有1年的问题

更新证书需要重启服务才能生效(证书已经过期和还未过期都要重启才能生效),重启会对业务产生影响,请申请时间窗口进行处理

注意该工具只适用于k8s版本v1.18.5、请按照服务器架构选择对应的版本

相关说明:

证书到期后 kube-scheduler 和 kube-controoler-manager 会出现异常,原先已经运行的Pod还能工作,当Pod出现异常重启或是被删除后无法自动重建。证书更新后需要重启 master 的 静态 Pods。因为动态证书重载目前还不被所有组件和证书支持,所有这项操作是必须的。 静态 Pods 是被本地 kubelet 而不是 API Server 管理, 所以 kubectl 不能用来删除或重启他们。

证书更新需要在所有k8s节点操作,使用定制的 kubeadm 工具更新证书,请按照以下步骤执行:

1.下载定制的 kubeadm 二进制文件,并上传到服务器,下载链接如下:

2.master节点执行如下命令,查看 k8s 组件证书有效期,RESIDUAL TIME 为 “invalid” 则表示已过期,如果没过期也可以提前续约;

kubeadm alpha certs check-expiration

3.对证书和配置进行备份,所有节点需要操作;

cp -a /etc/kubernetes /etc/kubernetes.bak

master节点再备份config配置

cp /root/.kube/config /root/.kube/config.bak

4.使用定制的 kubeadm 进行续约操作,所有master节点需要操作;

chmod u+x kubeadm-10y./kubeadm-10y alpha certs renew all

5.执行以下命令,所有master节点使用更新后的 admin.conf 替换 /root/.kube/config 文件,出现提示时,输入 y 后回车;

cp -i /etc/kubernetes/admin.conf $HOME/.kube/configy

6.master节点执行以下命令,查看 k8s 组件证书更新情况,RESIDUAL TIME 为 <数字>y 则标识证书已更新,且有效期10年;

kubeadm alpha certs check-expiration

7.master节点使用 kubectl 命令,检查输出是否正常

kubectl get pod -Akubectl get node

8.所有master节点载入基础镜像防止部分节点缺少基础镜像

docker load -i /usr/share/proton-cs/images.tar

9.重启服务使得所有组件能使用新证书进行工作,master节点逐台运行以下命令,以降低重启的影响:

docker restart `docker ps | grep -E 'kube-apiserver|kube-scheduler|kube-controller|etcd|apigateway' | grep kube-system | grep -v 'anyrobot\|calico' | awk '{print $1}' | xargs` &>/dev/nullsystemctl restart kubelet

10. 服务启动后还需检查kubelet 轮换证书是否已经过期,如果已经过期,需要参照 KB-3125 进行处理,检查方法如下,每个k8s节点执行命令:

openssl x509 -noout -in /var/lib/kubelet/pki/kubelet-client-current.pem -text| grep -i not

Not Before 指证书有效开始时间,Not After 指证书有效截至时间,如果 Not After 小于当前时间,说明证书已经过期,且没有自动轮换,需要手动干预解决

比如,当前时间是2024年1月16日,Not After 为 2023年5月6日,说明已经过期,需要参照 KB-3125 进行处理

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

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

相关文章

目标检测YOLO实战应用案例100讲-基于多尺度特征融合的水下小目标检测方法研究(下)

目录 2.4 基于两阶段的Faster R-CNN目标检测算法 2.5 目标检测数据集和评价标准

使用Docker搭建本地Nexus私有仓库

0-1开始Java语言编程之路 一、Ubuntu下Java语言环境搭建 二、Ubuntu下Docker环境安装 三、使用Docker搭建本地Nexus Maven私有仓库 四、Ubuntu下使用VisualStudioCode进行Java开发 你需要Nexus Java应用编译构建的一种主流方式就是通过Maven, Maven可以很方便的管理Java应用的…

全国832个贫困县名单及精准扶贫脱贫(摘帽名单)数据(2016-2020.11)

01、数据简介 自党的十八大以来&#xff0c;我国脱贫攻坚战取得了举世瞩目的伟大胜利。经过全党全国各族人民的共同努力&#xff0c;现行标准下9899万农村贫困人口全部脱贫&#xff0c;832个贫困县全部摘帽&#xff0c;12.8万个贫困村全部出列&#xff0c;区域性整体贫困得到解…

金融风控信用评分卡建模(Kaggle give me credit数据集)

1 数据预处理数据 数据来源于Kaggle的Give Me Some Credit&#xff0c;包括25万条个人财务情况的样本数据 1.1 导包读数据 import pandas as pd import numpy as np import matplotlib.pyplot as plt from sklearn.ensemble import RandomForestRegressor import seaborn as …

Excel图表智能排序

实例需求&#xff1a;表格中的多个图表如下图左侧所示&#xff0c;对于表格进行排序时&#xff0c;希望第一列中的图表跟随相应数据。 方法1&#xff1a; Sub SortTableWithChart()Dim oSht As Worksheet, RowCnt As Long, ColCnt As LongDim arrData, i As Long, oCht As Cha…

基于STM32CubeMX的嵌入式开发基础

内部没有上拉电阻&#xff0c;外部就要加一个 上拉或者下拉电阻&#xff0c;最基本上的作用是将状态不确定的信号通过一个电阻将其稳定在高电平或低电平 上拉下拉其实起的是稳定电平的作用 问题&#xff1a;单片机的外围电路设计及程序编写大多是以低电平有效来驱动电路的&…

【主流电商API接口数据采集】聚合电商API接口平台:让数据成为生产力!

API接口接入测试||文档 随着数字化商业时代的到来&#xff0c;API接口已成为电商资源连接利器&#xff0c;也是全球传统互联网企业转型的基础。 2021年 Google Cloud 研究显示&#xff0c;全球互联网企业近3/4的企业持续投入数字化转型&#xff0c;2/3的企业在持续增加投入&a…

轻松学会微信小程序开发(一)

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

Java进阶-Stream流

概述 在Java8中&#xff0c;得益于lambda所带来的函数式编程&#xff0c;引入了一个全新的Stream流的概念目的&#xff1a;用于简化集合和数组操作的api 案例 需求&#xff1a;创建一个集合存储多个字符串元素&#xff0c;将集合中所有以“z”开头的元素存储到新的集合中&am…

Torch 模型 感受野可视化

前言&#xff1a;感受野是卷积神经网络 (CNN) 中一个重要的概念&#xff0c;它表示 CNN 每一层输出的特征图上的像素点在输入图像上映射的区域。感受野的大小和形状直接影响到网络对输入图像的感知范围和精度&#xff0c;进而调整网络结构、卷积核大小和步长等参数&#xff0c;…

javaweb-maven

前端HTML,CSS,JS,Vue&#xff0c;Element&#xff0c;Nginx最后去复习&#xff0c; Java开发工程师 主要学习方向是服务端 所以进入javaweb的服务端的第一个知识点 maven 什么是maven 用于管理和构建java项目的工具 maven的官方网站 Maven – Welcome to Apache Maven …

Flink面试(1)

1.Flink 的并行度的怎么设置的&#xff1f; Flink设置并行度的几种方式 1.代码中设置setParallelism() 全局设置&#xff1a; 1 env.setParallelism(3);  算子设置&#xff08;部分设置&#xff09;&#xff1a; 1 sum(1).setParallelism(3) 2.客户端CLI设置&#xff0…

邀请全球创作者参与 The Sandbox 创作者训练营

作为首屈一指的元宇宙平台之一&#xff0c;The Sandbox 的使命是成为全球创作者的中心。随着我们对 Game Maker 的不断改进、旨在激发创作者灵感的定期 Game Jams、革命性的 "创作者挑战 "以及众多其他活动的开展&#xff0c;我们见证了大量个人加入我们充满活力的创…

opencv_5_图像像素的算术操作

方法1&#xff1a;调用库函数 void ColorInvert::mat_operator(Mat& image) { Mat dst; Mat m Mat::zeros(image.size(), image.type()); m Scalar(2, 2, 2); multiply(image, m, dst); m1 Scalar(50,50, 50); //divide(image, m, dst); //add(im…

WordPress social-warfare插件XSS和RCE漏洞【CVE-2019-9978】

WordPress social-warfare插件XSS和RCE漏洞 ~~ 漏洞编号 : CVE-2019-9978 影响版本 : WordPress social-warfare < 3.5.3 漏洞描述 : WordPress是一套使用PHP语言开发的博客平台&#xff0c;该平台支持在PHP和MySQL的服务器上架设个人博客网站。social-warfare plugin是使用…

AIGC元年大模型发展现状手册

零、AIGC大模型概览 AIGC大模型在人工智能领域取得了重大突破&#xff0c;涵盖了LLM大模型、多模态大模型、图像生成大模型以及视频生成大模型等四种类型。这些模型不仅拓宽了人工智能的应用范围&#xff0c;也提升了其处理复杂任务的能力。a.) LLM大模型通过深度学习和自然语…

SpringBoot学习路线推荐

以下是一个基本的 Spring Boot 学习路线&#xff1a; 1. 基础知识&#xff1a;了解 Java 基础、面向对象编程和设计模式。 2. Spring Boot 概述&#xff1a;学习 Spring Boot 的核心概念和优势。 3. 开发环境设置&#xff1a;配置 IDE 和相关工具。 4. 创建项目&#xff1a;使…

yolov8下实现绿萝识别

目录 一:背景 二:过程 一:背景 上一节我们学习了yolov8自带模型的使用,这一节我们讲解下yolov8的数据训练,生成模型来识别绿萝。 二:过程 1:数据准备,我们可以自己收集绿萝的图片,最起码需要准备几百张的图片。我们这里通过网络下载图片保存到一个目录等待处理。 …

Thinkphp封装统一响应

前言 我们平时开发新项目api接口的时候总是要先自定义自己的响应数据格式&#xff0c;但是每个人的风格习惯不同&#xff0c;导致开发人员封装的响应数据格式不统一&#xff0c;而且需要花时间去重复写。本篇文章主要是统一 API 开发过程中「成功」、「失败」以及「异常」情况…

MSR是个什么寄存器

MSR 这种寄存器专门用于调试、程序执行跟踪、计算机性能监控、简化软件编程、电源控制等等各种实验性功能。 什么是 MSR MSR 的概念是不易理解&#xff0c;所以这一节只说一些 MSR 的外在&#xff0c;比如形容和指令等&#xff0c;然后展开说说&#xff0c;看完整篇文章你应该…