什么是华为云 Flexus X 实例
· 华为云 Flexus X 实例云服务是新一代开箱即用、体验跃级、面向中小企业和开发者打造的高品价比云服务产品。
· Flexus 云服务器 X 实例是新一代面向中小企业和开发者打造的柔性算力云服务器,可智能感知业务负载,适用于电商直播、企业建站、开发测试环境、游戏服务器、音视频服务等中低负载场景。
开始接触华为云 Flexus 云服务器 X 实例
· 获取华为云 Flexus 云服务器 X 实例后第一步就是先去华为云上重置服务器密码
· 重置完毕后用 ssh 工具登录华为云服务器,这里我用的是 finalshell,也可以用其他工具登陆比如 xshell 或者 Putty 都可以
· 登录上去查看硬盘大小,可以看到是 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
· 至此 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 安全组的配置进行修改
· 进入安全组的配置页面
· 新建安全组
· 这里我们开放 8088 端口
· 然后加入新建的安全组
· 这样我们的实例的端口也就开放成功了
使用 kuboard 并接入 k3s
· 网页访问 kuboard,访问登录页
http://弹性 ip:8088/sso/auth/default?req=kgoptaus7rndtkzw6nyqyyt6q
· 登录 kuboard,默认账号密码为 admin Kuboard123
· 选择添加集群,使用第一个方法,把脚本复制出来,去服务器执行
· 执行完后,把红色的 token 复制出来
· 按图所示填写数据,ApiServer 地址填内网地址,这里不填弹性公网地址
· 点击确定后,k3s 就接入 kuboard,然后选择第一个 ServiceAccount kuboard-admin,然后选择集群概要
· 至此 kuboard 接入 k3s 完成