Shell 脚本批量导出 K8S 镜像

5
(1)

今天需要给一个内网环境安装K8S,需要将镜像保存成压缩包来使用,网上没有现成的好用脚本,直接写了一个

#!/bin/bash

# 获取所有的 Kubernetes 镜像列表
images=$(ctr -n k8s.io image ls -q | grep registry | grep -v @)

# 创建一个临时目录来存储打包的镜像
temp_dir=./

# 遍历镜像列表并进行打包
for image in $images; do
  ctr -n k8s.io image export "$temp_dir/$(echo $image |awk -F'/' '{print $NF}' | sed 's/:/-/g').tar" $image
done

例如上面第一条命令获取到的是:

sudo ctr -n k8s.io image ls -q | grep registry | grep -v @

registry.aliyuncs.com/google_containers/coredns:v1.11.1
registry.aliyuncs.com/google_containers/etcd:3.5.12-0
registry.aliyuncs.com/google_containers/kube-apiserver:v1.30.3
registry.aliyuncs.com/google_containers/kube-controller-manager:v1.30.3
registry.aliyuncs.com/google_containers/kube-proxy:v1.30.3
registry.aliyuncs.com/google_containers/kube-scheduler:v1.30.3
registry.aliyuncs.com/google_containers/pause:3.9

循环中的语句截取最后一段,转换冒号为-,并且拼接.tar作为文件名来存储镜像。

这篇文章有用吗?

平均评分 5 / 5. 投票数: 1

到目前为止还没有投票!成为第一位评论此文章。

很抱歉,这篇文章对您没有用!

让我们改善这篇文章!

告诉我们我们如何改善这篇文章?


了解 工作生活心情记忆 的更多信息

Subscribe to get the latest posts sent to your email.

分类: