云原生Kubernetes: K8S 1.26版本 部署KubeSphere

目錄

一、實驗

1.環境

2.K8S 1.26版本部署HELM

3.K8S 1.26版本 部署KubeSphere

4.安裝KubeSphere DevOps

二、問題

1.如何安裝Zadig

2.擴展插件Zadig安裝失敗

3.calico 如何實現不同node通信

4.如何清除docker占用的磁盤空間

5.如何強制刪除資源

6.namespace刪除不了

7.job如何實現刪除資源

8.containerd容器使用ctr命令如何實現鏡像操作


一、實驗

1.環境

(1)主機

表1 主機

主機架構版本IP備注
master1K8S master節點1.26.0192.168.204.190

node1K8S node節點1.26.0192.168.204.191

(2)Termius連接

(3)master節點查看集群

1)查看node
kubectl get node2)查看node詳細信息
kubectl get node -o wide

2.K8S 1.26版本部署HELM

(1)查閱

https://github.com/helm/helm/tags

HELM版本與K8S集群兼容

(2)策略

當前K8S 集群為1.26.0版本,HELM 3.11.x 版本可以兼容。

所以選擇3.11.0版本。

(3)下載

https://get.helm.sh/helm-v3.11.0-linux-amd64.tar.gz

Termius使用SFTP傳輸

(4)解壓

tar -zxvf helm-v3.11.0-linux-amd64.tar.gz
mv linux-amd64/helm /usr/local/bin/helm
helm version

(5)命令補全

source <(helm completion bash)

3.K8S 1.26版本 部署KubeSphere

(1)查閱

https://docs.kubesphere.com.cn/v4.0/02-quickstart/01-install-ks-core/

v1.26.x支持安裝

(2)安裝

helm upgrade --install -n kubesphere-system --create-namespace ks-core https://charts.kubesphere.io/main/ks-core-0.4.0.tgz

完整安裝過程:

[root@master1 opt]# helm upgrade --install -n kubesphere-system --create-namespace ks-core https://charts.kubesphere.io/main/ks-core-0.4.0.tgz
Release "ks-core" does not exist. Installing it now.
NAME: ks-core
LAST DEPLOYED: Wed May 22 11:57:23 2024
NAMESPACE: kubesphere-system
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
Please wait for several seconds for KubeSphere deployment to complete.1. Make sure KubeSphere components are running:kubectl get pods -n kubesphere-system2. Then you should be able to visit the console NodePort:Console: http://192.168.204.190:308803. To login to your KubeSphere console:Account: adminPassword: "P@88w0rd"NOTE: Please change the default password after login.For more details, please visit https://kubesphere.io.

(3)查看pod

kubectl get pods -n kubesphere-system

(4) 訪問

http://192.168.204.190:30880

(5)輸入初始賬戶及密碼

賬戶: admin
密碼: P@88w0rd

(6)修改密碼

(7)進入系統

(8) 集群管理

(9)擴展中心

(10)搜索市場

關鍵字“CI/CD”

4.安裝KubeSphere DevOps

(1) 查閱

KubeSphere 擴展市場

https://kubesphere.com.cn/marketplace/extensions/devops/

其他方式安裝

https://www.kubesphere.io/zh/docs/v3.4/quick-start/minimal-kubesphere-on-k8s/

(2)同步云賬戶?

(3)安裝

KubeSphere DevOps版本支持情況

Kubernetes 版本>=1.19.0-0KubeSphere 版本>=4.0.0-0

(4)下一步

(5)開始安裝

安裝中

成功

(6)下一步

(7)集群選擇

(8)確認

(9)安裝成功

(10)查看集群

二、問題

1.如何安裝Zadig

(1) 查閱

Kubesphere擴展市場

https://kubesphere.com.cn/marketplace/extensions/zadig/

Zadig版本支持情況

Kubernetes 版本>=1.16.0-1.26.0KubeSphere 版本>=4.0.0-0

(2)Zadig主頁

https://koderover.com/zadig

(3)腳本方式安裝

https://docs.koderover.com/zadig/Zadig%20v2.0.0/install/helm-deploy/

(4)Kubesphere安裝Zadig

官方腳本安裝

