Kubernetes kubectl通过容器环境变量获取POD

Kubernetes kubectl通过容器环境变量获取POD,kubernetes,kubectl,Kubernetes,Kubectl,我可以将kubectl get pods与某种字段选择器或支持基于容器环境变量获取单个pod的选择器一起使用吗 我想得到这个pod,并且根据kubectl的ENVIRONMENT\u变量的值,从成千上万个pod中只得到这个pod apiVersion: v1 kind: Pod metadata: name: my-pod namespace: default spec: containers: - env: - name: ENVIRONMENT_VARIABLE

我可以将
kubectl get pods
与某种字段选择器或支持基于容器环境变量获取单个pod的选择器一起使用吗

我想得到这个pod,并且根据
kubectl
ENVIRONMENT\u变量的值,从成千上万个pod中只得到这个pod

apiVersion: v1
kind: Pod
metadata:
  name: my-pod
  namespace: default
spec:
  containers:
  - env:
    - name: ENVIRONMENT_VARIABLE
      value: abc123
    image: my-images
    imagePullPolicy: IfNotPresent
    name: my-pod
kubectl get pods--字段选择器
no,不支持字段

kubectl获取吊舱-l
这不是标签


如果有的话,我还可以尝试什么呢?

我有一个pod
我的pod
,带有一个环境变量
PORT
,值
8080
,比如:

  metadata:
  ...
    name: my-pod
  ...
  spec:
    containers:
    - env:
      - name: PORT
        value: "8080"
  ...
我可以使用
kubectl
来过滤这个pod,比如:

$ kubectl get pods --all-namespaces \
-o=jsonpath=\
'{range .items[*]}{.metadata.name}{"\t"}{.spec.containers[*].env[?(@.name=="PORT")]}{"\n"}{end}' | \
grep 8080

output is:

my-pod  map[name:PORT value:8080]
因此,您可以尝试:

kubectl get pods --all-namespaces \
-o=jsonpath=\
'{range .items[*]}{.metadata.name}{"\t"}{.spec.containers[*].env[?(@.name=="ENVIRONMENT_VARIABLE")]}{"\n"}{end}' | \
grep abc123
经由

名字

kubectl get pods --all-namespaces --chunk-size=0 -o json | \
  jq '.items[] | select(.spec.containers[].env[]?.name == "ENVNAME")
               | .metadata.name'
按价值

kubectl get pods --all-namespaces --chunk-size=0 -o json | \
  jq '.items[] | select(.spec.containers[].env[]?.value == "AVALUE")
               | .metadata.name'
按名称和价值

kubectl get pods --all-namespaces --chunk-size=0 -o json | \
  jq '.items[] | select(.spec.containers[].env[]? | .name == "ENVNAME" and .value == "AVALUE")
               | .metadata.name'

或者大多数语言都有相同的语言。如果将
--v=9
添加到
kubectl
命令中,它将输出所点击的端点以收集数据。在这种情况下:

您可以尝试使用jsonpath选择器获取pods的环境变量值和pods的名称,例如
kubectl get pods-o jsonpath=“{…}”
然后管道输出和环境变量值的grep:
|grep
-使用jsonpath进行过滤似乎也是可能的。。。。