【國產化-K8s】混合架構的 K8s + KubeSphere 部署指南

本文由 KubeSphere 社區貢獻者 天行1st 編寫。本文為作者實踐總結。本文記錄了在信創環境中基于混合架構(x86 與 ARM64)部署 KubernetesKubeSphere 的實踐過程,覆蓋多種國產 CPU 和操作系統,具有一定的參考價值。

環境涉及軟件版本信息

  • 服務器芯片: 鯤鵬/飛騰2500(arm64)+海光/兆芯(x86)
  • 操作系統:銀河麒麟V10+openEuler+麒麟信安+龍蜥
  • Containerd: 1.7.13
  • Kubernetes:v1.32.5
  • KubeSphere:v4.1.3
  • KubeKey: v3.1.10(二開版)

服務器基本信息

主機名架構OSCPUIP
master1arm64麒麟信安 3Kunpeng-920192.168.0.219
master2x86_64歐拉 20.03Hygon C86 3350192.168.0.87
master3arm64麒麟V10 sp1Phytium,FT-2500192.168.0.120
node1x86_64龍蜥 8.6KX-5000192.168.0.158
node2arm64UOSKunpeng-920192.168.0.89

1.說明

作者使用K8sKubeSphere過程中已適配芯片和操作系統如下:

  • CPU芯片:
    • 鯤鵬
    • 飛騰
    • 海光
    • 兆芯
    • 國際芯片:intel、ARM等
  • 操作系統
    • 銀河麒麟V10
    • 麒麟國防版
    • 麒麟信安
    • 中標麒麟V7
    • 統信 UOS
    • 華為歐拉 openEuler、移動大云
    • 阿里龍蜥 Anolis OS
    • 騰訊 TencentOS
    • 國際操作系統:CentOS、Ubuntu、Debian等

關于 kt

kt是基于Kubekey二次開發的產物,具備Kubekey的所有功能,二開主要為適配信創國產化環境、簡化ARM部署過程和國產化環境離線部署。支持ARM64AMD64架構國產操作系統,已適配芯片+操作系統如上。

2.環境準備

將對應架構 kt_**.tar.gz 上傳至每個節點

2.1 系統初始化

解壓kt文件后執行./kt init-os 已適配操作系統和架構見1.說明

該命令kk會自動判斷操作系統和架構以安裝依賴項和進行必要的初始化配置。

3 創建 Kubernetes 集群

以下操作默認在master1執行

3.1 創建安裝目錄

home目錄下創建ks目錄,用于安裝部署 K8s+ KubeSphere 。

此處之所以在/home目錄下安裝,是有些客戶自帶操作系統而且默認根目錄下只有50G空間,而更大的空間在/home目錄下。筆者所在公司可能需要到用戶提供的服務器和操作系統安裝集群,為避免空間占用不足,直接到/home下新建。

mkdir -p /home/ks
cd /home/ks

3.2 上傳kt

kt移動至/home/ks目錄下

3.3 創建集群配置文件

主要修改相關節點和harbor信息

./kt create config --with-kubernetes v1.32.5

3.4 修改配置文件

根據實際服務器信息,配置到生成的config-sample.yaml

apiVersion: kubekey.kubesphere.io/v1alpha2
kind: Cluster
metadata:name: sample
spec:hosts:- {name: master1, address: 192.168.0.219, internalAddress: 192.168.0.219, user: root, password: "123@213", arch: arm64}- {name: master2, address: 192.168.0.87, internalAddress: 192.168.0.87, user: root, password: "123@213"}- {name: master3, address: 192.168.0.120, internalAddress: 192.168.0.120, user: root, password: "123r@213", arch: arm64}- {name: node1, address: 192.168.0.158, internalAddress: 192.168.0.158, user: root, password: "123@213"}- {name: node2, address: 192.168.0.89, internalAddress: 192.168.0.89, user: root, password: "123@213", arch: "arm64"}roleGroups:etcd:- master1- master2- master3control-plane: - master1- master2- master3worker:- node1- node2controlPlaneEndpoint:## Internal loadbalancer for apiservers internalLoadbalancer: haproxydomain: lb.kubesphere.localaddress: ""port: 6443kubernetes:version: v1.32.5clusterName: cluster.localautoRenewCerts: truecontainerManager: containerdetcd:type: kubekeynetwork:plugin: calicokubePodsCIDR: 10.233.64.0/18kubeServiceCIDR: 10.233.0.0/18## multus support. https://github.com/k8snetworkplumbingwg/multus-cnimultusCNI:enabled: falseregistry:privateRegistry: ""namespaceOverride: ""registryMirrors: []insecureRegistries: []addons: []

