离线环境 kubeadm 部署:镜像清单、导入与 containerd 配置 📅 发布时间:2026/8/20 8:01:08 👁 浏览次数: 离线环境 kubeadm 部署镜像清单、导入与 containerd 配置操作环境内网节点与题 1 相同离线包已导入 /opt/offline-k8s/。对接原理kubelet 建 Pod 前查 containerd 本地镜像缓存k8s.io 命名空间命中则不触发网络拉取因此离线部署 镜像名与组件期望完全一致 sandbox_image 指向本地镜像。详细步骤bash暗色复制1# 联网端与内网同版本系统 2# 1. 生成并核对镜像清单 3kubeadm config images list \ 4 --kubernetes-versionv1.28.15 \ 5 --image-repositoryregistry.aliyuncs.com/google_containers 6# 清单含kube-apiserver / kube-controller-manager / kube-scheduler / kube-proxy 7# pause:3.9 / etcd:3.5.9-0 / coredns:v1.10.1 8 9# 2. 拉取并导出含 CNI 与测试镜像 10kubeadm config images pull --kubernetes-versionv1.28.15 \ 11 --image-repositoryregistry.aliyuncs.com/google_containers 12ctr -n k8s.io images pull docker.io/calico/cni:v3.27.4 # 按所选 CNI 补充 13ctr -n k8s.io images pull docker.io/library/nginx:1.25.3 14ctr -n k8s.io images export k8s-images.tar $(ctr -n k8s.io images ls -q) 15sha256sum k8s-images.tar 16 17# 内网节点 18# 3. 校验并导入 19sha256sum -c k8s-images.tar.sha256 20ctr -n k8s.io images import k8s-images.tar 21 22# 4. containerd 配置修改sandbox_image 指向本地镜像 23sed -i s|sandbox_image .*|sandbox_image registry.aliyuncs.com/google_containers/pause:3.9| \ 24 /etc/containerd/config.toml 25systemctl restart containerd 26 27# 5. 正常 initimageRepository 必须与镜像前缀一致 28kubeadm init --kubernetes-versionv1.28.15 \ 29 --image-repositoryregistry.aliyuncs.com/google_containers \ 30 --pod-network-cidr10.244.0.0/16验证流程bash暗色复制1crictl images # 全部组件镜像在列 2ctr -n k8s.io images ls | grep pause # pause 镜像存在于 k8s.io 命名空间 3kubectl get pods -n kube-system # 无 ImagePull 相关事件排错导入后 kubelet 仍尝试拉镜像 → 对比crictl images名称与--image-repository前缀是否逐字一致含端口、子路径只导入了 default 命名空间 → 重加-n k8s.io导入。