前言
在數字化轉型的大潮中,華為云憑借其強大的技術底蘊與創新精神,不斷推出滿足各類用戶需求的優質云服務產品,其中華為云 Flexus 云服務器 X 實例便是專為追求高效能與靈活性的中小企業及開發者量身定制的理想選擇。依托于先進的架構設計與優化的資源管理能力,Flexus 云服務器 X 實例不僅提供了堅實的基礎設施支撐,還通過搭載 openEuler 操作系統展現了對開源技術生態的堅定支持。在此基礎上,本文將詳細介紹如何在華為云 Flexus 云服務器 X 實例上基于 openEuler 系統部署 K8s 管理面板 KubePi,以此來簡化 Kubernetes 集群的管理和監控工作,進一步提升運維效率及應用交付速度,助力企業在云時代快速成長。
一、Flexus 云服務器 X 實例介紹
1.1 Flexus 云服務器 X 實例簡介
·官網地址:華為云Flexus云服務器X實例
華為云 Flexus 云服務器 X 實例是新一代面向中小企業和開發者的柔性算力云服務器。它能夠智能感知業務負載的變化,自動調整資源配置。這款服務器特別適用于中低負載的應用場景,例如電商直播、企業網站建設、開發測試環境、游戲服務器以及音視頻服務等。X 實例的設計理念旨在為用戶提供更加靈活和高效的計算資源管理方式。通過智能調整,它可以更好地滿足不同業務的需求,提高資源利用率。
1.2 Flexus 云服務器 X 實例特點
·提供豐富的公共鏡像:Flexus 云服務器 X 實例提供多種公共鏡像供用戶選擇,方便快速部署各種應用和服務。
·可靈活自定義 vCPU 內存配比:用戶可以根據自己的需要靈活調整虛擬 CPU 和內存的配比,以滿足不同場景的需求。
·智能感知業務動態升降配:Flexus 云服務器 X 實例能夠智能感知業務的負載情況,并根據需要自動升降配,以滿足業務的需求,提高系統的穩定性和性能。
·負載范圍更高:相對于 Flexus 應用服務器 L 實例,Flexus 云服務器 X 實例能夠處理更高的負載,適用于更復雜和繁忙的場景。
1.3 Flexus 云服務器 X 實例使用場景
Flexus 云服務器 X 實例針對不同的使用場景展現出其獨特的優勢:
1.電商直播:利用 X 實例搭建電商交易平臺,可以有效應對電商市場的瞬息萬變,從容處理業務壓力波動,確保交易過程順暢無阻。
2.企業建站:面向博客、論壇和企業門戶等應用場景,X 實例幫助企業高效傳播價值信息,促進信息共享與交流,支持構建多功能傳播和交互平臺。
3.個人開發測試:開發者在開發和測試過程中所需的環境資源可以通過 X 實例便捷獲取,不僅提高了搭建效率,而且降低了成本。
4.游戲服務器:適用于搭建游戲后臺服務器,強大的計算能力可以輕松應對大量玩家同時在線的情況,同時支持平滑擴容,快速應對玩家數量增長的需求,以及提供出色的網絡加速能力以提升用戶體驗。
二、KubePi 介紹
2.1 KubePi 簡介
KubePi 是一個現代化的 K8s 面板,允許管理員導入多個 Kubernetes 集群并通過權限控制將不同 cluster 和 namespace 的權限分配給指定用戶。同時,它支持開發人員管理集群中運行的應用程序并進行故障排查,幫助他們更好地應對 Kubernetes 集群中的復雜性。
2.2 KubePi 主要特點:
·多集群管理:KubePi 允許管理員導入多個 Kubernetes 集群,并在同一界面上集中管理這些集群。
·細粒度權限控制:支持將不同集群(cluster)和命名空間(namespace)的權限分配給指定用戶,確保每個用戶只能訪問其授權范圍內的資源。
·應用程序管理:開發人員可以使用 KubePi 來管理在 Kubernetes 集群中運行的應用程序,并進行故障排查。
·易用性:提供直觀的用戶界面,使開發人員和運維人員能夠更容易地理解和操作 Kubernetes 集群中的各種復雜資源。
·可擴展性:KubePi 的設計考慮到了可擴展性,允許通過插件或自定義功能來擴展其功能。
·安全性:內置的安全機制確保了用戶的權限得到有效的管理和控制,防止未經授權的訪問和操作。
·實時監控與報警:支持實時監控集群狀態,并提供報警機制,幫助用戶及時發現和解決問題。
·社區支持:作為一個開源項目,KubePi 得到了廣泛的社區支持,用戶可以從社區獲取最新的功能更新和技術支持。
三、本次實踐介紹
3.1 本次實踐簡介
1.本次實踐為個人測試學習環境,旨在快速部署應用,生產環境請謹慎;2.本次實踐環境為華為云 Flexus 云服務器 X 實例,使用的操作系統為 openEuler 22.03 LTS;3.在本次實踐開始前,已提前部署單機版 K3s 輕量級 k8s 環境;4.本次實踐需要在單機 kubernetes 環境中安裝 KubePi 面板。
3.2 本次環境規劃
·本次實踐需要提前準備好以下環境:
·需提前配置好 openEuler 系統的基礎 Linux 環境:安裝并設置 openEuler 操作系統,包括更新軟件包、網絡配置及基本工具的安裝。
·需提前部署 Docker 環境:安裝 Docker 并確保其服務能夠正常運行,允許用戶通過命令行管理容器。
·需提前部署單機版輕量級 k8s 環境:選擇合適的輕量級 Kubernetes 發行版(如 Minikube 或 K3s)并完成其在本地的安裝與配置。
·本次環境規劃如下:
四、遠程連接華為云 Flexus 云服務器 X 實例
4.1 購買 Flexus 云服務器 X 實例
進入華為云官網:https://activity.huaweicloud.com/,登錄自己的華為云賬號,進入華為云首頁。
·鏡像選擇:本次實踐使用 openEuler 作為公共鏡像,請根據實際需求自定義選擇合適的操作系統鏡像。
·鏡像切換說明:參考的公共鏡像原為 Huawei Cloud EulerOS,但本次實踐中已切換至 openEuler。
·基礎配置參考:購買時可參考以下基礎配置進行選擇。
1.計費模式:包年/包月,這里選擇此模式;2.區域:華北—北京四,可用區:隨機即可;3.實例規格:關閉性能模式,選擇自定義,4vCPUs | 12GiB;4.鏡像:公共鏡像,Huawei Cloud EulerOS,版本,Huawei Cloud EulerOS 2.0 Standard 64 bit(10GiB);5.應用加速:這里選擇不加速;6.存儲:系統盤,通用型 SSD100G;7.網絡:選擇默認即可;8.安全組:選擇默認即可;9.彈性公網 IP:選擇“現在購買”,全動態 BGP,帶寬 3Mbit/s;10.云服務器名稱:可自定義設置,這里選擇默認的名稱;11.登錄憑證:自定義設置密碼;12.云備份:暫不購買;其余配置默認即可。
·確認配置及購買:在確認配置頁面仔細檢查 Flexus 云服務器 X 實例的各項設置,確保無誤后點擊“立即購買”,完成付款流程即可成功購買。
4.2 查看 Flexus 云服務器 X 實例狀態
進入華為云 Flexus 云服務的控制臺,選擇 Flexus 云服務器 X 實例,可以看到已經正在運行的 Flexus 云服務器 X 實例。
4.3 使用 Xshell 遠程連接
·復制 Flexus 云服務器 X 實例的彈性公網 IP 地址
·主要填寫 Flexus 云服務器 X 實例的彈性公網 IP 地址,輸入其登錄用戶和密碼,連接即可。
五、檢查 Flexus 云服務器 X 實例系統環境
5.1 檢查操作系統版本
檢查 Flexus 云服務器 X 實例的操作系統版本,本次實踐選擇的版本為 openEuler 22.03 LTS
[root@flexusx-51a1 ~]# cat /etc/os-releaseNAME="openEuler"VERSION="22.03 LTS"ID="openEuler"VERSION_ID="22.03"PRETTY_NAME="openEuler 22.03 LTS"ANSI_COLOR="0;31"
檢查當前操作系統的內核版本,當前內核版本為 5.10.0-60.109.0.136.oe2203.x86_64。
[root@flexusx-51a1 ~]# uname -r5.10.0-60.109.0.136.oe2203.x86_64
5.2 檢查 Docke 環境
部署該項目需要提前安裝 Docker 環境,檢查 Docker 版本,當前安裝的 Docker 版本為26.1.3。
[root@flexusx-51a1 ~]# docker -vDocker version 26.1.3, build b72abbb
檢查 Docker 服務狀態,確保 Docker 服務正常。
[root@flexusx-51a1 ~]# systemctl status docker●docker.service - Docker Application Container EngineLoaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)Active: active (running) since Wed 2024-09-04 21:23:44 CST; 15min agoTriggeredBy:●docker.socketDocs: https://docs.docker.comMain PID: 10018 (dockerd)Tasks: 10Memory: 196.3MCGroup: /system.slice/docker.service└─10018 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
檢查 docker compose 版本,當前默認安裝版本為 v2.27.0`。
[root@flexusx-51a1 ~]# docker compose versionDocker Compose version v2.27.0
5.3 檢查 kubernetes 環境
·檢查 k8s 節點狀態
[root@flexusx-51a1 ~]# kubectl get nodes -owideNAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSIONCONTAINER-RUNTIMEflexusx-51a1 Ready control-plane,master 8d v1.30.4+k3s1 192.168.0.169 openEuler 22.03 LTS 5.10.0-60.109.0.136.oe2203.x86_64containerd://1.7.20-k3s1
·檢查所有系統 pod 狀態
[root@flexusx-51a1 ~]# kubectl get pods -n kube-systemNAME READY STATUS RESTARTS AGEcoredns-576bfc4dc7-qslbt 1/1 Running 1 (5d2h ago) 8dhelm-install-traefik-crd-mttv8 0/1 Completed 0 8dhelm-install-traefik-pj458 0/1 Completed 1 8dlocal-path-provisioner-6795b5f9d8-ncz9c 1/1 Running 1 (5d2h ago) 8dmetrics-server-557ff575fb-6ld6f 1/1 Running 1 (5d2h ago) 8dsvclb-traefik-36590967-z5zlr 2/2 Running 2 (5d2h ago) 8dtraefik-5fb479b77-rllb5 1/1 Running 1 (5d2h ago) 8d
六、安裝 KubePi 面板
6.1 拉取 KubePi 鏡像
執行以下命令,拉取 KubePi 鏡像 kubeoperator/kubepi-server:latest`。
[root@flexusx-51a1 ~]# docker pull kubeoperator/kubepi-serverUsing default tag: latestlatest: Pulling from kubeoperator/kubepi-serverc1d6d1b2d5a3: Pull completeecad9dbd4fbc: Pull complete2c97ac695f37: Pull completefb66eb13cfa7: Pull completeb3476d192f02: Pull complete6b882537789c: Pull completeDigest: sha256:8ec15899499b454f24ae157181a3da7a90d4993a5e29d377990642eb38a7857bStatus: Downloaded newer image for kubeoperator/kubepi-server:latestdocker.io/kubeoperator/kubepi-server:latest
6.2 創建部署目錄
創建部署目錄/data/kubepi,作為存放 docker-compose.yaml 文件目錄。
mkdir -p /data/kubepi && cd /data/kubepi
6.3 編輯 docker-compose.yaml 文件
如果需要使用 docker-cli方式部署,可參考以下命令。本次實踐采用 docker compose方式部署,以便于管理。
docker run -d --name kubepi -p 5698:80 --restart always --privileged kubeoperator/kubepi-server
本次使用 docker compose 方式部署,需要新建及編輯 docker-compose.yaml 文件。在部署文件中,可以自定義修改宿主機映射端口等信息,注意防止端口沖突。
vim docker-compose.yaml
version: '3.9'services:kubepi-server:image: kubeoperator/kubepi-serverports:- '5698:80'restart: alwayscontainer_name: kubepiprivileged: true
6.4 創建 KubePi 容器
執行以下命令,快速創建 KubePi 容器。
[root@flexusx-51a1 kubepi]# docker compose up -dWARN[0000] /data/kubepi/docker-compose.yaml: `version` is obsolete[+] Running 2/2?Network kubepi_default Created 0.0s?Container kubepi Started 0.2s
6.5 查看 KubePi 容器狀態
檢查 KubePi 容器狀態,確保 KubePi 容器正常啟動。
[root@flexusx-51a1 kubepi]# docker compose psWARN[0000] /data/kubepi/docker-compose.yaml: `version` is obsoleteNAME IMAGE COMMAND SERVICE CREATED STATUS PORTSkubepi kubeoperator/kubepi-server "tini -g -- kubepi-s…" kubepi-server 31 seconds ago Up 30 seconds 0.0.0.0:5698->80/tcp, :::5698->80/tcp
6.6 查看 KubePi 容器日志
檢查 KubePi 容器日志,確保 KubePi 服務正常運行。
[root@flexusx-51a1 kubepi]# docker compose logsWARN[0000] /data/kubepi/docker-compose.yaml: `version` is obsoletekubepi | config file not found in , skipkubepi | time="2024-09-17T18:57:38+08:00" level=info msg="current db version: 0"kubepi | time="2024-09-17T18:57:38+08:00" level=info msg="executing db migration: [1] Create default user and cluster"kubepi | time="2024-09-17T18:57:38+08:00" level=info msg="executing db migration: [2] Add role repo manager"kubepi | time="2024-09-17T18:57:38+08:00" level=info msg="update db to version: 2"kubepi | Now listening on: http://0.0.0.0kubepi | Application started. Press CTRL+C to shut down.
七、訪問 KubePi 首頁
7.1 關閉防火墻與 selinux
·關閉防火墻
systemctl stop firewalld && systemctl disable firewalld
·關閉 selinux
setenforce 0sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
7.2 Flexus 云服務器 X 實例安全組配置
進入 Flexus 云服務器 X 實例控制臺,進行安全組規則配置。在安全組入方向規則上,放行 5698 端口。
7.3 訪問 KubePi 初始頁
瀏覽器訪問地址:http://彈性公網 IP 地址:5220,將 IP 替換為自己服務器 IP 地址,進入 KubePi 登錄頁。
7.4 登錄 KubePi
KubePi 默認的登錄用戶名:密碼為:admin/ kubepi,登錄后即可訪問 KubePi 首頁。
八、添加本地 k8s 集群
8.1 查看 k8s 集群配置文件
默認 k3s 集群的配置文件位置在:/etc/rancher/k3s/k3s.yaml,由 K3s 安裝的 kubectl 將自動使用該文件。
cat /etc/rancher/k3s/k3s.yaml
8.2 在 KubePi 添加 k8s 集群
在集群列表中,選擇導入集群。
名稱:自定義,這里填寫 K3S;認證模式:kubeconfig 文件;config 內容:復制剛才查詢到的 k3s.yaml 文件內容;填寫完畢后,確認即可。
注意事項:復制 k3s 配置文件內容時候,注意將 server 地址改為自己的云服務器內網 IP 地址,否則會添加失敗。
8.3 KubePi 查看 k8s 集群狀態
在集群列表中,點擊添加的 k8s 集群名稱,可以查看詳細情況。
九、創建 flaskapp 測試應用
9.1 創建命名空間
在集群的 Namespace 資源對象中,點擊“創建”選項,開始創建命名空間。
編輯命令空間名稱,這里填寫 flaskapp,提交創建即可。
9.2 創建工作負載
選擇 Deployments 資源對象,點擊“創建”選項。
·基礎信息:
1.名稱:flaskapp
2.命名空間:flaskapp
3.標簽:這里新增標簽 pro:apptest
4.副本數:1
5.其他配置:使用默認設置
·容器組—基礎信息配置:
1.Spec:標準容器
2.容器名稱:flaskapp
3.容器鏡像:jcdemo/flaskapp
4.其他配置:使用默認設置
·容器組—服務端口配置:
1.名稱:app
2.容器端口:5000
3.主機端口:5000
4.其他配置:使用默認設置
以上工作負載全部配置完成后,確認創建即可。創建完畢后,等待一段時間,可以看到 Deployments 的工作負載成功運行。
9.3 創建 services
在 services 資源對象中,點擊“創建”選項。
·Services 配置如下:
1.名稱:flaskapp
2.命名空間:flaskapp
3.類型:NodePort
4.容器名稱:app
5.監聽端口:5000
6.目標端口:5000
7.節點端口:30050
8.確認提交。
選擇器:pro=apptest,此處標簽為我們新建 Deployment 時自定義的標簽。
9.4 安全配置
在華為云 Flexus 云服務器 X 實例的安全組管理頁面中,在入方向規則上,放行 30050 訪問端口。
·關閉防火墻
systemctl stop firewalld && systemctl disable firewalld
·關閉 selinux
setenforce 0sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
9.5 訪問與測試
瀏覽器訪問地址:http://彈性公網 IP 地址:30050,將 IP 替換為自己服務器 IP 地址。瀏覽器打開后,可以看到 flaskapp 的網頁內容。
十、使用體驗與總結
在使用華為云 Flexus 云服務器 X 實例部署 KubePi 的過程中,我們深切地感受到了其在性能與穩定性上的出色表現;無論是初始化配置還是后續的集群管理,整個流程都極為順暢,這得益于華為云對底層硬件與 openEuler 操作系統的深度優化。KubePi 在這樣的平臺上運行如魚得水,不僅顯著提升了我們管理多個 Kubernetes 集群的效率,而且其精細的權限控制機制也使得團隊協作更加靈活安全??梢哉f,借助華為云 Flexus 云服務器 X 實例的強大支持,我們的開發和運維工作變得更加高效,極大地促進了業務發展與技術創新的步伐。
抓住華為云 828 B2B 企業節的良機,一同探索 Flexus X 實例所帶來的超值特惠與前沿科技體驗。從高性能計算到智能監控解決方案,華為云始終以卓越的產品質量和貼心的服務確立了自身的行業標桿地位。選擇華為云,不僅是擁抱領先的技術支持,更是向數字化轉型邁出的堅實步伐。讓我們共同踏上華為云這一創新平臺,開啟通向未來的成功之旅,攜手創造更多可能!
審核編輯 黃宇
-
云服務器
+關注
關注
0文章
693瀏覽量
13387 -
華為云
+關注
關注
3文章
2654瀏覽量
17501
發布評論請先 登錄
相關推薦
評論