k8s实用脚本

1 将docker管理的镜像传递给k8s使用

bash 复制代码
#!/bin/bash

# docker-to-ctr.sh
# 将本地所有 Docker 镜像导出为 tar 并存储到指定目录
# 若目标 tar 已存在则跳过

DIR="/home/hanwang/docker_images"

set -e

# 创建存储目录
mkdir -p "$DIR"

echo "🔍 获取本地 Docker 镜像列表..."
IMAGES=$(docker images --format "{{.Repository}}:{{.Tag}}" | grep -v "<none>")

if [ -z "$IMAGES" ]; then
  echo "❌ 未找到有效的 Docker 镜像(排除 <none> 标签)"
  exit 1
fi

COUNT=$(echo "$IMAGES" | wc -l)
echo "📦 共找到 ${COUNT} 个镜像,开始保存到 ${DIR} ..."

for img in $IMAGES; do
  echo "➡️  处理镜像: $img"
  
  # 目标 tar 文件名:将仓库/标签中的特殊字符替换为下划线
  TARGET_TAR="${DIR}/$(echo "$img" | tr '/' '_' | tr ':' '_').tar"

  if [ -f "$TARGET_TAR" ]; then
    echo "⏭️  已存在:$TARGET_TAR,跳过保存"
    continue
  fi

  echo "💾 保存镜像为 tar:$TARGET_TAR"
  docker save "$img" -o "$TARGET_TAR"
  # 导入到 containerd 的 k8s.io 命名空间(Kubernetes 使用此命名空间)
  ctr -n k8s.io images import --no-unpack "$TARGET_TAR"
  
  echo "✅ 镜像 $img 已导入 containerd"
  echo "✅ 已保存:$TARGET_TAR"
done

echo "🎉 所有镜像保存完成!"
echo "📂 存储目录:$DIR"
相关推荐
苍狗T2 小时前
k8s 控制器管理
linux·运维·云原生·容器·kubernetes
名字还没想好☜4 小时前
Prometheus 告警实战:写 alerting rules、用 Alertmanager 做路由分组与抑制
运维·前端·javascript·docker·kubernetes·prometheus
qq_349447955 小时前
K8S Helm安装
云原生·容器·kubernetes
tangyal5 小时前
kubernetes(k8s)基础理论与集群部署
kubernetes·k8s·部署·node·理论·pod·集群cluster
Cicada1289 小时前
定时任务方案选择指南:crontab、K8s CronJob、Airflow、XXL-JOB
云原生·容器·kubernetes
猫吃了源码10 小时前
Ubuntu24系统安装部署最新版K8s(Kubernetes)1.36保姆级详细教程
云原生·容器·kubernetes
秋风点枝11 小时前
第二篇:安装 Argo CD + 第一次部署应用
kubernetes·github·argocd
AKCJDJ1 天前
k8s的管理及控制器管理
云原生·容器·kubernetes
SCandL1521 天前
k8s service
linux·容器·kubernetes
众人皆醒我独醉1 天前
InferenceGraph:把多个推理服务编排成 DAG
面试·kubernetes·gpu