Sealos 离线部署:断网机房里装好 K8s 集群的完整流程
Sealos 离线部署断网机房里装好 K8s 集群的完整流程【免费下载链接】Sealos以应用为中心的智能云操作系统项目地址: https://gitcode.com/labring/Sealos机房里网线已经拔掉服务器一台台摆好你要在完全断网的情况下把一套能用的 Kubernetes 集群搭起来。用 Sealos 离线部署 这套办法把整套集群打包成一个文件拷进内网解开就能装全程不碰外网。为什么能断网装把整套集群打包成一个文件平时装 K8s 之所以离不开网是因为它要现拉一堆东西kube-apiserver、etcd、容器运行时、网络插件的镜像还有各自的配置文件和二进制工具散落在各处。Sealos 的思路是反过来——先把这些东西全塞进一个标准 OCI 镜像里这个镜像叫集群镜像Cluster Image说白了就是把一整个集群当成一个应用来打包。这样交付时就只有一个文件联网机上用sealos save把它导成 tar拷进内网sealos load解开sealos run一下集群就起来了。整个过程是一条直线不用记太细记住顺序就行联网机pull镜像 →sealos save成 tar → 拷进内网 →sealos load解开 →sealos run拉起集群好处是节点之间版本天然一致也不用担心哪台机器漏拉了某个依赖。下面按先做包、再搬包、最后跑集群的顺序走一遍。离线包怎么打又怎么搬进内网联网机上把包做好这一步在有外网的机器上做。最小集合就是拉一个 Kubernetes 集群镜像再导出两行就够# 联网机拉取集群镜像并导出成 tar sealos pull labring/kubernetes:v1.28.0 sealos save -o kubernetes-offline.tar labring/kubernetes:v1.28.0如果你希望把 MySQL、ingress 这类业务镜像也一起带进去就在联网机上写个 Kubefile用sealos build把额外镜像加进集群镜像再save一次。集群镜像的构成说明 里讲清楚了哪些东西会被打进去。内网里把包解开包拷到内网第一台 master 上后U 盘、内网文件服务器都行解开并核对一下# 内网第一台 master解开并确认镜像在不在 sealos load -i kubernetes-offline.tar sealos imagessealos images里能看到labring/kubernetes:v1.28.0就说明导入成功后面所有操作和在线装集群完全一样。完整离线安装文档 也给了同样的流程。容易卡住的地方tar 在拷贝时被截断或校验不过sealos load会报格式错误先确认文件完整再导入内网机器没装 sealos 本体记得先把 sealos 二进制也一并带进去它只是个 Go 编译的单一可执行文件包太大时别走容易掉线的临时通道拷完先比对大小或校验和集群怎么跑起来拉起多节点集群包解开后直接在第一台 master 上执行sealos run把 master 和 worker 的 IP 列出来。sealos run只能跑在集群第一台 master 上不支持在集群外的机器上远程发起sealos run labring/kubernetes:v1.28.0 \ --masters 192.168.1.10,192.168.1.11,192.168.1.12 \ --nodes 192.168.1.20,192.168.1.21 \ --ssh-passwd 节点SSH密码想先单节点验证加个--single即可多节点高可用就按上面列三台 master。执行过程会依次做主机名校验、时间同步检查然后逐个拉镜像、铺组件。确认集群是不是真的好了看两个地方就够了kubectl get nodes kubectl get pods -n kube-systemget nodes里所有节点都是Readyget pods -n kube-system里核心组件不反复重启就算这一关过了。容易卡住的地方节点间时钟不同步是最常见的隐雷etcd 对时间漂移很敏感先date对一下再动手master/worker 之间 SSH 不通或密码错加入阶段会卡住先手动ssh一台试试别提前手动装 Docker让 sealos 自己铺 containerd混着来容易冲突业务怎么装上去一键把应用装进集群集群好了业务也一样走集群镜像的方式装不需要单独去配镜像仓库sealos run labring/mysql:8.0.32 sealos run labring/ingress-nginx:4.5.2这些应用镜像要么已经随集群镜像打进离线包要么提前在联网机上用sealos save -m多镜像导出、在内网load进来命令形态和装集群是同一套。装完可以用kubectl get pods -A看看落在哪些节点上或者用封面的应用部署界面去可视化操作两者不冲突。容易卡住的地方应用镜像名或 tag 写错Pod 会一直ImagePullBackOff但内网根本没网拉所以一定要用离线包里真实存在的 tag需要访问外网的依赖比如某些初始化脚本会curl拉资源在断网环境必然失败这种应用要提前改造或换离线版本落地前自查清单动手前把这几条过一遍能省掉大部分返工所有节点是同一发行版、同一版本且都关了 Swap、防火墙放行了节点间通信sealos 二进制已装进内网第一台 mastersealos version能跑sealos load导入后sealos images能看到目标集群镜像tar 校验完整sealos run跑在第一台 master 上master/worker 的 IP、SSH 账号密码都核对无误离线包里业务应用的镜像 tag 与实际要部署的完全一致没有漏拉依赖把这条链路跑通一次后面再扩容、加应用都是同一套save/load/run只是动作重复而已。【免费下载链接】Sealos以应用为中心的智能云操作系统项目地址: https://gitcode.com/labring/Sealos创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考