什么是华为云 Flexus X 实例

· 华为云 Flexus X 实例云服务是新一代开箱即用、体验跃级、面向中小企业和开发者打造的高品价比云服务产品。

· Flexus 云服务器 X 实例是新一代面向中小企业和开发者打造的柔性算力云服务器,可智能感知业务负载,适用于电商直播、企业建站、开发测试环境、游戏服务器、音视频服务等中低负载场景。

开始接触华为云 Flexus 云服务器 X 实例

· 获取华为云 Flexus 云服务器 X 实例后第一步就是先去华为云上重置服务器密码

华为云 Flexus X 实例部署 k3s 与 kuboard 图形化管理工具_云服务

 

华为云 Flexus X 实例部署 k3s 与 kuboard 图形化管理工具_二进制文件_02


· 重置完毕后用 ssh 工具登录华为云服务器,这里我用的是 finalshell,也可以用其他工具登陆比如 xshell 或者 Putty 都可以

华为云 Flexus X 实例部署 k3s 与 kuboard 图形化管理工具_云服务_03


· 登录上去查看硬盘大小,可以看到是 100g 硬盘,硬盘总大小是正常的

root@flexusx-ebe8:~# df -hFilesystem      Size  Used Avail Use% Mounted ontmpfs           1.2G  1.1M  1.2G   1% /run/dev/vda1        99G  4.2G   90G   5% /tmpfs           5.7G     0  5.7G   0% /dev/shmtmpfs           5.0M     0  5.0M   0% /run/locktmpfs           1.2G  4.0K  1.2G   1% /run/user/0

· 然后输入 ufw status 可以看到默认防火墙是关闭的,因此我们就不需要额外再去配置端口开放相关的配置,只要在华为云安全组配置端口开放就可以了

root@flexusx-ebe8:~# ufw statusStatus: inactive

什么是 k3s

K3s 是轻量级的 Kubernetes。K3s 易于安装,仅需要 Kubernetes 内存的一半,所有组件都在一个小于 100 MB 的二进制文件中,具有以下增强功能:

· 打包为单个二进制文件。

· 使用基于 sqlite3 作为默认存储机制的轻量级存储后端。同时支持使用 etcd3、MySQL 和 Postgres。

· 封装在简单的启动程序中,可以处理很多复杂的 TLS 和选项。

· 默认情况下是安全的,对轻量级环境有合理的默认值。

· 添加了简单但强大的 batteries-included 功能,例如:

· 本地存储提供程序 service load balancer Helm controller Traefik ingress controller

· 所有 Kubernetes control plane 组件的操作都封装在单个二进制文件和进程中。因此,K3s 支持自动化和管理复杂的集群操作(例如证书分发等)。

· 最大程度减轻了外部依赖性,K3s 仅需要现代内核和 cgroup 挂载。K3s 打包了所需的依赖,包括: containerd Flannel (CNI) CoreDNS Traefik (Ingress) Klipper-lb (Service LB) 嵌入式网络策略控制器 嵌入式 local-path-provisioner 主机实用程序(iptables、socat 等)

开始安装 k3s

· K3s 提供了一个安装脚本,可以方便地将其作为服务安装在基于 systemd 或 openrc 的系统上。该脚本可在 https://get.k3s.io 获得。要使用这种方法安装 K3s,只需运行:curl -sfL https://get.k3s.io | sh -

· 但可能遇到网络不通的情况,所以换个连接加速 curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -

root@flexusx-ebe8:/home/k3s# curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh[INFO]  Finding release for channel stable[INFO]  Using v1.30.4+k3s1 as release[INFO]  Downloading hash rancher-mirror.rancher.cn/k3s/v1.30.4-k3s1/sha256sum-amd64.txt[INFO]  Downloading binary rancher-mirror.rancher.cn/k3s/v1.30.4-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]  Skipping /usr/local/bin/ctr symlink to k3s, command exists in PATH at /usr/bin/ctr[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 unitCreated symlink /etc/systemd/system/multi-user.target.wants/k3s.service → /etc/systemd/system/k3s.service.[INFO]  systemd: Starting k3s

· 查看 k3s 安装情况,输入 kubectl get node,可以看到 k3s 已经安装完毕,并且已经启动了一个单节点 Server, 单节点 Server 安装的是一个功能齐全的 Kubernetes 集群,它包括了托管工作负载 pod 所需的所有数据存储、control plane、kubelet 和容器运行时组件

NAME           STATUS   ROLES                  AGE   VERSIONflexusx-ebe8   Ready    control-plane,master   99m   v1.30.4+k3s1


华为云 Flexus X 实例部署 k3s 与 kuboard 图形化管理工具_docker_04

 

· 至此 k3s 的安装已经完成,相比较 k8s 的重量级而言,k3s 的下载安装速度远远比 k8s 快,而且核心功能齐全,完全不逊色与 k8s。更适合在一些轻量级的项目中使用。

什么是 kuboard

· Kuboard 是一个基于 Kubernetes 的图形化管理工具,用于简化 Kubernetes 集群的运维和管理。它提供了用户友好的界面,帮助用户更直观地管理和监控 Kubernetes 集群中的资源,如 Pods、服务、配置、存储卷等。

· Kuboard 特别适合需要简化 Kubernetes 复杂操作的用户,尤其是在中小型团队中,它能够极大地提升工作效率和操作便利性

