kubernetes證書續簽-使用kubeadm更新證書(下)

#作者:任少近

文章目錄

  • 查看kubelet證書
    • 查看kubelet當前所使用的證書
  • 更換 node上的kubelet證書
    • 生成node1所需要的kubelet.conf文件
    • 生成node2所需要的kubelet.conf文件
    • 查看csr
  • 更新 ~/.kube/config 文件
  • 重啟相關組件

查看kubelet證書

以上少了kubelet的證書,kubelet證書該如何查看?通過openssl x509查看證書日期?

[root@k8s-master pki]#openssl x509 -in /var/lib/kubelet/pki/kubelet-client-current.pem -noout -text |grep NotValidityNot Before: May 1 07:59:28 2024 GMTNot After 	: May 1 07:59:28 2025 GMT

以上表示過期

查看kubelet當前所使用的證書

[root@master kubernetes]# ll -a /var/lib/kubelet/pki/
-rw-------. 1 root root 1114 Jun 24 15:34 kubelet-client-2025-06-24-15-34-28.pem
lrwxrwxrwx. 1 root root   59 Jun 24 15:34 kubelet-client-current.pem -> /var/lib/kubelet/pki/kubelet-client-2025-06-24-15-34-28.pem
-rw-r--r--. 1 root root 2266 Jun 19  2024 kubelet.crt
-rw-------. 1 root root 1679 Jun 19  2024 kubelet.key
這里kubelet-client-2025-06-24-15-34-28.pem是新頒發的證書。
此時kubelet-client-current.pem是軟連接到kubelet-client-2025-06-24-15-34-28.pem的。#通過kubeadm certs renew all更新的k8s 證數,是不會更新kubelet.conf的證書的。
#因為前面已經重新生成了kubelet.conf,現在重啟kubelet。
[root@master kubernetes]# systemctl restart kubelet[root@master kubernetes]# ll -a /var/lib/kubelet/pki/
在master上查看證書簽名請求(簡稱為CSR),并批準此CSR
[root@k8s-master kubernetes]# kubectl get csr
NAME        AGE   SIGNERNAME                                    REQUESTOR                REQUESTEDDURATION   CONDITION
csr-rv2vx   23m   kubernetes.io/kube-apiserver-client-kubelet   system:node:k8s-master   <none>              Approved,Issued#批準次CSR
[root@k8s-master kubernetes]# kubectl certificate approve csr-rv2vx (也可不需要執行此步驟)
certificatesigningrequest.certificates.k8s.io/csr-rv2vx approved 

在這里插入圖片描述
查看當前kubelet證書的過期時間,這里顯示過期時間到明年的2026年6月24日,已經是一年期間了,表示已成功更新證書

[root@k8s-master kubernetes]#  openssl x509 -in /var/lib/kubelet/pki/kubelet-client-current.pem -noout -text |grep NotNot Before: Jun 24 07:29:28 2025 GMTNot After : Jun 24 07:29:28 2026 GMT

更換 node上的kubelet證書

查看node1、node2上的kubelet證書,為老版的證書,可以看到是去年2024年6月份的證書

[root@k8s-master ansiable-book]# ansible k8s_node -m shell -a "ls -al /var/lib/kubelet/pki" -i host.yaml --limit '11.0.1.111,11.0.1.112'
11.0.1.111 | CHANGED | rc=0 >>
total 12
drwxr-xr-x. 2 root root  124 Jun 19  2024 .
drwx------. 8 root root  208 Jun 19  2024 ..
-rw-------. 1 root root 1114 Jun 19  2024 kubelet-client-2024-06-19-23-26-37.pem
lrwxrwxrwx. 1 root root   59 Jun 19  2024 kubelet-client-current.pem -> /var/lib/kubelet/pki/kubelet-client-2024-06-19-23-26-37.pem
-rw-r--r--. 1 root root 2258 Jun 19  2024 kubelet.crt
-rw-------. 1 root root 1679 Jun 19  2024 kubelet.key
11.0.1.112 | CHANGED | rc=0 >>
total 12
drwxr-xr-x. 2 root root  124 Jun 19  2024 .
drwx------. 8 root root  208 Jun 19  2024 ..
-rw-------. 1 root root 1114 Jun 19  2024 kubelet-client-2024-06-19-23-26-54.pem
lrwxrwxrwx. 1 root root   59 Jun 19  2024 kubelet-client-current.pem -> /var/lib/kubelet/pki/kubelet-client-2024-06-19-23-26-54.pem
-rw-r--r--. 1 root root 2258 Jun 19  2024 kubelet.crt
-rw-------. 1 root root 1679 Jun 19  2024 kubelet.key