說明: 具體參數含義可查看官方文檔:在 Linux 上安裝 Kubernetes 和 KubeSphere,這里寫一下注意事項

config-sample.yaml 配置文件的 spec:hosts 參數

官方介紹

  • address 服務器的 SSH 登錄 IP 地址。
  • internalAddress 服務器在子網內部的 IP 地址。

注:若部署的服務器在同一區域,內網IP可以互通,address 和internalAddress 都使用內網IP。之前遇到過有的小伙伴買的云服務器做測試,address使用公網IP,由于部署過程通信拷貝文件走了address,公網帶寬又低。導致創建集群時異常的慢。

3.5 創建 K8s 集群

export KKZONE=cn./kt create cluster -f config-sample.yaml

執行后會有如下提示,輸入 yes/y 繼續執行

等待一段時間,看到輸入成功的消息

3.6 驗證

  • 查看節點狀態
kubectl get nodes -o wide
[root@master1 ~]# kubectl get nodes -owide
NAME      STATUS   ROLES           AGE     VERSION   INTERNAL-IP     EXTERNAL-IP   OS-IMAGE                                   KERNEL-VERSION                           CONTAINER-RUNTIME
master1   Ready    control-plane   3m10s   v1.32.5   192.168.0.219   <none>        KylinSecOS Linux 3 (Core)                  4.19.90-2003.4.0.0036.ky3.kb13.aarch64   containerd://1.7.13
master2   Ready    control-plane   2m28s   v1.32.5   192.168.0.87    <none>        openEuler 20.03 (LTS)                      4.19.90-2003.4.0.0036.oe1.x86_64         containerd://1.7.13
master3   Ready    control-plane   2m58s   v1.32.5   192.168.0.120   <none>        Kylin Linux Advanced Server V10 (Tercel)   4.19.90-17.5.ky10.aarch64                containerd://1.7.13
node1     Ready    worker          2m27s   v1.32.5   192.168.0.158   <none>        Anolis OS 8.6                              4.19.91-26.an8.x86_64                    containerd://1.7.13
node2     Ready    worker          2m27s   v1.32.5   192.168.0.89    <none>        UOS Server Euler 20                        4.19.90-2005.2.0.0039.uel20.aarch64      containerd://1.7.13
[root@master1 ~]#
  • 查看pod狀態
kubectl get pod -A -o wide

4.安裝 KubeSphere

helm upgrade --install -n kubesphere-system --create-namespace ks-core https://charts.kubesphere.io/main/ks-core-1.1.5.tgz \--set global.imageRegistry=swr.cn-south-1.myhuaweicloud.com/gjing1st \--set extension.imageRegistry=swr.cn-south-1.myhuaweicloud.com/gjing1st \--set ksExtensionRepository.image.tag=v1.1.6 \--debug \--wait

若有x86鏡像錯誤,可至所在節點進行x86鏡像拉取重命名,類似:

#拉取x86鏡像
crictl pull swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/ks-controller-manager:v4.1.3
#打tag
ctr -n=k8s.io image tag --force \swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/ks-controller-manager:v4.1.3 \swr.cn-south-1.myhuaweicloud.com/gjing1st/kubesphere/ks-controller-manager:v4.1.3

等待一段時間看到成功消息

查看pod列表

5.驗證

  • 登錄頁面

初次登錄需要換密碼,如果不想換也可以繼續填寫P@88w0rd,不過建議更換

  • 首頁

  • 集群管理信息

  • 節點信息

  • 節點詳細
    • master1

- master2

- master3

6.總結

本次技術實踐成功在信創環境下完成混合架構云原生平臺部署,具體涵蓋 x86(海光/兆芯)和 ARM64(飛騰/鯤鵬)兩大架構的多款國產芯片,適配UOS、麒麟、歐拉等主流國產操作系統,最終實現KubernetesKubeSphere的穩定運行。該實踐為國產化技術棧的云原生發展提供了可行性驗證和技術積累,歡迎更多開發者參與國產化云原生生態的共建與探索。如您在實踐中遇到問題,歡迎通過社區論壇交流討論。

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

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

