温馨提示×

centos能否离线部署k8s

小樊
61
2026-09-06 11:23:51
栏目: 智能运维

可以的,CentOS 完全支持离线(离线/内网)部署 Kubernetes。这是企业内网、涉密环境、无外网服务器的常见做法。

下面从可行性、常见方案、核心步骤、注意事项几个方面说明。


一、CentOS 离线部署 K8s 是否可行?

✅ 完全可行
Kubernetes 本身不依赖外网运行,只依赖:

  • 系统 RPM 包
  • 容器运行时(docker / containerd)
  • K8s 各组件镜像
  • 网络插件镜像(Calico / Flannel 等)

只要你提前把软件包和镜像准备好,就可以在无外网环境安装。


二、常见离线部署方案(推荐)

方案 1:kubeadm + 离线镜像(最常用)

适合:生产环境、标准 K8s

步骤概览:

  1. 在有网的机器下载
    • kubeadm / kubelet / kubectl RPM
    • 容器运行时 RPM
    • K8s 所需镜像
  2. 拷贝到 CentOS 离线机器
  3. 使用 kubeadm init 部署

方案 2:使用离线部署工具(强烈推荐)

适合:省事、可重复部署

常用工具:

  • KubeSphere(基于 kubeadm,支持离线)
  • sealos(一条命令离线部署)
  • kubekey(KubeSphere 官方)
  • Rancher RKE(离线支持好)

示例(sealos):

sealos init \
  --master 192.168.0.10 \
  --node 192.168.0.11 \
  --pkg-url kube1.28.tar.gz

方案 3:二进制部署(不推荐新手)

  • 手动下载所有二进制文件
  • 自己写 systemd 服务
  • 成本高、维护难

三、离线部署核心准备内容

1️⃣ 系统 RPM 包

  • centos-release
  • yum / dnf
  • 依赖库(提前 yumdownloader

2️⃣ 容器运行时

常见选择:

  • containerd(推荐)
  • docker

离线安装:

yum install containerd.io-xxx.rpm

3️⃣ K8s 组件

  • kubelet
  • kubeadm
  • kubectl

4️⃣ 镜像(最关键)

使用:

kubeadm config images list

然后:

docker pull <image>
docker save <image> > image.tar

拷贝到离线机:

docker load < image.tar

四、离线部署示例(简版)

有网机器

kubeadm config images list
docker pull k8s.gcr.io/kube-apiserver:v1.28.0
docker save k8s.gcr.io/kube-apiserver:v1.28.0 > apiserver.tar

离线机器

docker load < apiserver.tar
kubeadm init --image-repository=local

五、注意事项(非常重要)

⚠️ CentOS 版本

  • CentOS 7:可用,但已 EOL(不推荐新项目)
  • CentOS Stream / Rocky / Alma:推荐

⚠️ 内核

  • 建议 ≥ 4.18
  • 开启桥接、IPv4 转发

⚠️ 镜像仓库

  • 可搭建 harbor(离线镜像仓库)
  • 或直接用 docker load

⚠️ 网络插件

  • Calico / Flannel 也需要离线镜像

六、总结

✅ CentOS 可以离线部署 K8s
✅ 推荐:kubeadm + 离线镜像 或 sealos / kubekey
✅ 核心:RPM + 容器运行时 + 镜像
✅ 生产建议:Rocky/Alma + containerd


如果你愿意,可以告诉我:

  • CentOS 版本(7 / 8 / Stream)
  • K8s 版本
  • 单节点 / 多节点
  • 是否允许用部署工具

我可以给你一套可直接执行的离线部署方案

0