curl -LO https://github.com/koderover/zadig/releases/download/v2.0.0/install_quickstart.sh
chmod +x ./install_quickstart.sh

(8)申明變量

export IP=192.168.204.190
export PORT=30090

(9)安裝

./install_quickstart.sh

這里安裝過程預計持續 10 分鐘左右

2.擴展插件Zadig安裝失敗

(1)報錯

(2)原因分析

查看日志

2024-05-22T12:18:54.721997147+08:00 client.go:482: [debug] Ignoring delete failure for "zadig-post-upgrade" batch/v1, Kind=Job: jobs.batch "zadig-post-upgrade" not found

(3)解決方法

查閱相關問題

https://github.com/koderover/zadig/issues/2417

先卸載

然后重新安裝

?

下一步

開始安裝

安裝中

依然報錯

2024-05-22T12:39:41.303302680+08:00 upgrade.go:442: [debug] warning: Upgrade "zadig" failed: post-upgrade hooks failed: 1 error occurred:
2024-05-22T12:39:41.303305360+08:00 	* job failed: BackoffLimitExceeded
2024-05-22T12:39:41.303306374+08:00 
2024-05-22T12:39:41.303307165+08:00 
2024-05-22T12:39:41.327312921+08:00 Error: UPGRADE FAILED: post-upgrade hooks failed: 1 error occurred:
2024-05-22T12:39:41.327345989+08:00 	* job failed: BackoffLimitExceeded
2024-05-22T12:39:41.327352567+08:00 
2024-05-22T12:39:41.327356487+08:00 
2024-05-22T12:39:41.327363940+08:00 helm.go:84: [debug] post-upgrade hooks failed: 1 error occurred:
2024-05-22T12:39:41.327368417+08:00 	* job failed: BackoffLimitExceeded
2024-05-22T12:39:41.327371965+08:00 
2024-05-22T12:39:41.327375169+08:00 
2024-05-22T12:39:41.327380602+08:00 UPGRADE FAILED

這時可以采用腳本安裝。

?查看腳本(HELM為3.6.1版本)與master1節點沖突

node1節點部署

如報錯顯示訪問超時,需要網絡好時再執行

Error: UPGRADE FAILED: post-upgrade hooks failed: timed out waiting for the condition

3.calico 如何實現不同node通信

(1)查看

calico網絡插件

kubectl -n kube-system get po -owide | grep calico-node

可以看到有兩個容器網段分別分配給了master1和node1

kubectl get ipamblocks

(2)查看具體信息

kubectl get ipamblocks 10-244-137-64-26 -oyaml
kubectl get ipamblocks 10-244-166-128-26 -oyaml

(3)查看路由表

查看master1路由表(目標地址為10.244.66.128/26的請求會被通過網卡tunl0轉發到192.168.204.191,也就是node1上;master1節點本機上的POD IP,則會直接被路由到對應的calico網卡。)

route -n

?查看node1路由表(node01上也可以看到類似的路由條目,目標地址為10.244.137.64/26的請求會被通過網卡tunl0轉發到192.168.204.190,也就是master1上)

route -n

4.如何清除docker占用的磁盤空間

(1)查詢

master1節點查看docker占用磁盤空間

docker system dfdocker system df -v

node1節點查看docker占用磁盤空間

(2)清除

master1節點僅刪除停止運行的容器

docker container prune

noder1節點僅刪除停止運行的容器

5.如何強制刪除資源

(1)刪除pod

命令

kubectl delete pod <your-pod-name> -n <name-space> --force --grace-period=0

刪除

kubectl delete --all pods -n zadig  --force --grace-period=0

kubectl delete --all pods -n argocd  --force --grace-period=0

kubectl delete --all pods -n extension-devops  --force --grace-period=0

kubectl delete --all pods -n extension-zadig  --force --grace-period=0

(2)刪除pv、pvc

kubectl patch pv xxx -p '{"metadata":{"finalizers":null}}'
kubectl patch pvc xxx -p '{"metadata":{"finalizers":null}}'

6.namespace刪除不了

(1)報錯

kubesphere-devops-system 一直為Terminating

(2)原因分析

選擇一個Terminating namespace,并查看namespace 中的finalizer。

kubectl get namespace kubesphere-devops-system -o yaml

