Ahm*_*mFM 4 regex bash awk sed kubectl
团队,
我能够获取节点上运行的所有 Pod 及其命名空间,但我的命名空间是动态生成的,并且它们最终会随着字符的变化而变化。有没有一种方法可以包含一个正则表达式/模式,我可以在 kubectl 命令中使用它来从所有匹配的命名空间中提取所有 pod?
kubectl get pods -n team-1-user1 --field-selector=spec.nodeName=node1,status.phase=Running
Run Code Online (Sandbox Code Playgroud)
实际输出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
Run Code Online (Sandbox Code Playgroud)
我想要在下面为所有以“team-”开头的命名空间拉取 Pod。
kubectl get pods -n team-* --field-selector=spec.nodeName=node1,status.phase=Running
Run Code Online (Sandbox Code Playgroud)
实际输出2:失败
No resources found in team-workflow-2134-asf-324-d.yaml namespace.
Run Code Online (Sandbox Code Playgroud)
预期结果:想要这个..
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
Run Code Online (Sandbox Code Playgroud)
您可以将 的输出通过管道传输kubectl get pods
到awk
并匹配正则表达式:
kubectl get pods --all-namespaces --no-headers | awk \'{if ($1 ~ "team-") print $0}\'\n
Run Code Online (Sandbox Code Playgroud)\n\n下面是相同的示例输出,在kube-
命名空间中搜索 pod:
\xe2\x9d\xaf\xe2\x9d\xaf\xe2\x9d\xaf kubectl get pods --all-namespaces --no-headers | awk \'{if ($1 ~ "kube-") print $0}\'\nkube-system coredns-6955765f44-27wxs 1/1 Running 0 107s\nkube-system coredns-6955765f44-ztgq8 1/1 Running 0 106s\nkube-system etcd-minikube 1/1 Running 0 109s\nkube-system kube-addon-manager-minikube 1/1 Running 0 108s\n
Run Code Online (Sandbox Code Playgroud)\n