828华为云征文|华为云Flexus云服务器X实例之openEuler系统下部署k8s管理面板kubepi
- 前言
- 一、Flexus云服务器X实例介绍
- 1.1 Flexus云服务器X实例简介
- 1.2 Flexus云服务器X实例特点
- 1.3 Flexus云服务器X实例使用场景
- 二、 KubePi介绍
- 2.1 KubePi简介
- 2.2 KubePi主要特点:
- 三、本次实践介绍
- 3.1 本次实践简介
- 3.2 本次环境规划
- 四、远程连接华为云Flexus云服务器X实例
- 4.1 购买Flexus云服务器X实例
- 4.2 查看Flexus云服务器X实例状态
- 4.3 使用Xshell远程连接
- 五、检查Flexus云服务器X实例系统环境
- 5.1 检查操作系统版本
- 5.2 检查Docke环境
- 5.3 检查kubernetes环境
- 六、安装KubePi面板
- 6.1 拉取KubePi镜像
- 6.2 创建部署目录
- 6.3 编辑docker-compose.yaml文件
- 6.4 创建KubePi容器
- 6.5 查看KubePi容器状态
- 6.6 查看KubePi容器日志
- 七、访问KubePi首页
- 7.1 关闭防火墙与selinux
- 7.2 Flexus云服务器X实例安全组配置
- 7.3 访问KubePi初始页
- 7.4 登录KubePi
- 八、添加本地k8s集群
- 8.1 查看k8s集群配置文件
- 8.2 在KubePi添加k8s集群
- 8.3 KubePi查看k8s集群状态
- 九、创建flaskapp测试应用
- 9.1 创建命名空间
- 9.2 创建工作负载
- 9.3 创建services
- 9.4 安全配置
- 9.5 访问与测试
- 十、使用体验与总结
前言
在数字化转型的大潮中,华为云凭借其强大的技术底蕴与创新精神,不断推出满足各类用户需求的优质云服务产品,其中
华为云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实例针对不同的使用场景展现出其独特的优势:
-
电商直播:利用X实例搭建电商交易平台,可以有效应对电商市场的瞬息万变,从容处理业务压力波动,确保交易过程顺畅无阻。
-
企业建站:面向博客、论坛和企业门户等应用场景,X实例帮助企业高效传播价值信息,促进信息共享与交流,支持构建多功能传播和交互平台。
-
个人开发测试:开发者在开发和测试过程中所需的环境资源可以通过X实例便捷获取,不仅提高了搭建效率,而且降低了成本。
-
游戏服务器:适用于搭建游戏后台服务器,强大的计算能力可以轻松应对大量玩家同时在线的情况,同时支持平滑扩容,快速应对玩家数量增长的需求,以及提供出色的网络加速能力以提升用户体验。
二、 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实例 | openEuler | 192.168.0.169 | 26.1.3 | openEuler 22.03 LTS | v1.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资源对象,点击“创建”选项。
- 基础信息:
- 名称:flaskapp
- 命名空间:flaskapp
- 标签:这里新增标签
pro:apptest
- 副本数:1
- 其他配置:使用默认设置
- 容器组 — 基础信息配置:
- Spec:标准容器
- 容器名称:flaskapp
- 容器镜像:jcdemo/flaskapp
- 其他配置:使用默认设置
- 容器组 — 服务端口配置:
- 名称:app
- 容器端口:5000
- 主机端口:5000
- 其他配置:使用默认设置
以上工作负载全部配置完成后,确认创建即可。创建完毕后,等待一段时间,可以看到Deployments的工作负载成功运行。
9.3 创建services
在services资源对象中,点击“创建”选项。
- Services配置如下:
- 名称:flaskapp
- 命名空间:flaskapp
- 类型:NodePort
- 容器名称:app
- 监听端口:5000
- 目标端口:5000
- 节点端口:30050
- 确认提交。
选择器: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实例所带来的超值特惠与前沿科技体验。从高性能计算到智能监控解决方案,华为云始终以卓越的产品质量和贴心的服务确立了自身的行业标杆地位。选择华为云,不仅是拥抱领先的技术支持,更是向数字化转型迈出的坚实步伐。让我们共同踏上华为云这一创新平台,开启通向未来的成功之旅,携手创造更多可能!