[特殊字符] macOS + Lima 离线下载 Calico 镜像教程

发布于:2025-04-12 ⋅ 阅读:(18) ⋅ 点赞:(0)

最终目标:在 Mac 主机获得一份包含 Calico 镜像的 .tar 文件,用于离线安装 K8s 网络插件。


✅ 一、准备工作

1. 安装 Lima 和 nerdctl

brew install lima nerdctl

✅ 二、启动 Lima 虚拟机(基于 Ubuntu)

1. 启动默认 Lima 实例

limactl start default

切换root账户

sudo -i

2. 进入 Lima 虚拟机

limactl shell default

3. 安装 containerd 和 nerdctl(在 Lima VM 中)

sudo apt update
sudo apt install -y containerd
sudo systemctl enable --now containerd

✅ 三、下载并打包 Calico 镜像

1. 创建脚本并进入工作目录

mkdir -p ~/calico && cd ~/calico
nano pull_calico_images_nerdctl.sh

2. 粘贴以下脚本内容

#!/bin/bash
set -euo pipefail

images=(
  "quay.io/tigera/operator:v1.32.3"
  "quay.io/calico/cni:v3.27.0"
  "quay.io/calico/kube-controllers:v3.27.0"
  "quay.io/calico/node:v3.27.0"
  "quay.io/calico/pod2daemon-flexvol:v3.27.0"
  "quay.io/calico/typha:v3.27.0"
)

output_dir="/calico/calico-images"
sudo mkdir -p "$output_dir"

for img in "${images[@]}"; do
  filename="${img//[\/:]/_}.tar"

  echo "🔄 Pulling $img"
  sudo nerdctl pull "$img"

  echo "💾 Saving to $output_dir/$filename"
  sudo nerdctl save -o "$output_dir/$filename" "$img"
done

echo "🎉 Done. Images saved to $output_dir"

3. 运行脚本

chmod +x pull_calico_images_nerdctl.sh
sudo ./pull_calico_images_nerdctl.sh

✅ 四、打包镜像文件以便复制到 Mac 主机

1. 打包为压缩文件

sudo tar -czf /tmp/calico-images.tar.gz -C /calico calico-images

✅ 五、从 Lima 虚拟机复制到主机

1. 在 macOS 主机执行复制命令

limactl copy default:/tmp/calico-images.tar.gz ./calico-images.tar.gz

2. 解压到本地目录

mkdir -p ./calico-images
tar -xzf ./calico-images.tar.gz -C ./calico-images --strip-components=1

✅ 六、验证结果

ls ./calico-images

你将看到多个 .tar 文件:

quay.io_calico_node_v3.27.0.tar
quay.io_calico_cni_v3.27.0.tar
...

✅ 七、可选:导入到离线环境

.tar 文件复制到你的离线 K8s 节点并执行:

sudo nerdctl load -i quay.io_calico_node_v3.27.0.tar

网站公告

今日签到

点亮在社区的每一天
去签到