顯示如下:

spec:finalizers:- kubernetes

(3)解決方法

導出json格式到文件

kubectl get namespace kubesphere-devops-system  -o json >tmp.json

編輯tmp.josn,刪除finalizers 字段的值

 25     "spec": {                    #從此行開始刪除26         "finalizers": [27             "kubernetes"28         ]29     },                           # 刪到此行

開啟proxy(執行該命令后,當前終端會被卡住)

kubectl proxy

打開新的一個窗口,執行以下命令

curl -k -H "Content-Type: application/json" -X PUT --data-binary @tmp.json http://127.0.0.1:8001/api/v1/namespaces/kubesphere-devops-system/finalize

確認處于Terminating 狀態的namespace已經被刪除

7.job如何實現刪除資源

(1)查看狀態

目前為已完成

(2)查看YAML

kind: Job
apiVersion: batch/v1
metadata:name: devops-post-deletenamespace: extension-devopslabels:controller-uid: 0e83e553-482f-4755-834a-9c0f07d4c5b9job-name: devops-post-deleteannotations:batch.kubernetes.io/job-tracking: ''helm.sh/hook: post-deletehelm.sh/hook-delete-policy: 'before-hook-creation,hook-succeeded'helm.sh/hook-weight: '1'revisions: >-{"1":{"status":"completed","succeed":1,"desire":1,"uid":"0e83e553-482f-4755-834a-9c0f07d4c5b9","start-time":"2024-05-22T15:52:49+08:00","completion-time":"2024-05-22T16:22:50+08:00"}}
spec:parallelism: 1completions: 1backoffLimit: 6selector:matchLabels:controller-uid: 0e83e553-482f-4755-834a-9c0f07d4c5b9template:metadata:creationTimestamp: nulllabels:controller-uid: 0e83e553-482f-4755-834a-9c0f07d4c5b9job-name: devops-post-deletespec:containers:- name: post-delete-jobimage: 'kubesphere/kubectl:v1.27.4'command:- /bin/bash- '-c'- |if kubectl get ns argocd; thenkubectl delete ns argocdfiif kubectl get ns kubesphere-devops-system; thenkubectl delete ns kubesphere-devops-systemfiif kubectl get ns kubesphere-devops-worker; thenkubectl delete ns kubesphere-devops-workerfiresources: {}terminationMessagePath: /dev/termination-logterminationMessagePolicy: FileimagePullPolicy: IfNotPresentrestartPolicy: NeverterminationGracePeriodSeconds: 30dnsPolicy: ClusterFirstsecurityContext: {}schedulerName: default-schedulercompletionMode: NonIndexedsuspend: false

8.containerd容器使用ctr命令如何實現鏡像操作

(1)幫助命令

[root@node1 ~]# ctr images --help
NAME:ctr images - manage imagesUSAGE:ctr images command [command options] [arguments...]COMMANDS:check                    check existing images to ensure all content is available locallyexport                   export imagesimport                   import imageslist, ls                 list images known to containerdmount                    mount an image to a target pathunmount                  unmount the image from the targetpull                     pull an image from a remotepush                     push an image to a remotedelete, del, remove, rm  remove one or more images by referencetag                      tag an imagelabel                    set and clear labels for an imageconvert                  convert an imageOPTIONS:--help, -h  show help

(2)拉取

ctr images pull ghcr.io/dexidp/dex:v2.30.2

(3) 查看

crictl images list
或
ctr images list
或
ctr i ls -q

(4)導出

ctr image export  dev.tar.gz  ghcr.io/dexidp/dex:v2.30.2

(5)刪除

1)查詢
ctr image list | grep  ghcr.io/dexidp/dex:v2.30.22)刪除
ctr image delete  ghcr.io/dexidp/dex:v2.30.2

(6)導入

1)導入
ctr image import  dev.tar.gz2)查詢
ctr image list | grep  ghcr.io/dexidp/dex:v2.30.2

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

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

相關文章

CGAL 點云生成高程模型數據(DSM)

點云生成高程模型 一、什么是DSM?二、C++代碼三、結果可視化一、什么是DSM? DSM(Digital Surface Model)是一種數字高程模型,通常用于描述地表地形的數字化表示。它是由一系列離散的高程數據點組成的三維地形模型,其中每個點都具有其相應的高程值。 ??DSM主要用于獲取和…

