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

电子说

1.4w人已加入

描述

前言

在数字化转型的大潮中,华为云凭借其强大的技术底蕴与创新精神,不断推出满足各类用户需求的优质云服务产品,其中华为云 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 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 agoTriggeredBy:●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 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-server        ports:            - '5698:80'        restart: always        container_name: kubepi        privileged: 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 集群的效率,而且其精细的权限控制机制也使得团队协作更加灵活安全。可以说,借助华为云 Flexus 云服务器 X 实例的强大支持,我们的开发和运维工作变得更加高效,极大地促进了业务发展与技术创新的步伐。

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

 审核编辑 黄宇

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分