如何获取K8s中不含自动生成后缀的Pod名称?
获取K8s Pod纯净名称并生成去重列表
推荐优先使用标签提取法,因为app.kubernetes.io/name是K8s官方推荐的应用标识标签,比直接截取Pod名称更可靠,不受Pod命名格式变化影响:
kubectl get pods --all-namespaces -o jsonpath='{range .items[*]}{.metadata.labels.app\.kubernetes\.io/name}{"\n"}{end}' | sort | uniq
命令说明:
-o jsonpath='{range .items[*]}{.metadata.labels.app\.kubernetes\.io/name}{"\n"}{end}':遍历所有命名空间的Pod,提取app.kubernetes.io/name标签值并逐行输出sort | uniq:对结果排序并去重,得到唯一的纯净应用名称列表
如果部分Pod没有设置app.kubernetes.io/name标签,可尝试名称截取法(仅适用于后缀为-随机字符串-随机字符串的标准Deployment生成的Pod):
kubectl get pods --all-namespaces | awk '{print $2}' | sed -E 's/-[a-z0-9]+-[a-z0-9]+$//' | sort | uniq
命令说明:
awk '{print $2}':提取kubectl输出中的Pod名称列sed -E 's/-[a-z0-9]+-[a-z0-9]+$//':移除名称末尾的两段随机字母数字后缀sort | uniq:排序并去重
内容的提问来源于stack exchange,提问作者jssteele89
相关产品推荐
相关产品推荐

