告别 K8s 复杂部署:微擎面板让云原生十分钟落地实践

云计算 云原生
技术架构上,w7panel 基于轻量级 Kubernetes 发行版 k3s 构建,预集成 Cilium 网络插件、Longhorn 分布式存储、Higress 网关等云原生组件。

微擎面板(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 的持续迭代,功能会越来越完善,还是非常值得期待的。

责任编辑:姜华 来源: k8s技术圈
相关推荐

2024-01-29 13:03:02

2023-09-27 22:33:40

KubernetesK8S

2023-09-24 22:47:42

Kubernetes亲和性

2024-01-12 08:03:29

k8s配置持久化

2023-07-15 18:26:51

LinuxABI

2020-12-17 06:48:21

SQLkafkaMySQL

2024-01-29 00:20:00

GolangGo代码

2019-04-01 14:59:56

负载均衡服务器网络

2019-08-13 09:11:26

2021-03-03 11:36:57

Java 8Java 15Java

2024-06-19 09:58:29

2022-06-16 07:31:41

Web组件封装HTML 标签

2021-09-07 09:40:20

Spark大数据引擎

2023-04-12 11:18:51

甘特图前端

2022-03-09 09:44:58

云原生Linux云计算

2015-09-06 09:22:24

框架搭建快速高效app

2024-05-13 09:28:43

Flink SQL大数据

2023-11-30 10:21:48

虚拟列表虚拟列表工具库

2012-07-10 01:22:32

PythonPython教程

2009-10-09 14:45:29

VB程序
点赞
收藏

51CTO技术栈公众号