用 Sealos 搭 k8s 集群
November 17, 2024About 2 min
用 Sealos 搭 k8s 集群
kubeadm 那套手动流程步骤多、容易踩坑。Sealos 把整个集群封装成镜像,一条 sealos run 就把 control plane、worker 节点、CNI、helm 全装好,适合快速起一套能用的集群。参考官方文档。
下面操作都在主节点 root 用户下执行。
安装 sealos
Debian/Ubuntu:
apt update
apt install sealos
Rocky Linux / CentOS:
sudo cat > /etc/yum.repos.d/labring.repo << EOF
[fury]
name=labring Yum Repo
baseurl=https://yum.fury.io/labring/
enabled=1
gpgcheck=0
EOF
sudo yum clean all
sudo yum install sealos
配置节点免密
主节点生成密钥:
ssh-keygen
把公钥拷到所有子节点(nodeIP 换成实际 IP):
ssh-copy-id -i ~/.ssh/id_ed25519.pub root@<nodeIP>
注意:有些服务器默认禁用了密码认证,或安全软件(如部分 EDR)会禁掉 SSH 密钥连接,这时 ssh-copy-id 会失败。先确认目标节点的 sshd 允许密钥登录。
安装并启动集群
一条命令拉起 control plane + worker + CNI(cilium)+ helm:
sealos run registry.cn-shanghai.aliyuncs.com/labring/kubernetes:v1.27.7 \
registry.cn-shanghai.aliyuncs.com/labring/helm:v3.9.4 \
registry.cn-shanghai.aliyuncs.com/labring/cilium:v1.13.4 \
--masters <masterIP> --nodes <node1IP>,<node2IP> \
-i /root/.ssh/id_ed25519
查看节点:
kubectl get nodes
集群装坏了就重置重来:
sealos reset
reset 后如果还有残留进程,先手动杀掉再重新 run:
ps aux | grep kube
# kill 掉残留的 kube 进程,再 sealos run
装 Kuboard(集群管理页)
这里用 podman 跑 Kuboard。
装 podman:
apt install -y podman # Debian/Ubuntu
yum install -y podman # CentOS/Rocky
拉镜像、建存储路径、装 CNI 插件:
podman pull eipwork/kuboard:v3
mkdir -p /usr/share/kuboard
sudo dnf install containernetworking-plugins
启动 Kuboard。注意端口映射:Kuboard 默认对外用 10080,但 10080 因历史上被滥用,被 Chrome 等基于 Chromium 的浏览器封锁,建议映射成 8080:
podman run -d --name kuboard -p 8080:80 \
-v /usr/share/kuboard:/usr/share/kuboard eipwork/kuboard:v3
确认端口起来了:
lsof -i:8080
访问 http://<your-host-ip>:8080,默认用户名 admin,密码 Kuboard123(登录后请立刻改掉)。
最后导入集群配置。在 master 上找 kubeconfig:
find / -name config -path '*/.kube/*' 2>/dev/null
把这个文件内容填进 Kuboard 的导入页即可。