温馨提示×

debian k8s如何离线安装

小樊
45
2026-09-29 09:58:41
栏目: 智能运维

在无外网环境的 Debian 上部署 Kubernetes(k8s),通常做法是先在能联网的机器上下载所需 deb 包和镜像,再拷贝到离线机器安装。下面以 Debian 11/12 + kubeadm 为例说明。


一、总体思路

  1. 准备一台同版本 Debian 且能联网的机器
  2. 下载:
    • kubelet / kubeadm / kubectl(deb 包)
    • containerd 或 docker(deb 包)
    • Kubernetes 所需容器镜像
  3. 拷贝到离线机器
  4. 离线安装并初始化集群

二、离线下载(联网机器)

1. 添加 Kubernetes apt 源

apt-get update
apt-get install -y apt-transport-https ca-certificates curl

curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.29/deb/Release.key | gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg

echo "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pks.k8s.io/core:/stable:/v1.29/deb/ /" > /etc/apt/sources.list.d/kubernetes.list

apt-get update

2. 下载 kubeadm 相关 deb 包

mkdir -p /opt/k8s-debs
cd /opt/k8s-debs

apt-get download kubelet kubeadm kubectl

3. 下载 containerd

apt-get download containerd.io

(如用 Docker)

apt-get download docker-ce docker-ce-cli

4. 下载 Kubernetes 镜像

kubeadm config images list

例如:

registry.k8s.io/kube-apiserver:v1.29.0
registry.k8s.io/kube-controller-manager:v1.29.0
registry.k8s.io/kube-scheduler:v1.29.0
registry.k8s.io/kube-proxy:v1.29.0
registry.k8s.io/pause:3.9
registry.k8s.io/etcd:3.5.10-0
registry.k8s.io/coredns/coredns:v1.11.1

导出镜像:

for img in $(kubeadm config images list); do
  docker pull $img
  docker save $img -o $(echo $img | tr '/' '_').tar
done

三、拷贝到离线机器

将以下内容拷贝:

/opt/k8s-debs/*.deb
*.tar

可用 U 盘 / scp / 内网传输


四、离线安装(目标机器)

1. 安装 deb 包

dpkg -i *.deb
apt-get install -f

2. 加载镜像

for f in *.tar; do
  docker load -i $f
done

3. 初始化集群(master)

kubeadm init --pod-network-cidr=10.244.0.0/16

4. 安装网络插件(如 Flannel)

离线下载 flannel 镜像和 yaml:

kubectl apply -f kube-flannel.yml

五、注意事项

  • Debian 版本必须一致(glibc 问题)
  • 关闭 swap
  • 内核参数(bridge-nf-call-iptables)
  • 如用 containerd,需配置 SystemdCgroup = true

六、更简单方案(推荐)

✅ 使用 KubeSphere / Sealos / Kubespray(离线包)
✅ 或制作 本地 apt + registry 镜像仓库

如果你需要:

  • 指定 k8s 版本
  • containerd 而非 docker
  • 高可用离线安装

可以告诉我你的环境,我可以给你完整离线脚本。

0 踩