在這里插入圖片描述

生成node1所需要的kubelet.conf文件

#在master創建臨時node1所需要的kubelet.conf到目錄
[root@k8s-master]# mkdir -p /node1
#生成k8s-node1所需要的kubelet.conf文件。注意更改成自己的信息
[root@k8s-master ~]# kubeadm init --kubernetes-version=v1.23.17 phase kubeconfig kubelet --node-name k8s-node1 --kubeconfig-dir node1/
[kubeconfig] Writing "kubelet.conf" kubeconfig file#到node1,對/etc/kubernetes/目錄里覆蓋原來的kubelet.conf。先備份原先node1的kubelet.conf文件:
[root@k8s-node1 ~]# cp -a /etc/kubernetes/ /etc/kubernetes.bak20250623到master上執行
[root@k8s-master node1]# scp kubelet.conf root@k8s-node1:/etc/kubernetes到node1上,重啟kubelet
[root@k8s-node1 kubernetes]# systemctl restart kubelet
[root@k8s-node1 kubernetes]# systemctl status kubelet

如下圖,node1上的kubelet正常運行,且無任何異常信息
在這里插入圖片描述

查看csr

[root@k8s-master ~]# kubectl get csr
NAME        AGE     SIGNERNAME                                    REQUESTOR                REQUESTEDDURATION   CONDITION
csr-8d7fh   11m     kubernetes.io/kube-apiserver-client-kubelet   system:node:k8s-node1    <none>              Approved,Issued
csr-rv2vx   76m     kubernetes.io/kube-apiserver-client-kubelet   system:node:k8s-master   <none>              Approved,Issued

生成node2所需要的kubelet.conf文件

#在master創建臨時node2所需要的kubelet.conf到目錄
[root@k8s-master]# mkdir -p /node2
#生成k8s-node2所需要的kubelet.conf文件。注意更改成自己的信息
[root@k8s-master ~]# kubeadm init --kubernetes-version=v1.23.17 phase kubeconfig kubelet --node-name k8s-node2 --kubeconfig-dir node2/
[kubeconfig] Writing "kubelet.conf" kubeconfig file#到node2,對/etc/kubernetes/目錄里覆蓋原來的kubelet.conf。先備份原先node1的kubelet.conf文件:
[root@k8s-node2 ~]# cp -a /etc/kubernetes/ /etc/kubernetes.bak20250623到master上執行
[root@k8s-master node2]# scp kubelet.conf root@k8s-node2:/etc/kubernetes到node2上,重啟kubelet
[root@k8s-node2 kubernetes]# systemctl restart kubelet
[root@k8s-node2 kubernetes]# systemctl status kubelet

如下圖,node2上的kubelet正常運行,且無任何異常信息
在這里插入圖片描述

查看csr

在這里插入圖片描述
看到集群:
在這里插入圖片描述
在這里插入圖片描述

更新 ~/.kube/config 文件

~/.kube/config 文件充當 Kubernetes 集群的配置文件,主要用于保存集群訪問的相關信息。它包含了與 Kubernetes API 服務器通信所需的各種細節,例如服務器地址、所使用的上下文(context)、認證信息(比如證書)等。通過維護這個文件,用戶能夠利用 kubectl 命令行工具來與 Kubernetes 集群進行有效的互動和管理。簡而言之,該文件是連接和操作 Kubernetes 集群的關鍵憑證,確保了用戶可以順利執行各種集群管理和應用部署任務。
mv /root/.kube/config /root/.kube/config.old
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
hown ( i d ? u ) : (id -u): (id?u):(id -g) $HOME/.kube/config
chmod 644 $HOME/.kube/config

重啟相關組件

這一步我們查看etcd已經起來了,
[root@k8s-master ~]# kubectl get pod -A |grep etcd kube-system etcd-k8s-master 1/1 Running 19 (22d ago) 2y11d [root@k8s-master ~]# kubectl -n kube-system delete pod etcd-k8s-master
[root@k8s-master ~]# kubectl get pod -A -w |grep etcd kube-system etcd-k8s-master 1/1 Running 19 (22d ago) 14s

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/86304.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/86304.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/86304.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

AI智能體長期記憶系統架構設計:從認知模型到生產實踐

1 長期記憶:AI智能體的認知基石 1.1 人類記憶與AI記憶的類比 #mermaid-svg-VIPKAFe7VgN4UHFA {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-VIPKAFe7VgN4UHFA .error-icon{fill:#552222;}#mermaid-svg-VIPKAFe7V…

快速上手:利用音頻大模型與Java提取視頻文案

文章目錄 1、前言2、需求說明2.1 需求說明2.2 數據準備 3、功能實現3.1 使用視頻理解大模型能力3.1.1 三方平臺視頻在線鏈接解析3.1.2 三方平臺視頻內網鏈接解析3.1.3 三方平臺視頻轉存本地服務 3.2 使用音頻識別大模型能力3.2.1 三方平臺視頻在線鏈接解析3.2.2 三方平臺視頻詳…

LLM復雜記憶存儲-多會話隔離案例實戰

導讀&#xff1a;在多用戶并發的對話系統中&#xff0c;會話隔離問題往往成為開發者面臨的技術難題。當數千個用戶同時與AI助手交互時&#xff0c;如何確保每個用戶的對話歷史完全獨立&#xff0c;避免數據混淆和隱私泄露&#xff1f; 本文深入剖析了基于RunnableWithMessageHi…

【PX4-AutoPilot教程-TIPS】PX4系統命令行控制臺ConsolesShells常用命令(持續更新)

PX4系統命令行控制臺 Consoles & Shells 常用命令 查看每個應用程序的堆棧使用情況獲取所有可用命令和APP的列表應用程序啟動、停止和狀態查詢查看本地文件系統查看剩余的可用RAM查看工作隊列中正在運行的內容以及運行速率查看特定的uORB話題調試uORB話題進行模式切換和故障…

國內優秀wordpress主題推薦

在國內&#xff0c;WordPress 主題市場雖然不如國外那樣龐大&#xff0c;但依然有許多優秀且適合中國用戶需求的主題。以下是一些經過評估和推薦的國內優秀WordPress主題&#xff0c;涵蓋不同類型的網站需求&#xff0c;如博客、企業官網、資源站、社區論壇等。 WP漢主題 WP漢…

第 6 章:進階話題

第 6 章&#xff1a;進階話題 過擬合vs欠擬合&#xff1a;模型復雜度和泛化能力的關系 在前面的章節中&#xff0c;我們已經學習了神經網絡的基礎知識、常見架構和基本訓練流程。然而&#xff0c;在實際的深度學習項目中&#xff0c;僅僅掌握這些基礎知識是不夠的。我們還需要…

4.2_1樸素模式匹配算法

知識總覽&#xff1a; 什么是字符串的模式匹配&#xff1a; 主串&#xff1a;想從該串獲取結果的串 模式串&#xff1a;想搜索的內容&#xff0c;不一定在主串中能搜到&#xff0c;子串一定能在主串中搜到 字符串模式匹配&#xff1a;在主串找模式串并返回找到的第一個模式串…

華為云Flexus+DeepSeek征文|華為云ModelArts搭建Dify-LLM應用開發平臺(AI智能選股大模型)

前言 在當今數字化時代&#xff0c;人工智能&#xff08;AI&#xff09;技術在金融領域的應用愈發廣泛&#xff0c;其中 AI 智能選股大模型備受關注。為了構建高效且精準的 AI 智能選股大模型&#xff0c;選擇合適的開發平臺和工具至關重要。華為云 ModelArts 作為一款面向 AI …

C4.5算法深度解析:決策樹進化的里程碑

C4.5是機器學習史上最經典的算法之一&#xff0c;由ID3之父Ross Quinlan在1993年提出。作為ID3的革命性升級&#xff0c;它不僅解決了前代的核心缺陷&#xff0c;更開創了連續特征處理和剪枝技術的先河&#xff0c;成為現代決策樹的奠基之作。 本文由「大千AI助手」原創發布&am…

