信息介绍

主体部分使用离线包,在Ubuntu 25.04 plucky (ARM架构)上,使用sealos快速部署k8s集群。
官方教程在这里:
K8s集群管理/快速开始/下载Sealos命令行工具
K8s集群管理/快速开始/安装K8s集群
3台ubuntu虚拟机使用mac上的orbstack 建立,信息如下:

NAME          STATE    DISTRO  VERSION   ARCH   SIZE  IP
----          -----    ------  -------   ----   ----  --
k8s-master-1  running  ubuntu  plucky    arm64        198.19.249.187
k8s-node-1    running  ubuntu  plucky    arm64        198.19.249.12
k8s-node-2    running  ubuntu  plucky    arm64        198.19.249.179

大致操作过程

将所需离线包拷贝至k8s-master-1内。

sealos_5.0.1_linux_arm64.tar.gz 
# 下载地址
# https://mirror.ghproxy.com/https://github.com/labring/sealos/releases/download/v5.0.1/sealos_5.0.1_linux_arm64.tar.gz

kubernetes-docker_v1.30.14.tar
helm_v3.18.4.tar
cilium_v1.15.8.tar
# 这三个镜像可以在线拉取,拉取后可以保存为tar包,后面细说

设置root密码 (其实不需要,反正用key登录)

passwd root

解压二进制文件并拉取镜像

tar zxvf sealos_5.0.1_linux_arm64.tar.gz -C /usr/bin sealos
sealos version
sealos pull registry.cn-shanghai.aliyuncs.com/labring/kubernetes-docker:v1.30.14
sealos pull registry.cn-shanghai.aliyuncs.com/labring/helm:v3.18.4
sealos pull registry.cn-shanghai.aliyuncs.com/labring/cilium:v1.15.8
sealos images

拉取后可以保存为离线tar包

sealos save registry.cn-shanghai.aliyuncs.com/labring/kubernetes-docker:v1.30.14 -o kubernetes-docker_v1.30.14.tar
sealos save registry.cn-shanghai.aliyuncs.com/labring/helm:v3.18.4 -o helm_v3.18.4.tar
sealos save registry.cn-shanghai.aliyuncs.com/labring/cilium:v1.15.8 -o cilium_v1.15.8.tar

离线环境就可以使用tar包导入

sealos load -i kubernetes-docker_v1.30.14.tar
sealos load -i helm_v3.18.4.tar
sealos load -i cilium_v1.15.8.tar

ubuntu不自带ssh server,需要手动安装

apt update
apt install openssh-server -y
vi /etc/ssh/sshd_config

去掉PermitRootLogin prohibit-passwordPubkeyAuthentication yes 前的#号
重启ssh,并配置免密登录

systemctl restart ssh
ssh-keygen
cd ~/.ssh
cat id_ed25519.pub >> authorized_keys

想办法将.ssh文件夹复制到其他两台ubuntu中
指定rsa安装

sealos run registry.cn-shanghai.aliyuncs.com/labring/kubernetes-docker:v1.30.14 registry.cn-shanghai.aliyuncs.com/labring/helm:v3.18.4 registry.cn-shanghai.aliyuncs.com/labring/cilium:v1.15.8      --masters 198.19.249.187      --nodes 198.19.249.12,198.19.249.179 -u root -i /root/.ssh/id_ed25519

报错了

198.19.249.12:22        Job for docker.service failed because the control process exited with error code.
198.19.249.12:22        See "systemctl status docker.service" and "journalctl -xeu docker.service" for details.
198.19.249.179:22       Job for docker.service failed because the control process exited with error code.
198.19.249.179:22       See "systemctl status docker.service" and "journalctl -xeu docker.service" for details.
Job for docker.service failed because the control process exited with error code.
See "systemctl status docker.service" and "journalctl -xeu docker.service" for details.
Job for docker.service failed because the control process exited with error code.
See "systemctl status docker.service" and "journalctl -xeu docker.service" for details.
198.19.249.179:22       Job for docker.service failed because the control process exited with error code.
198.19.249.179:22       See "systemctl status docker.service" and "journalctl -xeu docker.service" for details.
198.19.249.179:22        INFO [2025-08-20 22:38:03] >> Health check docker!
 INFO [2025-08-20 22:38:03] >> Health check docker!
198.19.249.12:22        Job for docker.service failed because the control process exited with error code.
198.19.249.12:22        See "systemctl status docker.service" and "journalctl -xeu docker.service" for details.
198.19.249.12:22         INFO [2025-08-20 22:38:03] >> Health check docker!
 ERROR [2025-08-20 22:38:03] >> docker status is error
198.19.249.179:22        ERROR [2025-08-20 22:38:03] >> docker status is error
 ERROR [2025-08-20 22:38:03] >> ====init docker failed!====
198.19.249.179:22        ERROR [2025-08-20 22:38:03] >> ====init docker failed!====
198.19.249.12:22         ERROR [2025-08-20 22:38:03] >> docker status is error
198.19.249.12:22         ERROR [2025-08-20 22:38:03] >> ====init docker failed!====
2025-08-20T22:38:03 error Applied to cluster error: exit status 1
Error: exit status 1

看一下docker报的错误

journalctl -xeu docker.service

主要错误如下

could not change group /var/run/docker.sock to docker: group docker not found
failed to find iptables" error="exec: \"iptables\": executable file not found in $PATH

那么原因很简单,没有docker用户组,没有安装iptables,简单处理下,并回滚安装

groupadd docker
apt install iptables -y
sealos reset

重新安装

sealos run registry.cn-shanghai.aliyuncs.com/labring/kubernetes-docker:v1.30.14 registry.cn-shanghai.aliyuncs.com/labring/helm:v3.18.4 registry.cn-shanghai.aliyuncs.com/labring/cilium:v1.15.8      --masters 198.19.249.187      --nodes 198.19.249.12,198.19.249.179 -u root -i /root/.ssh/id_ed25519

这次安装成功了

kubectl get node -o wide
NAME           STATUS   ROLES           AGE   VERSION    INTERNAL-IP      EXTERNAL-IP   OS-IMAGE       KERNEL-VERSION                         CONTAINER-RUNTIME
k8s-master-1   Ready    control-plane   31m   v1.30.14   198.19.249.187   <none>        Ubuntu 25.04   6.14.10-orbstack-00291-g1b252bd3edea   docker://28.2.2
k8s-node-1     Ready    <none>          31m   v1.30.14   198.19.249.12    <none>        Ubuntu 25.04   6.14.10-orbstack-00291-g1b252bd3edea   docker://28.2.2
k8s-node-2     Ready    <none>          31m   v1.30.14   198.19.249.179   <none>        Ubuntu 25.04   6.14.10-orbstack-00291-g1b252bd3edea   docker://28.2.2

不得不说,sealos很强,将k8s集群的安装简化到如此程度,很佩服。

最后修改:2025 年 08 月 20 日 11 : 51 PM
如果觉得我的文章对你有用,请随意赞赏