需求
查询 Kubernetes 集群上所有以 docker.foobar.com 开头的 Pod 镜像,并去重排序。
一行命令实现
| 1
 | kubectl get pods --all-namespaces -o jsonpath="{..image}" | tr -s '[[:space:]]' '\n' | grep '^docker\.foobar\.com' | sort -u
 | 
命令说明
| 命令部分 | 作用 | 
| kubectl get pods --all-namespaces -o jsonpath="{..image}" | 获取所有命名空间中 Pod 的镜像信息 | 
| tr -s '[[:space:]]' '\n' | 将空格转换为换行符,每个镜像占一行 | 
| grep '^docker\.foobar\.com' | 过滤以 docker.foobar.com开头的镜像 | 
| sort -u | 排序并去重( -u参数表示唯一) | 
脚本方式
如果需要保存为脚本:
| 12
 3
 4
 5
 6
 7
 
 | #!/bin/bash
 
 kubectl get pods --all-namespaces -o jsonpath="{..image}" | \
 tr -s '[[:space:]]' '\n' | \
 grep '^docker\.foobar\.com' | \
 sort -u
 
 | 
保存为 get-images.sh 后执行:
| 12
 
 | chmod +x get-images.sh./get-images.sh
 
 | 
注意
- 需要有查询所有命名空间 Pod 的权限
- 确保 kubectl 配置正确并能访问集群