Kubernetes统计特权容器privileged

半兽人 发表于: 2026-10-14   最后更新时间: 2026-10-16 09:20:03  
{{totalSubscript}} 订阅, 17 游览

统计

统计 K8s 所有命名空间中,正在运行的容器是否开启 privileged(特权模式):

kubectl get pods -A --field-selector=status.phase=Running -o json | jq -r '[.items[].spec | (.initContainers[]?, .containers[]?, .ephemeralContainers[]?) | (.securityContext.privileged == true)] | "容器总数: \(length)\n开启 privileged: \(map(select(. == true)) | length)\n未开启 privileged: \(map(select(. == false)) | length)"'

输出示例:

容器总数: 150
开启 privileged: 12
未开启 privileged: 138

统计口径:

  • 统计所有命名空间、处于 Running 状态的 Pod。
  • 包含普通容器、Init 容器和临时容器。
  • privileged: true 算开启;false 或未配置算未开启。
  • 这是 Pod 声明配置的统计,不是容器运行时实际状态;也不代表容器全部处于运行状态。

明细

列出所有开启 privileged: true 的容器,以及对应的命名空间、Pod、容器名称:

kubectl get pods -A --field-selector=status.phase=Running -o json | jq -r '
  ["NAMESPACE","POD","CONTAINER","PRIVILEGED"],
  (.items[] | . as $pod |
    ((.spec.initContainers[]?, .spec.containers[]?, .spec.ephemeralContainers[]?)
    | select(.securityContext.privileged == true)
    | [$pod.metadata.namespace, $pod.metadata.name, .name, "true"]))
  | @tsv' | column -t

输出示例:

NAMESPACE     POD                        CONTAINER       PRIVILEGED
kube-system   csi-node-abc123            csi-driver      true
monitoring    node-exporter-xyz          exporter        true
production    app-backend-789            backend         true

说明: 只显示开启特权模式的容器,不显示未开启的。包含普通容器、Init 容器和临时容器。

如果要定位具体业务应用,可进一步查询对应 Pod 的 Deployment、DaemonSet、StatefulSet 等工作负载归属。

更新于 2026-10-16
在线,1小时前登录

查看kubernetes更多相关的文章或提一个关于kubernetes的问题,也可以与我们一起分享文章。