列出所有 pod 端口

问题描述 投票:0回答:2

所以,我试图从所有命名空间中提取所有内部 Pod 端口的列表,并且我有以下命令,该命令有效,但仅适用于特定的 Pod/命名空间/rc。

PS C:\Users\> kubectl get -o jsonpath="{.spec.template.spec.containers[*]['ports','name']}" deployments rke2-coredns-rke2-coredns -n kube-system
[{"containerPort":53,"name":"udp-53","protocol":"UDP"},{"containerPort":53,"name":"tcp-53","protocol":"TCP"}] coredns

如何使该命令适用于部署中的所有 pod?

谢谢, EM

kubernetes jsonpath
2个回答
1
投票

使用可以使用

--all-namespaces
参数(或
-A
):

kubectl get -o jsonpath="{.spec.template.spec.containers[*]['ports','name']}" deployments --all-namespaces

如果您想检索特定的

deployment
,这将不起作用,因为无法在所有命名空间中按名称检索资源。


0
投票

要从每个

ports
中的所有 pod 中获取
name
deployments
,您可以运行以下
kubectl
命令:

kubectl get deployments --all-namespaces -o jsonpath="{.items[*].spec.template.spec.containers[*]['ports','name']}"

测试于:

Client Version: version.Info{Major:"1", Minor:"26", GitVersion:"v1.26.1", GitCommit:"8f94681cd294aa8cfd3407b8191f6c70214973a4", GitTreeState:"clean", BuildDate:"2023-01-18T15:58:16Z", GoVersion:"go1.19.5", Compiler:"gc", Platform:"darwin/arm64"}

Server Version: version.Info{Major:"1", Minor:"24+", GitVersion:"v1.24.17-eks-8cb36c9", GitCommit:"b114b128d961e18fed9242aed57f37f289bc740f", GitTreeState:"clean", BuildDate:"2023-11-22T21:53:08Z", GoVersion:"go1.20.10", Compiler:"gc", Platform:"linux/amd64"}
© www.soinside.com 2019 - 2024. All rights reserved.