这个脚本可以列出目前deployments资源使用的镜像
#!/bin/bash
# 获取名称空间
namespace="${1:-default}"
# 判断是否传入了服务名
if [ -z "$2" ]; then
# 查看名称空间中所有服务使用的镜像
#kubectl get pods -n $namespace -o jsonpath="{range .items[*]}{.metadata.name}{'\t'}{range .spec.containers[*]}{.image}{'\n'}{end}"
# 查看名称空间中所有deployments资源使用的镜像
kubectl get deployments -n $namespace -o jsonpath="{range .items[*]}{.metadata.name}{'\t'}{range .spec.template.spec.containers[*]}{.image}{'\n'}{end}"
else
service_name="$2"
# 查看指定deployments资源使用的镜像
#kubectl get pods -n $namespace -l app=$service_name -o jsonpath="{range .items[*]}{.metadata.name}{'\t'}{range .spec.containers[*]}{.image}{'\n'}{end}"
# 查看指定服务使用的镜像
kubectl get deployments -n $namespace -l app=$service_name -o jsonpath="{range .items[*]}{.metadata.name}{'\t'}{range .spec.template.spec.containers[*]}{.image}{'\n'}{end}"
fi
结合这个命令修改deployments资源使用的镜像,可以很方便的修改镜像回滚镜像
kubectl set image deploy 工作负载名称(服务名称) *=镜像名称