相關文章

利用python實現NBA數據可視化

大家好&#xff0c;今天我們利用python爬取NBA球星每年的比賽數據并進行可視化展示。主要用到三個模塊&#xff1a;xpath、matplotlib。其中xpth負責爬取網站上的信息。Matplotlib是Python開發人員常用的Python繪圖庫&#xff0c;可以用來繪制各種2D圖形&#xff0c;具有繪圖質…

基于 SpringBoot+JSP 的醫療預約與診斷系統設計與實現

摘要 本研究針對傳統醫療預約與診斷流程中存在的效率低下、信息不透明、患者等待時間長等問題&#xff0c;設計并實現了一個基于 SpringBootJSP 的醫療預約與診斷系統。系統采用 B/S 架構&#xff0c;整合了用戶管理、科室管理、醫生排班、預約掛號、在線問診、檢查檢驗、診斷…

2025.6.27總結

最近工作又開始內耗了&#xff0c;一位同事的轉崗直接讓我破防了&#xff0c;明明他工作干得很不錯&#xff0c;會得又多&#xff0c;性格又好&#xff0c;我還經常請教他業務上的問題。我和他的關系并不算太好&#xff0c;但他加入其他部門&#xff0c;竟然讓我有些不舍&#…

詳解HashMap底層原理

核心數據結構&#xff1a;數組 鏈表 / 紅黑樹 HashMap 的底層核心是一個 Node<K,V>[] table 數組&#xff08;通常稱為 桶數組 或 哈希桶數組&#xff09;。這個數組的每個元素稱為一個 桶。 Node<K,V> (鏈表節點)&#xff1a; 這是存儲鍵值對的基本單位&#xf…

歷史項目依賴庫Bugfix技巧-類覆蓋

在項目維護過程中&#xff0c;我們可能會遇到歷史項目依賴的第三方庫出現BUG而需要修復的情況&#xff0c;而這些第三方庫可能來源于公司自主開發或開源項目&#xff0c;但由于各種原因&#xff0c;這些庫可能已無人維護。 此時&#xff0c;解決這個問題有三個辦法 1、基于源…

多模態大型語言模型最新綜述

多模態大型語言模型&#xff08;Multimodal Large Language Models&#xff0c;MLLMs&#xff09;已迅速發展&#xff0c;超越了文本生成的范疇&#xff0c;如今能夠覆蓋圖像、音樂、視頻、人類動作以及三維物體等多種輸出模態。它們通過在統一架構下將語言與其他感知模態整合&…

使用ASIO的協程實現高并發服務器

使用ASIO的協程實現高并發服務器 在 C 網絡編程領域&#xff0c;Asio 庫提供了兩種主要的異步編程范式&#xff1a;傳統的回調模式和基于協程的現代模式&#xff0c;傳統的回調模式大家都很清楚&#xff0c;這里不多做介紹&#xff0c;本文主要介紹基于協程的模式&#xff0c;…

OpenCV——輪廓檢測

輪廓檢測 一、輪廓檢測二、輪廓的層級三、輪廓的特征3.1、輪廓面積3.2、輪廓周長3.3、邊界矩形3.4、最小外接圓3.5、近似輪廓3.6、凸包 一、輪廓檢測 輪廓可以簡單的描述為具有相同顏色或灰度的連續點連在一起的一條曲線&#xff0c;輪廓通暢會顯示出圖像中物體的形狀。關于輪…

高等概率論題解-心得筆記【15】

文章目錄 拓撲參考文獻 拓撲 參考文獻 《測度論基礎與高等概率論》

Windows 10關閉自動更新功能

Windows 10關閉自動更新功能&#xff0c;大家是不是經常用下面的幾個步驟&#xff1a; 1、禁用Windows Update服務&#xff1b; 2、在組策略里關閉Win10自動更新相關服務&#xff1b; 3、禁用任務計劃里邊的Win10自動更新&#xff1b; 4、在注冊表中關閉Win10自動更新&…

[Meetily后端框架] 配置指南 | 后端API網關 | API文檔體系