宿舍管理系統--畢業設計

畢業設計&#x1f4bc;MD5加密&#x1f512;SSM框架&#x1f3a8;Layui框架&#x1f384; 實現功能 管理員的登錄與登出 管理員,班級,學生,宿舍&#xff0c;衛生&#xff0c;訪客各模塊增刪改查 個別模塊關聯查詢 各個模塊數據導出Excel 一些截圖

[4]CUDA中的向量計算與并行通信模式

CUDA中的向量計算與并行通信模式 本節開始&#xff0c;我們將利用GPU的并行能力&#xff0c;對其執行向量和數組操作討論每個通信模式&#xff0c;將幫助你識別通信模式相關的應用程序&#xff0c;以及如何編寫代碼 1.兩個向量加法程序 先寫一個通過cpu實現向量加法的程序如…

軟件設計:基于 python 代碼快速生成 UML 圖

1. 官方文檔 PlantUML Language Reference Guide Comate | 百度研發編碼助手 百度 Comate (Coding Mate Powered by AI) 是基于文心大模型的智能代碼助手&#xff0c;結合百度積累多年的編程現場大數據和外部優秀開源數據&#xff0c;可以生成更符合實際研發場景的優質代碼。…

自動化測試里的數據驅動和關鍵字驅動思路的理解

&#x1f345; 視頻學習&#xff1a;文末有免費的配套視頻可觀看 &#x1f345; 點擊文末小卡片&#xff0c;免費獲取軟件測試全套資料&#xff0c;資料在手&#xff0c;漲薪更快 初次接觸自動化測試時&#xff0c;對數據驅動和關鍵字驅動不甚理解&#xff0c;覺得有點故弄玄須…

GBDT、XGBoost、LightGBM算法詳解

文章目錄 一、GBDT (Gradient Boosting Decision Tree) 梯度提升決策樹1.1 回歸樹1.2 梯度提升樹1.3 Shrinkage1.4 調參1.5 GBDT的適用范圍1.6 優缺點 二、XGBoost (eXtreme Gradient Boosting)2.1 損失函數2.2 正則項2.3 打分函數計算2.4 分裂節點2.5 算法過程2.6 參數詳解2.7…

oracle中insert all的用法

1、簡述 使用insert into語句進行表數據行的插入&#xff0c;但是oracle中有一個更好的實現方式&#xff1a;使用insert all語句。 insert all語句是oracle中用于批量寫數據的 。insert all分又為 無判斷條件插入有判斷條件插入有判斷條件插入分為 Insert all when... 子句 …

利用 MongoDB Atlas 進行大模型語義搜索和RAG

節前&#xff0c;我們星球組織了一場算法崗技術&面試討論會&#xff0c;邀請了一些互聯網大廠朋友、參加社招和校招面試的同學. 針對算法崗技術趨勢、大模型落地項目經驗分享、新手如何入門算法崗、該如何準備、面試常考點分享等熱門話題進行了深入的討論。 匯總合集&…

基于英飛凌BGT60LTR11AIP E6327芯片具低功耗的脈沖多普勒操作模式常用于汽車應用的雷達上

芯片特征&#xff1a; 60 GHz收發器MMIC&#xff0c;帶一個發射器和一個接收器單元封裝天線&#xff08;AIP&#xff09;&#xff08;6.73.30.56 mm3)低功耗的脈沖多普勒操作模式自主模式用于運動和運動方向的集成檢測器運動檢測信號的直接輸出目標檢測范圍的15個可配置閾值檢測…

Android14之Binder調試(二百一十一)

簡介&#xff1a; CSDN博客專家&#xff0c;專注Android/Linux系統&#xff0c;分享多mic語音方案、音視頻、編解碼等技術&#xff0c;與大家一起成長&#xff01; 優質專欄&#xff1a;Audio工程師進階系列【原創干貨持續更新中……】&#x1f680; 優質專欄&#xff1a;多媒…

前端面試題日常練-day21 【面試題】

