You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何列出Kubernetes Pod及其容器包含默认值的所有securityContext配置

获取Pod/容器级别完整securityContext(含默认值)的方法

kubectl get pod -o yaml 仅能展示etcd中存储的用户显式声明的spec字段,securityContext的默认值由集群准入组件、Pod安全准入(PSA)、容器运行时等动态注入,不会持久化到Pod资源清单,可通过以下两种方式获取完整生效配置:

方式1:读取运行中Pod的实际生效配置

Pod级别配置

  • 查看Pod级别实际生效的安全上下文关联状态:
    kubectl get pod <替换为实际Pod名称> -o jsonpath='{.status.qosClass}{.spec.securityContext}'
    
    其中QoS等级会直接影响默认的allowPrivilegeEscalation、capabilities等配置规则。

容器级别配置

如果需要获取容器层面所有生效的安全参数(包含默认注入值),可通过容器运行时接口直接查询:

  1. 先获取Pod所在节点和对应容器ID:
    kubectl get pod <替换为实际Pod名称> -o wide
    kubectl get pod <替换为实际Pod名称> -o jsonpath='{.status.containerStatuses[*].containerID}'
    
  2. 登录Pod所在节点,执行以下命令输出容器完整安全配置:
    # 替换为上一步拿到的containerID,注意去掉前缀的containerd:///docker://
    crictl inspect <容器ID> | jq '.runtimeSpec.process.capabilities, .runtimeSpec.process.user, .linux'
    
    输出内容包含实际生效的uid/gid、能力集、seccomp配置、AppArmor配置、特权模式等所有参数,不管是显式声明还是默认注入。

方式2:提前推导集群默认securityContext规则

如果需要在Pod创建前确认默认安全配置,可查询以下集群规则:

  • 查命名空间绑定的Pod安全准入(PSA)规则:
    kubectl describe ns <替换为目标命名空间>
    
    查看pod-security.kubernetes.io/enforce标签对应的安全等级(Restricted/ Baseline/Privileged),对应等级定义了所有未显式声明的securityContext默认值。
  • 查节点级kubelet默认安全配置:
    kubectl get cm kubelet-config -n kube-system -o yaml | grep seccompDefault
    
    该参数定义了集群是否默认启用Seccomp安全策略。
  • 查容器运行时默认配置:登录节点查看/etc/containerd/config.toml或/etc/docker/daemon.json中定义的运行时默认安全参数。

注意:容器级securityContext配置优先级高于Pod级,两者都未声明的配置才会使用集群全局默认值


内容的提问来源于stack exchange,提问作者skystone

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 05:21:00