告別 K8s 復雜部署:微擎面板讓云原生十分鐘落地實踐
微擎面板(w7panel) 一款基于 Kubernetes 的云原生控制面板,由微擎團隊超過十年的運維經驗總結而來,在 Kubernetes 技術日趨復雜的背景下,我們觀察到傳統用戶向云原生轉型的三大痛點:部署門檻高、運維復雜度大、硬件成本敏感。為此,w7panel 創新性地將 Kubernetes 核心組件與基礎設施服務進行深度整合,打造出開箱即用的輕量化解決方案。
技術架構上,w7panel 基于輕量級 Kubernetes 發行版 k3s 構建,預集成 Cilium 網絡插件、Longhorn 分布式存儲、Higress 網關等云原生組件。
環境要求
- 節點服務器配置 >= 2 核 4G
- 支持主流 Linux 發行版本;(推薦 CentOS Stream >= 9 或者 Ubuntu Server >= 22)
- 開放服務器外網端口:6443、80、443、9090
- 使用全新的服務器環境來安裝,請勿跟其他服務器面板系統混用,以免導致環境沖突
- 瀏覽器要求:請使用 Chrome、FireFox、IE10+、Edge 等現代瀏覽器;
我們這里服務器使用的是 Ubuntu 24.04 版本,配置為 4C8G,內網 IP:172.21.32.36,外網 IP:47.108.149.6。接下來我們來安裝測試下 w7panel。
安裝
從 w7panel 的 git 倉庫 https://github.com/w7corp/w7panel 獲取安裝腳本 install.sh
,上傳到服務器上即可一鍵安裝:
$ sh install.sh
[INFO] start check server is installed 檢測k3s是否已安裝
[INFO] start download w7panel resource!
[INFO] download success ./w7panel/images/cilium.cilium-v1.16.4.tar
[INFO] download success ./w7panel/images/cilium.operator-generic-v1.16.4.tar
[INFO] download success ./w7panel/images/jetstack.cert-manager-cainjector-v1.16.2.tar
[INFO] download success ./w7panel/images/jetstack.cert-manager-controller-v1.16.2.tar
[INFO] download success ./w7panel/images/jetstack.cert-manager-webhook-v1.16.2.tar
[INFO] download success ./w7panel/images/jetstack.cert-manager-startupapicheck-v1.16.2.tar
[INFO] download success ./w7panel/images/longhornio.csi-attacher-v4.7.0.tar
[INFO] download success ./w7panel/images/longhornio.csi-node-driver-registrar-v2.12.0.tar
[INFO] download success ./w7panel/images/longhornio.csi-provisioner-v4.0.1-20241007.tar
[INFO] download success ./w7panel/images/longhornio.csi-resizer-v1.12.0.tar
[INFO] download success ./w7panel/images/longhornio.csi-snapshotter-v7.0.2-20241007.tar
[INFO] download success ./w7panel/images/longhornio.livenessprobe-v2.14.0.tar
[INFO] download success ./w7panel/images/longhornio.longhorn-engine-v1.7.2.tar
[INFO] download success ./w7panel/images/longhornio.longhorn-instance-manager-v1.7.2.tar
[INFO] download success ./w7panel/images/longhornio.longhorn-manager-v1.7.2.tar
[INFO] download success ./w7panel/images/longhornio.longhorn-share-manager-v1.7.2.tar
[INFO] download success ./w7panel/manifests/cert-manager.yaml
[INFO] download success ./w7panel/manifests/cilium.yaml
[INFO] download success ./w7panel/manifests/higress.yaml
[INFO] download success ./w7panel/manifests/longhorn.yaml
[INFO] download success ./w7panel/manifests/w7panel-offline.yaml
[INFO] download success ./w7panel/etc/registries.yaml
[INFO] download success ./w7panel/etc/sysctl.d/k3s.conf
[INFO] download success ./w7panel/etc/k3s.service.d/override.conf
/usr/sbin/sysctl
[INFO] current server's public network ip: 47.108.149.6
[INFO] Finding release for channel stable
[INFO] Using v1.31.5+k3s1 as release
[INFO] Downloading hash rancher-mirror.rancher.cn/k3s/v1.31.5-k3s1/sha256sum-amd64.txt
[INFO] Downloading binary rancher-mirror.rancher.cn/k3s/v1.31.5-k3s1/k3s
[INFO] Verifying binary download
[INFO] Installing k3s to /usr/local/bin/k3s
[INFO] Skipping installation of SELinux RPM
[INFO] Creating /usr/local/bin/kubectl symlink to k3s
[INFO] Creating /usr/local/bin/crictl symlink to k3s
[INFO] Creating /usr/local/bin/ctr symlink to k3s
[INFO] Creating killall script /usr/local/bin/k3s-killall.sh
[INFO] Creating uninstall script /usr/local/bin/k3s-uninstall.sh
[INFO] env: Creating environment file /etc/systemd/system/k3s.service.env
[INFO] systemd: Creating service file /etc/systemd/system/k3s.service
[INFO] systemd: Enabling k3s unit
Created symlink /etc/systemd/system/multi-user.target.wants/k3s.service → /etc/systemd/system/k3s.service.
[INFO] systemd: Starting k3s
[INFO] 正在導入核心組件鏡像,請耐心等待...
[INFO] 鏡像導入成功: ./w7panel/images/cilium.cilium-v1.16.4.tar
[INFO] 鏡像導入成功: ./w7panel/images/cilium.operator-generic-v1.16.4.tar
[INFO] 鏡像導入成功: ./w7panel/images/jetstack.cert-manager-cainjector-v1.16.2.tar
[INFO] 鏡像導入成功: ./w7panel/images/jetstack.cert-manager-controller-v1.16.2.tar
[INFO] 鏡像導入成功: ./w7panel/images/jetstack.cert-manager-startupapicheck-v1.16.2.tar
[INFO] 鏡像導入成功: ./w7panel/images/jetstack.cert-manager-webhook-v1.16.2.tar
[INFO] 鏡像導入成功: ./w7panel/images/longhornio.csi-attacher-v4.7.0.tar
[INFO] 鏡像導入成功: ./w7panel/images/longhornio.csi-node-driver-registrar-v2.12.0.tar
[INFO] 鏡像導入成功: ./w7panel/images/longhornio.csi-provisioner-v4.0.1-20241007.tar
[INFO] 鏡像導入成功: ./w7panel/images/longhornio.csi-resizer-v1.12.0.tar
[INFO] 鏡像導入成功: ./w7panel/images/longhornio.csi-snapshotter-v7.0.2-20241007.tar
[INFO] 鏡像導入成功: ./w7panel/images/longhornio.livenessprobe-v2.14.0.tar
[INFO] 鏡像導入成功: ./w7panel/images/longhornio.longhorn-engine-v1.7.2.tar
[INFO] 鏡像導入成功: ./w7panel/images/longhornio.longhorn-instance-manager-v1.7.2.tar
[INFO] 鏡像導入成功: ./w7panel/images/longhornio.longhorn-manager-v1.7.2.tar
[INFO] 鏡像導入成功: ./w7panel/images/longhornio.longhorn-share-manager-v1.7.2.tar
[INFO] start install helm charts
[INFO] 微擎面板正在安裝中,請耐心等待
..............................................-e
==================================================================
-e 內網地址: http://172.21.32.36:9090
-e 公網地址: http://47.108.149.6:9090
-e 微擎面板安裝成功,請訪問后臺設置登錄密碼!
-e
-e warning:
-e 如果您的面板無訪問,
-e 請確認服務器安全組是否放通 (80|443|6443|9090) 端口
-e ==================================================================
上面的腳本會自動安裝一個 k3s 集群,并默認安裝 cilium、cert-manager、longhorn 以及 higress 組件,開箱即用,只需要使用上面的一條命令即可。所以我們最好使用一個純凈的系統進行安裝,避免出現沖突。安裝完成后當然我們也可以直接使用 kubectl 命令來管理這個 k3s 集群,如下所示:
$ kubectl version
Client Version: v1.31.5+k3s1
Kustomize Version: v5.4.2
Server Version: v1.31.5+k3s1
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
server1 Ready control-plane,master,storage 5m53s v1.31.5+k3s1
$ kubectl get pods -A
NAMESPACE NAME READY STATUS RESTARTS AGE
cert-manager cert-manager-659dc66fc6-pwpdc 1/1 Running 0 3m12s
cert-manager cert-manager-cainjector-579c884675-sstg4 1/1 Running 0 3m12s
cert-manager cert-manager-webhook-56d59c54df-fcgb2 1/1 Running 0 3m12s
default w7panel-offline-1-bm7mq 0/1 Completed 0 2m52s
default w7panel-offline-585b8c89d7-4748k 1/1 Running 0 2m52s
default w7panel-offline-monitor-pwn78 1/1 Running 0 2m52s
higress-system higress-controller-7c56bf6c54-jf2jt 2/2 Running 0 3m7s
higress-system higress-gateway-6f4b5d6f79-x8k24 1/1 Running 0 3m7s
kube-system cilium-bbb9r 1/1 Running 0 4m7s
kube-system cilium-operator-6586dcd4fc-7k44r 1/1 Running 0 4m7s
kube-system coredns-7f9dc8d998-dxfnl 1/1 Running 0 5m50s
kube-system helm-install-cert-manager-9r46l 0/1 Completed 2 4m38s
kube-system helm-install-cilium-lsx8d 0/1 Completed 0 4m38s
kube-system helm-install-higress-dzxfq 0/1 Completed 2 4m38s
kube-system helm-install-longhorn-rjqh7 0/1 Completed 2 4m38s
kube-system helm-install-w7panel-offline-kkrmt 0/1 Completed 3 4m38s
kube-system longhorn-iscsi-installation-cpsz9 1/1 Running 0 3m43s
kube-system longhorn-nfs-installation-sg84v 1/1 Running 0 3m43s
kube-system metrics-server-68f955568b-r9zpn 1/1 Running 0 5m50s
longhorn-system csi-attacher-565dc55c47-5bcm5 1/1 Running 0 2m18s
longhorn-system csi-provisioner-77f995b56c-h8l7w 1/1 Running 0 2m18s
longhorn-system csi-resizer-8677f4c959-d9cr4 1/1 Running 0 2m18s
longhorn-system csi-snapshotter-6d96ddbf4-44wlz 1/1 Running 0 2m18s
longhorn-system engine-image-ei-51cc7b9c-qrm5g 1/1 Running 0 3m3s
longhorn-system instance-manager-4bb0e39b075f5d63e5f1bd39e66dcff7 1/1 Running 0 2m33s
longhorn-system longhorn-csi-plugin-76whx 3/3 Running 0 2m17s
longhorn-system longhorn-driver-deployer-b69f8698-5k5jc 1/1 Running 0 3m16s
longhorn-system longhorn-manager-w5dml 2/2 Running 0 3m16s
然后我們就可以根據提示通過內網或者公網地址 http://<ip>:9090 來訪問 w7panel 面板了,但是需要注意需要將 9090 端口加到安全組中。
使用
第一次訪問面板會跳轉到密碼設置界面,如下所示,比如我們這里將用戶名設置為 demo:
設置密碼
用戶初始化完成后直接登錄即可。
概覽
登錄后即可進入面板首頁,如下所示,在首頁展示了集群的基本信息和狀態以及資源監控情況。
此外在右側系統信息部分有一個集群地址,可以綁定域名,這樣我們就可以通過域名訪問了,這個特性非常有用。
webshell
和大部分面板一樣,w7panel 也提供了 webshell,通過頂部 webshell 入口即可進入操作頁面,在 webshell 里面我們可以完全使用 kubectl 來管理整個集群。
節點管理
節點管理頁面,和大部分面板一樣列出了集群的節點列表,但是這里對于我們國內用戶有一個非常友好的功能就是可以修改鏡像源,大家也知道國內各種鏡像問題實在是頭疼,這個鏡像源統一配置的功能實在是太棒了。
此外 w7panel 還提供了一個非常實用的功能就是可以直接通過面板進行節點的文件管理,我們可以上傳文件,新建文件或文件夾。
這其實和我們直接在節點服務器上管理文件是一致的。
還有其他常用操作比如驅逐、標簽、刪除、命令執行等。
資源對象
在 w7panel 里面還提供了一個資源對象瀏覽器的頁面,會將當前集群中所有的資源進行分類:
這其實和我們使用 kubectl api-resources 類似:
應用管理
接下來是最常用的應用管理能力,對于 w7panel 支持通過 docker 鏡像、DockerCompose、K8sYaml、k8sHelm、應用商店等多種安裝方式,也支持傳統應用、計劃任務、反向代理等多種應用類型。
微擎面板的應用商店內置了非常多常用的一些應用軟件,我們可以進行一鍵安裝。
除此之外,還支持直接上傳 PHP 代碼包來部署應用。
在應用詳情頁面,我們也可以直接對應用進行編輯修改,包括綁定域名(創建 Ingress 對象)、執行任務以及運行狀態等。
存儲
對于存儲默認支持分布式存儲功能,對存儲管理做了大量改造,存儲部分底層使用的是 Longhorn,所以在面板中的管理和 longhorn 的功能是對應的,非常符合傳統用戶對存儲的操作邏輯。
w7panel 現階段代碼還沒有開源,已經有開源計劃了,現階段暫時只提供免費安裝方式,地址:https://github.com/w7corp/w7panel。
總結
w7panel 是一款非常實用的云原生控制面板,通過離線安裝包和智能環境適配模塊,將傳統需要數小時完成的 K8s 集群部署縮短至10 分鐘級別,真正實現"apt-get 式"的云原生體驗。雖然現階段功能上和市面上最主流的控制面板相比還存在一些差距,但其提供的功能相比大多數面板來說更加具有實用性,還是非常值得期待的,相信隨著 w7panel 的持續迭代,功能會越來越完善,還是非常值得期待的。