鏈接: https://github.com/Zackriya-Solutions/meeting-minutes docs&#xff1a;會議紀要管理系統 本項目是一個專門用于**處理會議記錄**的后端系統。 系統接收會議文本內容&#xff0c;利用先進的AI模型自動識別關鍵信息&#xff0c;包括行動項、決策內容以及截止期限。 處…

Flink2.0 配置 historyserver

Flink2.0 配置 historyserver 主要是去修改config.yaml配置文件 主要修改的點有兩個 網上很多文檔都是寫的只配置一個 都是坑啊 historyserver :歷史服務器 運行 Flink job 的集群一旦停止(例如yarn模式&#xff0c;程序一旦停止&#xff0c;集群也就關閉了)&#xff0c;只能去…

LLM的訓練過程

一般而言&#xff0c;訓練一個完整的 LLM 需要經過圖1中的三個階段——Pretrain、SFT 和 RLHF。 1.預訓練 Pretrain&#xff0c;即預訓練&#xff0c;是訓練 LLM 最核心也是工程量最大的第一步。LLM 的預訓練和傳統預訓練模型非常類似&#xff0c;同樣是使用海量無監督文本對隨…

用 AI + Canvas 生成圖形、動畫與圖表

摘要 隨著人工智能&#xff08;AI&#xff09;技術與 Web 可視化的結合&#xff0c;前端開發者可以通過自然語言生成復雜的圖表、動畫和交互式畫布&#xff0c;極大地提升了開發效率和用戶體驗。本文作為《AI 前端&#xff1a;構建智能化 Web 應用的未來》專欄的第七篇&#…

SQL Server for Linux 如何實現高可用架構

關鍵詞&#xff1a;SQL Server for Linux、高可用、讀寫分離、動態擴容、Always On、可用性組 &#x1f4cb; 文章目錄 前言&#xff1a;Linux上的SQL Server不再是夢高可用架構設計 Always On 可用性組故障轉移集群實例 讀寫分離架構 可用性組讀寫分離應用層讀寫分離 動態擴…

【51單片機流水燈控制4種造型,按下1,2,3,4時,數碼管對應顯示鍵號,同時流水燈對應四種造型】2022-6-1

緣由流水燈控制4種造型&#xff0c;按下1,2,3,4時&#xff0c;數碼管對應顯示鍵號&#xff0c;同時流水燈對應四種造型-編程語言-CSDN問答 #include "REG52.h" unsigned char code smgduan[]{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5…

設計模式 - 工廠方法

工廠方法是一種設計模式&#xff0c;對工廠制造方法進行接口規范化&#xff0c;允許子類工廠決定具體知道哪類產品的實例&#xff0c;最終降低系統耦合&#xff0c;使系統的可維護性、可擴展性等得到提升。 一、工廠的多元化與專業化 要實例化對象&#xff0c;就得用到關鍵詞“…

數據應該如何組織,才能讓Excel“讀懂”?

前言&#xff1a;如果你希望Excel能“讀懂”你的數據&#xff0c;就得學會讓排序、篩選、數據透視表、函數等這些功能為我們服務。 假設你在和一個非常聰明但有點“死板”的機器人&#xff08;Excel&#xff09;對話&#xff0c;你必須用它能理解的語言來組織信息。 “一維表”…

js防止重復提交的3種解決方案

防止 javascript 重復點擊和提交的關鍵方法有三種&#xff1a;1. 禁用按鈕法&#xff0c;點擊后立即禁用按鈕并更改文本提示&#xff0c;請求完成后恢復&#xff1b;2. 節流函數&#xff08;throttle&#xff09;&#xff0c;限制函數在設定時間間隔內僅執行一次&#xff0c;適…

【信創-k8s】銀河麒麟V10國防版+鯤鵬/飛騰(arm64架構)在線/離線部署k8s1.30+kubesphere

銀河麒麟作為國家核高基專項的重要成果&#xff0c;國防版憑借其卓越的安全性和可靠性&#xff0c;已成為軍工領域的首選操作系統。之前我們在適配麒麟V4國防版的過程中已發現諸多安全性要求&#xff0c;而麒麟V10國防版在安全防護等級上又達到了更高的級別。 本文將主要演示離…