温馨提示×

centos k8s能否离线部署

小樊
51
2026-09-21 15:25:58
栏目: 智能运维

结论:可以,CentOS 上的 Kubernetes(k8s)完全支持离线(离线/air-gapped)部署。

下面给你一个清晰、实用的说明。


一、离线部署的核心思路

离线部署 k8s 的本质是:
提前把所有需要的软件、镜像、依赖下载好,再在目标机器上安装,不依赖公网。

主要涉及三类资源:

  1. 系统依赖包(rpm)
  2. Kubernetes 组件(kubeadm / kubelet / kubectl)
  3. 容器镜像(如 k8s.gcr.io 或 registry.k8s.io 的镜像)

二、常见离线部署方式(推荐程度)

✅ 方式一:kubeadm + 离线镜像(最常用)

适用场景:标准 CentOS 7/8/Stream

1. 准备离线环境

在一台有网机器上:

  • 下载 rpm 包
  • 下载 k8s 镜像
  • 导出镜像为 tar

2. 离线安装组件

yum install -y kubelet kubeadm kubectl --disablerepo=* --enablerepo=local

3. 导入镜像

docker load < kube-apiserver.tar
docker load < kube-controller-manager.tar
docker load < kube-scheduler.tar
docker load < kube-proxy.tar
docker load < pause.tar
docker load < etcd.tar

4. 初始化集群

kubeadm init --image-repository=本地仓库或离线镜像

✅ 方式二:私有镜像仓库(企业最推荐)

适合生产环境

  • 搭建一个内网 Harbor / registry
  • 所有 k8s 镜像 push 到私有仓库
  • kubeadm init 使用:
--image-repository=harbor.local/k8s

✅ 优点:

  • 可扩展
  • 多节点方便
  • 后续升级简单

✅ 方式三:使用离线部署工具

常见工具:

  • KubeSphere(支持离线)
  • Rancher(离线版)
  • kubespray(air-gapped 模式)
  • sealos(非常适合离线)

例如 sealos:

sealos init \
  --master 192.168.0.1 \
  --node 192.168.0.2 \
  --pkg-url kube1.28.tar.gz

三、CentOS 离线部署注意点

⚠ 系统层面

  • 关闭防火墙 / SELinux
  • 配置好 /etc/hosts
  • 时间同步(ntp / chrony)

⚠ 版本选择

  • CentOS 7:成熟稳定
  • CentOS Stream:需注意 k8s 兼容性
  • 推荐使用 Containerd(比 Docker 更轻)

⚠ 镜像来源

离线常见镜像:

kube-apiserver
kube-controller-manager
kube-scheduler
kube-proxy
pause
etcd
coredns

四、典型离线部署流程(精简版)

  1. 有网机器:
    • 下载 rpm
    • 拉取镜像
    • 导出 tar / 推送到 Harbor
  2. 离线机器:
    • 配置本地 yum 源
    • 安装 kube 组件
    • 导入镜像
  3. kubeadm init
  4. 安装 CNI(如 Calico / Flannel 离线包)

五、总结

✅ CentOS + k8s 可以完全离线部署
✅ 生产环境推荐:私有仓库 + kubeadm
✅ 小环境可用:离线镜像 + 本地 yum

如果你需要:

  • 具体版本(如 k8s 1.26/1.28)
  • CentOS 7 或 Stream
  • 单节点 / 多节点
  • 使用 Docker 还是 Containerd

我可以给你一份可直接照做的离线部署清单。

0 踩