828华为云征文|华为云Flexus云服务器X实例之openEuler系统下部署k8s管理面板KubePi

前言


在数字化转型的大潮中,华为云凭借其强大的技术底蕴与创新精神,不断推出满足各类用户需求的优质云服务产品,其中华为云Flexus云服务器X实例便是专为追求高效能与灵活性的中小企业及开发者量身定制的理想选择。依托于先进的架构设计与优化的资源管理能力,Flexus云服务器X实例不仅提供了坚实的基础设施支撑,还通过搭载openEuler操作系统展现了对开源技术生态的坚定支持。在此基础上,本文将详细介绍如何在华为云Flexus云服务器X实例上基于openEuler系统部署K8s管理面板KubePi,以此来简化Kubernetes集群的管理和监控工作,进一步提升运维效率及应用交付速度,助力企业在云时代快速成长。


一、Flexus云服务器X实例介绍

1.1 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)并完成其在本地的安装与配置。
  • 本次环境规划如下:
服务器类别公共镜像选择内网IP地址Docker版本操作系统版本k8s版本
华为云Flexus云服务器X实例openEuler192.168.0.16926.1.3openEuler 22.03 LTSv1.30.4+k3s1

四、远程连接华为云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-release
NAME="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 -r
5.10.0-60.109.0.136.oe2203.x86_64

5.2 检查Docke环境

部署该项目需要提前安装Docker环境,检查Docker版本,当前安装的Docker版本为 26.1.3

[root@flexusx-51a1 ~]# docker -v
Docker version 26.1.3, build b72abbb

检查Docker服务状态,确保Docker服务正常。

[root@flexusx-51a1 ~]#  systemctl status docker
● docker.service - Docker Application Container Engine
     Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
     Active: active (running) since Wed 2024-09-04 21:23:44 CST; 15min ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 10018 (dockerd)
      Tasks: 10
     Memory: 196.3M
     CGroup: /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 version
Docker Compose version v2.27.0

5.3 检查kubernetes环境

  • 检查k8s节点状态
[root@flexusx-51a1 ~]# kubectl get nodes -owide
NAME           STATUS   ROLES                  AGE   VERSION        INTERNAL-IP     EXTERNAL-IP   OS-IMAGE              KERNEL-VERSIONCONTAINER-RUNTIME
flexusx-51a1   Ready    control-plane,master   8d    v1.30.4+k3s1   192.168.0.169   <none>        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-system
NAME                                      READY   STATUS      RESTARTS       AGE
coredns-576bfc4dc7-qslbt                  1/1     Running     1 (5d2h ago)   8d
helm-install-traefik-crd-mttv8            0/1     Completed   0              8d
helm-install-traefik-pj458                0/1     Completed   1              8d
local-path-provisioner-6795b5f9d8-ncz9c   1/1     Running     1 (5d2h ago)   8d
metrics-server-557ff575fb-6ld6f           1/1     Running     1 (5d2h ago)   8d
svclb-traefik-36590967-z5zlr              2/2     Running     2 (5d2h ago)   8d
traefik-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-server
Using default tag: latest
latest: Pulling from kubeoperator/kubepi-server
c1d6d1b2d5a3: Pull complete
ecad9dbd4fbc: Pull complete
2c97ac695f37: Pull complete
fb66eb13cfa7: Pull complete
b3476d192f02: Pull complete
6b882537789c: Pull complete
Digest: sha256:8ec15899499b454f24ae157181a3da7a90d4993a5e29d377990642eb38a7857b
Status: Downloaded newer image for kubeoperator/kubepi-server:latest
docker.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-server
        ports:
            - '5698:80'
        restart: always
        container_name: kubepi
        privileged: true



6.4 创建KubePi容器

执行以下命令,快速创建KubePi容器。