安装 kuboard

· kuboard 的安装需要依赖 docker,所以需要提前安装好 docker,网上教程较多,此处不再赘述。

· 先创建文件夹挂载文件 mkdir /root/kuboard-data,然后执行 docker run --restart=unless-stopped -p 8088:80 -d --name kuboard -e KUBOARD_AGENT_SERVER_TCP_PORT=8088 -e KUBOARD_ENDPOINT=https://弹性公网 ip  -v /root/kuboard-data:/data  eipwork/kuboard:v3.5.2.7

root@flexusx-ebe8:/home/k3s# docker run --restart=unless-stopped -p 8088:80 -d --name kuboard -e KUBOARD_AGENT_SERVER_TCP_PORT=8088 -e KUBOARD_ENDPOINT=https://弹性公网 ip  -v /root/kuboard-data:/data  eipwork/kuboard:v3.5.2.769250cb8a892: Loading layer [==================================================>]  83.88MB/83.88MBae2b3df40922: Loading layer [==================================================>]  13.18MB/13.18MBa1824de85fcf: Loading layer [==================================================>]  3.584kB/3.584kB250eaa00b2bd: Loading layer [==================================================>]  23.85MB/23.85MB8fcb3c48fc99: Loading layer [==================================================>]  17.62MB/17.62MB974ff5e30cff: Loading layer [==================================================>]  43.77MB/43.77MBf7f1d51a77b0: Loading layer [==================================================>]  97.14MB/97.14MB7a410bf07334: Loading layer [==================================================>]  3.072kB/3.072kBbe58f0e51944: Loading layer [==================================================>]  9.216kB/9.216kB2bb74bb9a408: Loading layer [==================================================>]  23.76MB/23.76MBc6d10a351149: Loading layer [==================================================>]  18.77MB/18.77MBb465627a87b8: Loading layer [==================================================>]  42.54MB/42.54MB60238073cec3: Loading layer [==================================================>]  2.024MB/2.024MBc4f2c4dc8e79: Loading layer [==================================================>]  28.67kB/28.67kBb68d4a8bf0a0: Loading layer [==================================================>]  61.95kB/61.95kB6bf9adcbc496: Loading layer [==================================================>]   42.1MB/42.1MBb7761c61c80a: Loading layer [==================================================>]   42.1MB/42.1MB18f966ef4c93: Loading layer [==================================================>]  13.34MB/13.34MB8ca551781b2a26cfa2e22b3e3be2c03935e0ed5ef7ad989c389f84cc67d789b0

· 查看 kuboard 运行状态 docker ps

root@flexusx-ebe8:/home/k3s# docker psCONTAINER ID   IMAGE                      COMMAND            CREATED         STATUS         PORTS                                                       NAMES8ca551781b2a   eipwork/kuboard:v3.5.2.7   "/entrypoint.sh"   2 minutes ago   Up 2 minutes   443/tcp, 10081/tcp, 0.0.0.0:8088->80/tcp, :::8088->80/tcp   kuboard

· 但此时还无法访问页面,还需要在华为云服务器的安全组开放端口

配置 Flexus 云服务器 X 实例安全组

· 经过上面部署 harbor 服务,这时候服务是已经部署完毕了,但是我们还没法通过外网进行访问,还需要对 Flexus 云服务器 X 安全组的配置进行修改

· 进入安全组的配置页面

华为云 Flexus X 实例部署 k3s 与 kuboard 图形化管理工具_云服务_05


· 新建安全组

华为云 Flexus X 实例部署 k3s 与 kuboard 图形化管理工具_docker_06


· 这里我们开放 8088 端口

· 然后加入新建的安全组

华为云 Flexus X 实例部署 k3s 与 kuboard 图形化管理工具_二进制文件_07


· 这样我们的实例的端口也就开放成功了

使用 kuboard 并接入 k3s

· 网页访问 kuboard,访问登录页

华为云 Flexus X 实例部署 k3s 与 kuboard 图形化管理工具_云服务_08

 http://弹性 ip:8088/sso/auth/default?req=kgoptaus7rndtkzw6nyqyyt6q

· 登录 kuboard,默认账号密码为 admin Kuboard123

华为云 Flexus X 实例部署 k3s 与 kuboard 图形化管理工具_云服务_09


· 选择添加集群,使用第一个方法,把脚本复制出来,去服务器执行

华为云 Flexus X 实例部署 k3s 与 kuboard 图形化管理工具_二进制文件_10


· 执行完后,把红色的 token 复制出来

华为云 Flexus X 实例部署 k3s 与 kuboard 图形化管理工具_二进制文件_11


· 按图所示填写数据,ApiServer 地址填内网地址,这里不填弹性公网地址

华为云 Flexus X 实例部署 k3s 与 kuboard 图形化管理工具_云服务_12


· 点击确定后,k3s 就接入 kuboard,然后选择第一个 ServiceAccount kuboard-admin,然后选择集群概要

华为云 Flexus X 实例部署 k3s 与 kuboard 图形化管理工具_云服务_13

 

华为云 Flexus X 实例部署 k3s 与 kuboard 图形化管理工具_docker_14


· 至此 kuboard 接入 k3s 完成

欢迎大家一起加入华为云!