获取网站缩略图的asp代码,网站网络营销外包,经营购物网站,西直门网站建设前言#xff1a;脚本写成并非一蹴而就#xff0c;需要不断的调式和修改#xff0c;这里也是改到了7版本才在 生产环境 中验证成功。
该命令 和 脚本适用于以下场景#xff1a;在某些项目中#xff0c;由于特定的安全或政策要求#xff0c;不允许连接到你的镜像仓库。然而…前言脚本写成并非一蹴而就需要不断的调式和修改这里也是改到了7版本才在 生产环境 中验证成功。
该命令 和 脚本适用于以下场景在某些项目中由于特定的安全或政策要求不允许连接到你的镜像仓库。然而项目团队仍需获取特定命名空间下的部分 或者 所有 Docker 镜像。此命令和脚本能够协助您在本地环境拉取并保存所需命名空间中的镜像以便安全地提供给项目团队满足他们的部署和测试需求同时确保遵守相关的安全规定和访问限制。
一、命令获取指定pod镜像 命令-查询镜像版本号 kubectl get pods -n namespace -o jsonpath{range .items[*]}{.metadata.name}{\t}{range .spec.containers[*]}{.image}{\n}{end}{end} | grep -E (pod-name1|pod-name2|pod-name3|pod-name......) 执行结果 命令-save docker save -o namespace_images.tar pod-name1结果......727 pod-name2结果......21164728 pod-name3结果......build_20241021181731 pod-name......结果 执行结果 最后会生成一个tar包
二、自动化脚本获取指定命名空间下全量pod镜像 脚本内容
#!/bin/bash# 提示用户输入命名空间
echo -e 请输入命名空间
read -e NAMESPACE# 获取当前脚本的绝对路径
SCRIPT_DIR$(cd $(dirname $0) pwd)# 定义输出文件名格式为 命名空间_images_日期.tar
OUTPUT_FILE${NAMESPACE}_images_$(date %Y%m%d).tar# 获取该命名空间下的所有 Pod 的名称和镜像
POD_NAMES$(kubectl get pods -n $NAMESPACE -o jsonpath{range .items[*]}{.metadata.name}{\n}{end})
IMAGES$(kubectl get pods -n $NAMESPACE -o jsonpath{range .items[*]}{range .spec.containers[*]}{.image}{\n}{end}{end} | sort | uniq)# 拼接所有镜像名称成一个字符串
IMAGE_STRING
for IMAGE in $IMAGES; doIMAGE_STRING$IMAGE
done# 拉取所有镜像
echo 正在拉取所有镜像...
for IMAGE in $IMAGES; dodocker pull $IMAGE
done# 保存所有镜像到一个文件
echo 正在将所有镜像保存到单个 tar 文件$OUTPUT_FILE
docker save $IMAGE_STRING -o $SCRIPT_DIR/$OUTPUT_FILEecho 所有镜像已处理并保存到 $SCRIPT_DIR/$OUTPUT_FILE脚本执行后等待执行结束会生成一个以 命名空间 和 当前日期 的tar包
以下是脚本的详细解析 获取指定命名空间下所有 Pod 的镜像列表并去重 IMAGES$(kubectl get pods -n $NAMESPACE -o jsonpath{range .items[*]}{range .spec.containers[*]}{.image}{\n}{end}{end} | sort | uniq)这行代码使用 kubectl 命令获取指定命名空间下所有 Pod 的镜像列表。jsonpath 参数用于提取镜像名称然后通过管道传递给 sort 和 uniq 命令以确保列表中的镜像名称是唯一的去重。 将所有镜像名称拼接成一个字符串 IMAGE_STRING
for IMAGE in $IMAGES; doIMAGE_STRING$IMAGE
done这个循环遍历去重后的镜像列表 IMAGES并将每个镜像名称添加到 IMAGE_STRING 变量中镜像名称之间用空格分隔。 定义输出文件名格式为 KaTeX parse error: Expected group after _ at position 19: …MESPACE}_images_̲(date %Y%m%d).tar OUTPUT_FILE${NAMESPACE}_images_$(date %Y%m%d).tar这行代码定义了输出文件的名称格式为 ${NAMESPACE}_images_日期.tar其中 日期 由 date %Y%m%d 命令生成表示当前日期的年月日。 拉取所有镜像 for IMAGE in $IMAGES; dodocker pull $IMAGE
done这个循环遍历去重后的镜像列表 IMAGES并对每个镜像执行 docker pull 命令以确保本地有这些镜像的最新版本。 使用 docker save 命令将所有镜像保存到一个 tar 文件中 docker save $IMAGE_STRING -o $SCRIPT_DIR/$OUTPUT_FILE这行代码使用 docker save 命令将所有镜像由 IMAGE_STRING 变量指定保存到一个 tar 文件中。-o 参数指定输出文件的路径和名称该路径是脚本所在目录下的 $OUTPUT_FILE。 输出保存完成的消息 echo All images have been processed and saved to $SCRIPT_DIR/$OUTPUT_FILE这行代码输出一条消息通知用户所有镜像已经被处理并保存到了指定的文件路径。