leetcode 65

#include <string> #include <vector> #include <unordered_map> using namespace std;class Solution { public:bool isNumber(string s) {// 定義狀態轉移表vector<unordered_map<char, int>> states {{{ , 0}, {s, 1}, {d, 2}, {., 4}}, // …

微服務(nacos+myibatis)中如何在一個模塊調用多數據庫源的一種方案

#nacos配置默認數據庫 spring.datasource.typecom.alibaba.druid.pool.DruidDataSource spring.datasource.driverNamecom.mysql.jdbc.Driver #默認數據庫名 master spring.datasource.dynamic.primarymaster spring.datasource.dynamic.strictfalse spring.datasource.d…

高標準通信國際接軌,Ethercat與PROFINET網關實現全自動化生產線

在呼和浩特&#xff0c;集成商以其先進的食品飲料行業解決方案&#xff0c;為乳制品行業打造了一個智能化工廠的典范。這個工廠的核心是PROFINET全集成自動化&#xff08;TIA&#xff09;&#xff0c;它通過SIMATIC S7-1200 PLC和ethercat系統&#xff0c;構建了一個強大的PROF…

Netty 引用計數抽象類 AbstractReferenceCountedByteBuf 詳解

核心類圖 ----------------------------- ---------------------------------- | ReferenceCountUpdater | | AbstractReferenceCountedByteBuf | | <T extends ReferenceCounted>| | (extends AbstractByteBuf) | ----------…

用Python做一個手機鏡頭

文章目錄 設置光學參數添加光學器件 設置光學參數 官方文檔&#xff1a;設計手機鏡頭 rayoptics中提供了OpticalModel類&#xff0c;可用于創建光學模型對象。OpticalModel類中的【optical_spec】成員&#xff0c;是一個OpticalSpecs對象&#xff0c;可用于指定光圈、視野、光…

16.1 Python應用容器化終極指南:Dockerfile多階段構建與安全優化實戰

Python應用容器化終極指南:Dockerfile多階段構建與安全優化實戰 #mermaid-svg-6Yor3ONhmPaQAcY6 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-6Yor3ONhmPaQAcY6 .error-icon{fill:#552222;}#mermaid-svg-6Yor3ON…

基于SpringBoot + Vue打造的畫師約稿平臺實現

概述 基于SpringBoot Vue打造的畫師約稿平臺&#xff0c;該平臺設計精美、功能完善&#xff0c;無論是想要搭建類似平臺的開發者&#xff0c;還是對畫師約稿系統感興趣的人士&#xff0c;都能從中獲取有價值的信息。 主要內容 ??用戶端功能??&#xff1a; 如圖所示&…

杰理-耳機-可視化sdk-最大音量提示音-7016G

杰理-耳機-可視化sdk-最大音量提示音 1.音量最大的時候發出消息 2.通過 MSG_FROM_AUDIO 進行發送 3.創建地方接收&#xff0c;并且播放提示音 學習q群:187115320

抖音圖文帶貨權限怎么開通

在這個數字化營銷蓬勃發展的時代&#xff0c;抖音作為一個流量巨大的平臺&#xff0c;為廣大創作者和商家提供了豐富的變現途徑。其中&#xff0c;圖文帶貨權限就是一個有效的拓寬變現能力的一個渠道。 那么&#xff0c;如何才能開通抖音的圖文帶貨功能呢&#xff1f; 開通抖…

80、指標監控-Boot Admin Server

80、指標監控-Boot Admin Server Boot Admin Server是一個用于監控和管理Spring Boot應用程序的開源工具&#xff0c;以下是其相關介紹&#xff1a; #### 主要功能 - **應用狀態監控** - 顯示應用的在線狀態、啟動時間、運行時長等基本信息。 - 監控JVM指標&#xff0c;如內存…

Linux系統之Nginx反向代理與緩存

目錄 一、正向代理和反向代理 1.1 正向代理概述 1.1.1 什么是正向代理 1.1.2 正向代理的作用 1.1.3 正向代理的基本格式 1.2 反向代理概述 1.2.1 什么是反向代理 1.2.2 反向代理可實現的功能 1.2.3 反向代理的可用模塊 二、配置反向代理 2.1 反向代理配置參數 2.1.…