k8s-deploy/download_offline_packages.sh.j2
2025-11-21 17:55:04 +08:00

45 lines
1.5 KiB
Django/Jinja
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# 在下载主机上需要安装docker
set -e
curdir=$(pwd)
OUT=$curdir/k8s-offline.tgz
TMP=$curdir/offline-cache
apt install podman-docker
mkdir -p $TMP/bin $TMP/manifests $TMP/images $TMP/deps
echo "[1] 下载 依赖包"
cd $TMP/deps
apt install --download-only nfs-common rpcbind socat containerd bridge-utils
cp /var/cache/apt/archives/*.deb .
curl -LO https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.29.0/crictl-v1.29.0-linux-amd64.tar.gz
echo "[2] 下载 Kubernetes 二进制 {{ kubernetes.version }}"
cd $TMP/bin
curl -LO https://github.com/kubernetes-sigs/cri-tools/releases/download/{{ kubernetes.version }}/crictl-{{ kubernetes.version }}-linux-amd64.tar.gz
curl -LO https://dl.k8s.io/release/v{{ kubernetes.version }}/bin/linux/amd64/kubeadm
curl -LO https://dl.k8s.io/release/v{{ kubernetes.version }}/bin/linux/amd64/kubelet
curl -LO https://dl.k8s.io/release/v{{ kubernetes.version }}/bin/linux/amd64/kubectl
chmod +x kubeadm kubelet kubectl
cd $curdir
echo "[3] 下载镜像kubeadm config images"
$TMP/bin/kubeadm config images list --kubernetes-version {{ kubernetes.version }} > $TMP/images/images.txt
for img in $(cat $TMP/images/images.txt); do
echo "Pull image: $img"
docker pull $img
docker save -o $TMP/images/$(echo $img | tr '/:' '_').tar $img
done
echo "[4] 复制 manifests"
cp -r ../manifests/* $TMP/manifests/
echo "[5] 打包离线资源"
tar czf $OUT offline-cache
echo "已生成离线包: $OUT"