828华为云征文|华为云Flexus X实例部署k3s与kuboard图形化管理工具
- 华为云最近正在举办828 B2B企业节,Flexus X实例的促销力度非常大,特别适合那些对算力性能有高要求的小伙伴。如果你有自建MySQL、Redis、Nginx等服务的需求,一定不要错过这个机会。赶紧去看看吧!
什么是华为云Flexus X实例
- 华为云Flexus X实例云服务是新一代开箱即用、体验跃级、面向中小企业和开发者打造的高品价比云服务产品。
- Flexus云服务器X实例是新一代面向中小企业和开发者打造的柔性算力云服务器,可智能感知业务负载,适用于电商直播、企业建站、开发测试环境、游戏服务器、音视频服务等中低负载场景。
开始接触华为云Flexus云服务器X实例
-
获取华为云Flexus云服务器X实例后第一步就是先去华为云上重置服务器密码
-
重置完毕后用ssh工具登录华为云服务器,这里我用的是finalshell,也可以用其他工具登陆比如xshell或者Putty都可以
-
登录上去查看硬盘大小,可以看到是100g硬盘,硬盘总大小是正常的
root@flexusx-ebe8:~# df -h
Filesystem Size Used Avail Use% Mounted on
tmpfs 1.2G 1.1M 1.2G 1% /run
/dev/vda1 99G 4.2G 90G 5% /
tmpfs 5.7G 0 5.7G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 1.2G 4.0K 1.2G 1% /run/user/0
- 然后输入
ufw status
可以看到默认防火墙是关闭的,因此我们就不需要额外再去配置端口开放相关的配置,只要在华为云安全组配置端口开放就可以了
root@flexusx-ebe8:~# ufw status
Status: 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 unit
Created 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 VERSION
flexusx-ebe8 Ready control-plane,master 99m v1.30.4+k3s1
- 至此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.7
69250cb8a892: Loading layer [==================================================>] 83.88MB/83.88MB
ae2b3df40922: Loading layer [==================================================>] 13.18MB/13.18MB
a1824de85fcf: Loading layer [==================================================>] 3.584kB/3.584kB
250eaa00b2bd: Loading layer [==================================================>] 23.85MB/23.85MB
8fcb3c48fc99: Loading layer [==================================================>] 17.62MB/17.62MB
974ff5e30cff: Loading layer [==================================================>] 43.77MB/43.77MB
f7f1d51a77b0: Loading layer [==================================================>] 97.14MB/97.14MB
7a410bf07334: Loading layer [==================================================>] 3.072kB/3.072kB
be58f0e51944: Loading layer [==================================================>] 9.216kB/9.216kB
2bb74bb9a408: Loading layer [==================================================>] 23.76MB/23.76MB
c6d10a351149: Loading layer [==================================================>] 18.77MB/18.77MB
b465627a87b8: Loading layer [==================================================>] 42.54MB/42.54MB
60238073cec3: Loading layer [==================================================>] 2.024MB/2.024MB
c4f2c4dc8e79: Loading layer [==================================================>] 28.67kB/28.67kB
b68d4a8bf0a0: Loading layer [==================================================>] 61.95kB/61.95kB
6bf9adcbc496: Loading layer [==================================================>] 42.1MB/42.1MB
b7761c61c80a: Loading layer [==================================================>] 42.1MB/42.1MB
18f966ef4c93: Loading layer [==================================================>] 13.34MB/13.34MB
8ca551781b2a26cfa2e22b3e3be2c03935e0ed5ef7ad989c389f84cc67d789b0
- 查看kuboard运行状态
docker ps
root@flexusx-ebe8:/home/k3s# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8ca551781b2a 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安全组的配置进行修改
-
进入安全组的配置页面
-
新建安全组
-
这里我们开放8088端口
-
然后加入新建的安全组
-
这样我们的实例的端口也就开放成功了
使用kuboard并接入k3s
-
网页访问kuboard,访问登录页
http://弹性ip:8088/sso/auth/default?req=kgoptaus7rndtkzw6nyqyyt6q
-
登录kuboard,默认账号密码为 admin Kuboard123
-
选择添加集群,使用第一个方法,把脚本复制出来,去服务器执行
-
执行完后,把红色的token复制出来
-
按图所示填写数据,ApiServer地址填内网地址,这里不填弹性公网地址
-
点击确定后,k3s就接入kuboard,然后选择第一个ServiceAccount kuboard-admin,然后选择集群概要
-
至此kuboard接入k3s完成