[root@flexusx-51a1 kubepi]# docker compose up -d
WARN[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 ps
WARN[0000] /data/kubepi/docker-compose.yaml: `version` is obsolete
NAME      IMAGE                        COMMAND                  SERVICE         CREATED          STATUS          PORTS
kubepi    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 logs
WARN[0000] /data/kubepi/docker-compose.yaml: `version` is obsolete
kubepi  | config file not found in , skip
kubepi  | 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.0
kubepi  | Application started. Press CTRL+C to shut down.

在这里插入图片描述

七、访问KubePi首页

7.1 关闭防火墙与selinux

  • 关闭防火墙
 systemctl stop firewalld && systemctl disable firewalld
  • 关闭selinux
setenforce 0
sed -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 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

9.5 访问与测试

浏览器访问地址:http://弹性公网IP地址:30050,将IP替换为自己服务器IP地址。浏览器打开后,可以看到flaskapp的网页内容。

在这里插入图片描述

十、使用体验与总结

在使用华为云Flexus云服务器X实例部署KubePi的过程中,我们深切地感受到了其在性能与稳定性上的出色表现;无论是初始化配置还是后续的集群管理,整个流程都极为顺畅,这得益于华为云对底层硬件与openEuler操作系统的深度优化。KubePi在这样的平台上运行如鱼得水,不仅显著提升了我们管理多个Kubernetes集群的效率,而且其精细的权限控制机制也使得团队协作更加灵活安全。可以说,借助华为云Flexus云服务器X实例的强大支持,我们的开发和运维工作变得更加高效,极大地促进了业务发展与技术创新的步伐。


抓住华为云828 B2B企业节的良机,一同探索Flexus X实例所带来的超值特惠与前沿科技体验。从高性能计算到智能监控解决方案,华为云始终以卓越的产品质量和贴心的服务确立了自身的行业标杆地位。选择华为云,不仅是拥抱领先的技术支持,更是向数字化转型迈出的坚实步伐。让我们共同踏上华为云这一创新平台,开启通向未来的成功之旅,携手创造更多可能!


在这里插入图片描述

### 如何在华为云部署和配置MQTT服务器 #### 创建华为云计算实例 为了构建MQTT服务,需先创建合适的计算资源。对于此目的,可以选用华为云提供的不同类型的云服务器实例来满足需求。例如,文章提到采用最新的Flexus云服务器X实例用于EMQX服务器的搭建[^1];而针对更大规模的消息处理,则有基于华为云耀云服务器L实例的成功案例分享[^2]。 #### 安装EMQX软件包 一旦选择了适合的硬件平台并成功启动了虚拟机之后,下一步就是安装EMQX本身。这可以通过多种方式完成,其中一种方法是利用Apt源来进行自动化安装过程。具体操作如下所示: ```bash curl -s https://assets.emqx.com/scripts/install-emqx-deb.sh | sudo bash ``` 上述脚本会自动下载适用于当前系统的EMQX版本,并将其设置为可执行状态以便后续使用[^4]。 #### 开放必要的网络端口 为了让外部设备能够顺利接入到所设立的服务当中,在防火墙规则里添加允许特定协议(如TCP)以及对应监听端口号(默认情况下为1883)的数据流进出是非常重要的一步。这部分工作通常涉及到调整安全组策略以适应实际应用场景的要求。 #### 访问与初始化管理界面 当一切准备就绪后,就可以尝试打开浏览器并通过指定地址访问EMQX自带的Web控制台——Dashboard页面了。在这里不仅可以监控集群运行状况,还能进一步定制化各项参数设定,从而更好地服务于具体的业务逻辑。 #### 测试消息传递功能 最后要做的便是验证整个架构是否正常运作。为此,可以从任意一台联网计算机发起一次简单的发布/订阅模式下的通信实验:即让两个不同的客户端分别扮演生产者角色向某个共同的主题发送数据包的同时作为消费者等待接收来自其他成员的通知信息。如果一切按计划进行的话,那么这就意味着已经成功实现了预期目标。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江湖有缘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值