团队,
我能够使用其名称空间获取在节点上运行的所有Pod,但是我的名称空间是动态生成的,并且它们的结尾随字符而变化。有没有办法我可以在kubectl命令中使用正则表达式/模式来从所有匹配的命名空间中提取所有pod?
kubectl get pods -n team-1-user1 --field-selector=spec.nodeName=node1,status.phase=Running
实际输出1:有效
NAMESPACE NAME READY STATUS RESTARTS AGE
team-1-user1 calico-node-9j5k2 1/1 Running 2 104d
team-1-user1 kube-proxy-ht7ch 1/1 Running 2 130d
我想在下面为所有以“ team-”开头的名称空间提取pod。
kubectl get pods -n team-* --field-selector=spec.nodeName=node1,status.phase=Running
实际输出2:失败
No resources found in team-workflow-2134-asf-324-d.yaml namespace.
期望的outout:想要这个。
NAMESPACE NAME READY STATUS RESTARTS AGE
team-1-user1 calico-node-9j5k2 1/1 Running 2 104d
team-1-user1 kube-proxy-ht7ch 1/1 Running 2 130d
team-2-user1 calico-node-9j5k2 1/1 Running 2 1d
team-2-user1 kube-proxy-ht7ch 1/1 Running 2 10d
答案 0 :(得分:2)
您可以将kubectl get pods
的输出通过管道传输到awk
中,并为其匹配正则表达式:
kubectl get pods --all-namespaces --no-headers | awk '{if ($1 ~ "team-") print $0}'
以下是相同的示例输出,在kube-
名称空间中搜索pod:
❯❯❯ kubectl get pods --all-namespaces --no-headers | awk '{if ($1 ~ "kube-") print $0}'
kube-system coredns-6955765f44-27wxs 1/1 Running 0 107s
kube-system coredns-6955765f44-ztgq8 1/1 Running 0 106s
kube-system etcd-minikube 1/1 Running 0 109s
kube-system kube-addon-manager-minikube 1/1 Running 0 108s