在无外网环境的 Debian 上部署 Kubernetes(k8s),通常做法是先在能联网的机器上下载所需 deb 包和镜像,再拷贝到离线机器安装。下面以 Debian 11/12 + kubeadm 为例说明。
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
mkdir -p /opt/k8s-debs
cd /opt/k8s-debs
apt-get download kubelet kubeadm kubectl
apt-get download containerd.io
(如用 Docker)
apt-get download docker-ce docker-ce-cli
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 / 内网传输
dpkg -i *.deb
apt-get install -f
for f in *.tar; do
docker load -i $f
done
kubeadm init --pod-network-cidr=10.244.0.0/16
离线下载 flannel 镜像和 yaml:
kubectl apply -f kube-flannel.yml
SystemdCgroup = true✅ 使用 KubeSphere / Sealos / Kubespray(离线包)
✅ 或制作 本地 apt + registry 镜像仓库
如果你需要:
可以告诉我你的环境,我可以给你完整离线脚本。