找出所有使用默认服务帐户的 pods
Find out all the pods that are using default service account
我们有一个有 10 个工人的 k8s 集群。我们 运行 数百人 pods 在集群中。我们想避免 运行ning pods 使用默认服务帐户。
需要找出 pods 是 运行 默认服务帐户。我能够使用带有 grep 命令的默认服务帐户找到 pods 的数量,但还需要 pod 名称和它正在使用的图像。让我们知道您的想法
我使用以下命令从每个使用默认服务帐户
的命名空间中识别 pods
kubectl get pods --all-namespaces -o json | jq '.items[] | select(.spec.serviceAccountName?=="default") | "\(.metadata.namespace) \(.metadata.name)"' | cut -d'"' -f2 | sort
- 万一你想只使用 kubectl 而没有 jq :
需要打印命名空间和 pod 名称
kubectl get pods --all-namespaces -o jsonpath='{range .items[?(@.spec.serviceAccountName == "default")]}{.metadata.namespace} {.metadata.name}{"\n"}{end}' 2>/dev/null
- 我添加了 2>/dev/null 以避免在找不到字段的情况下打印整个 json 模板
如果您正在使用 k9s
,您还可以 :pod
然后 e
pod 以查看它与哪个服务帐户相关联
我们有一个有 10 个工人的 k8s 集群。我们 运行 数百人 pods 在集群中。我们想避免 运行ning pods 使用默认服务帐户。 需要找出 pods 是 运行 默认服务帐户。我能够使用带有 grep 命令的默认服务帐户找到 pods 的数量,但还需要 pod 名称和它正在使用的图像。让我们知道您的想法
我使用以下命令从每个使用默认服务帐户
的命名空间中识别 podskubectl get pods --all-namespaces -o json | jq '.items[] | select(.spec.serviceAccountName?=="default") | "\(.metadata.namespace) \(.metadata.name)"' | cut -d'"' -f2 | sort
- 万一你想只使用 kubectl 而没有 jq :
需要打印命名空间和 pod 名称
kubectl get pods --all-namespaces -o jsonpath='{range .items[?(@.spec.serviceAccountName == "default")]}{.metadata.namespace} {.metadata.name}{"\n"}{end}' 2>/dev/null
- 我添加了 2>/dev/null 以避免在找不到字段的情况下打印整个 json 模板
如果您正在使用 k9s
,您还可以 :pod
然后 e
pod 以查看它与哪个服务帐户相关联