统计
统计 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 等工作负载归属。