題目 希望這些選擇題能夠幫助您進行前端面試的準備&#xff0c;答案在文末。 AJAX 是什么的縮寫&#xff1f; a) Asynchronous JavaScript and XMLb) Asynchronous JavaScript and XHTMLc) Asynchronous Java and XMLd) Asynchronous Java and XHTML使用 AJAX 可以實現以下哪…

2024年5月20日優雅草蜻蜓API大數據服務中心v2.0.4更新

v2.0.4更新 v2.0.4更新 2024年5月20日優雅草蜻蜓API大數據服務中心v2.0.4更新-增加ai繪畫接口增加淘寶聯想詞接口底部增加聯系方式 更新日志 底部增加聯系方式 增加ai繪畫接口 增加淘寶聯想詞接口 增加用戶中心充值提示 用戶中心內頁顏色改版完成 截圖 部分具體更新接口信…

神經網絡優化器-從SGD到AdamW

優化器準則 凸優化基本概念 先定義凸集&#xff0c;集合中的兩個點連接的線還在集合里面&#xff0c;就是凸集&#xff0c;用數學語言來表示就是&#xff1a;對于集合中的任意兩個元素x&#xff0c;y以及任意實數 λ ∈ ( 0 , 1 ) \lambda \in (0,1) λ∈(0,1)&#xff0c;有…

【NLP】詞性標注

詞 詞是自然語言處理的基本單位&#xff0c;自動詞法分析就是利用計算機對詞的形態進行分析&#xff0c;判斷詞的結構和類別。 詞性&#xff08;Part of Speech&#xff09;是詞匯最重要的特性&#xff0c;鏈接詞匯和句法 詞的分類 屈折語&#xff1a;形態分析 分析語&#…

k8s 1.24.x之后如果rest 訪問apiserver

1.由于 在 1.24 &#xff08;還是 1.20 不清楚了&#xff09;之后&#xff0c;下面這兩個apiserver的配置已經被棄用 了&#xff0c;簡單的說就是想不安全的訪問k8s是不可能了&#xff0c;所以只能走安全的訪問方式也就是 https://xx:6443了&#xff0c;所以需要證書。 - --ins…

Git系列:git rm 的高級使用技巧

&#x1f49d;&#x1f49d;&#x1f49d;歡迎蒞臨我的博客&#xff0c;很高興能夠在這里和您見面&#xff01;希望您在這里可以感受到一份輕松愉快的氛圍&#xff0c;不僅可以獲得有趣的內容和知識&#xff0c;也可以暢所欲言、分享您的想法和見解。 推薦:「stormsha的主頁」…

【go項目01_學習記錄15】

重構MVC 1 Article 模型1.1 首先創建 Article 模型文件1.2 接下來創建獲取文章的方法1.3 新增 types.StringToUint64()函數1.4 修改控制器的調用1.5 重構 route 包1.6 通過 SetRoute 來傳參對象變量1.7 新增方法&#xff1a;1.8 控制器將 Int64ToString 改為 Uint64ToString1.9…

【數據結構】棧和隊列的相互實現

歡迎瀏覽高耳機的博客 希望我們彼此都有更好的收獲 感謝三連支持&#xff01; 1.用棧實現隊列 當隊列中進入這些元素時&#xff0c;相應的棧1中元素出棧順序與出隊列相反&#xff0c;因此我們可以使用兩個棧來使元素的出棧順序相同&#xff1b; 通過將棧1元素出棧&#xff0c;再…

Databend 倒排索引的設計與實現

倒排索引是一種用于全文搜索的數據結構。它的主要功能是將文檔中的單詞作為索引項&#xff0c;映射到包含該單詞的文檔列表。通過倒排索引&#xff0c;可以快速準確地定位到與查詢詞相匹配的文檔列表&#xff0c;從而大幅提高查詢性能。倒排索引在搜索引擎、數據庫和信息檢索系…

matlab實現繪制煙花代碼

下面是一個簡化的示例&#xff0c;它使用MATLAB的繪圖功能來模擬煙花爆炸的視覺效果。請注意&#xff0c;這個示例是概念性的&#xff0c;并且可能需要根據您的具體需求進行調整。 % 初始化參數 num_fireworks 5; % 煙花數量 num_particles_per_firework 200; % 每個煙花…