1 kubernetes google-kubernetes-engine kubectl
我正在使用命令获取分配给 pod 的 IP 地址kubectl get pods -o custom-columns="POD_IP":.status.podIPs。
基于相同的方法,我使用kubectl get pods -o custom-columns="POD_PORT":.spec.containers.ports.containerPort命令来获取端口号,但它是空白的。
cloudshell:~$ kubectl get pods -o custom-columns="POD_IP":.status.podIPs
POD_IP
[map[ip:10.32.0.194]]
cloudshell:~$ kubectl get pods -o custom-columns="POD_PORT":.spec.containers.ports.containerPort
POD_PORT
<none>
cloudshell:~$ kubectl get pods -o custom-columns="POD_PORT":.spec.containers
POD_PORT
[map[image:nginx:1.10.1 imagePullPolicy:IfNotPresent name:servic1 ports:[map[containerPort:8080 protocol:TCP]] resources:map[limits:map[cpu:500m ephemeral-storage:1Gi memory:2Gi] requests:map[cpu:500m ephemeral-storage:1Gi memory:2Gi]] securityContext:map[capabilities:map[drop:[NET_RAW]]] terminationMessagePath:/dev/termination-log terminationMessagePolicy:File volumeMounts:[map[mountPath:/var/run/secrets/kubernetes.io/serviceaccount name:kube-api-access-mgk8k readOnly:true]]]]
cloudshell:~$
Run Code Online (Sandbox Code Playgroud)
我尝试使用kubectl get pods -o custom-columns="Port Number of Pod":.spec.containers命令,我可以看到我的映射 ( .spec.containers.ports.containerPort) 是正确的,但不知何故它仍然无法正常工作。
我完全确定.spec.containers.ports.containerPort映射正确,并且相同的命令格式给出了 IP 地址,因此无法发现错误。
有人能发现这里出了什么问题吗?
尝试:
kubectl get pods \
--output=custom-columns=\
"POD_PORT":.spec.containers[*].ports[*].containerPort
Run Code Online (Sandbox Code Playgroud)
您也可以添加.metadata.name以帮助清晰:
kubectl get pods \
--output=custom-columns=\
"NAME":.metadata.name,\
"POD_PORT":.spec.containers[*].ports[*].containerPort
Run Code Online (Sandbox Code Playgroud)
它没有明确(!?)记录,但我怀疑格式是 kubectl 的JSONPath并且(似乎)之间存在微妙的区别,例如,.spec.containers[]前者.spec.containers[*]在找不到属性时停止,而后者包括所有内容。
因为.spec总会包含一个或多个.containers,但每个container可能都没有.ports,你还可以:
kubectl get pods \
--output=custom-columns=\
"POD_PORT":.spec.containers[].ports[*].containerPort
Run Code Online (Sandbox Code Playgroud)
但效果相同containers[]。ports[*]
注意,如容器 v1 核心中所述,请参阅“端口”,容器公开的端口不需要通过ports即此命令将返回记录的端口来指定,但此列表可能排除容器公开的端口(且未记录)。
| 归档时间: |
|
| 查看次数: |
92 次 |
| 最近记录: |