你可以使用kubectl
命令的-o
选项和jsonpath
表达式来过滤出满足Ready
和Available
匹配的结果。下面是一个示例代码:
kubectl get service --all-namespaces -o=jsonpath='{range .items[?(@.status.conditions[?(@.type=="Ready")].status=="True" && @.status.conditions[?(@.type=="Available")].status=="True")]}{.metadata.name}{"\n"}{end}'
这个命令会列出所有命名空间中满足Ready
和Available
匹配的服务的名称。
你也可以将上述命令放入一个脚本中,例如filter_services.sh
:
#!/bin/bash
kubectl get service --all-namespaces -o=jsonpath='{range .items[?(@.status.conditions[?(@.type=="Ready")].status=="True" && @.status.conditions[?(@.type=="Available")].status=="True")]}{.metadata.name}{"\n"}{end}'
然后给脚本添加执行权限,并运行它:
chmod +x filter_services.sh
./filter_services.sh
这将输出满足条件的服务的名称。