当前位置: 首页 > news >正文

命名空间级别应用 Pod 安全标准

🎯 命名空间级别应用 Pod 安全标准

一、创建 Kubernetes 集群(使用 kind)

使用 kind (Kubernetes IN Docker)快速创建一个本地集群:

kind create cluster --name my-cluster

验证集群是否运行正常:

kubectl cluster-info --context kind-my-cluster

二、创建命名空间

我们将在一个自定义的命名空间(如 yumeko)中应用 Pod 安全标准,而不是默认的 default 命名空间。

kubectl create namespace yumeko
kubectl get ns yumeko

✅ 命名空间创建成功后,我们将在这个命名空间上启用 Pod 安全标准。


三、为命名空间启用 Pod 安全标准

Kubernetes 从 1.25 起逐步废弃 PodSecurityPolicy (PSP),并引入了 Pod Security Admission(内置准入控制器),支持通过命名空间上的标签来定义 Pod 安全级别。

yumeko 命名空间设置 Pod 安全标准标签

执行以下命令为命名空间打标签:

kubectl label namespace yumeko \pod-security.kubernetes.io/enforce=baseline \pod-security.kubernetes.io/enforce-version=latest \pod-security.kubernetes.io/warn=restricted \pod-security.kubernetes.io/warn-version=latest \pod-security.kubernetes.io/audit=restricted \pod-security.kubernetes.io/audit-version=latest

✅ 这表示:

  • Enforce=baseline: 不符合 Baseline 的 Pod 将 被拒绝创建
  • Warn=restricted: 如果 Pod 不符合 Restricted,会显示 警告(但允许创建);
  • Audit=restricted: 用于审计目的,记录不符合 restricted 的 Pod(不阻止)。

🔒 你可以根据需求调整 enforce 的值为 restricted 来启用最高级别安全策略。


四、验证 Pod 安全标准是否生效

1. 准备一个简单的 Pod 配置文件(nginx-pod.yml)

在与终端相同目录下创建一个名为 nginx-pod.yml 的文件,内容如下:

# nginx-pod.yaml
cat <<EOF> /tmp/nginx-pod.yaml
apiVersion: v1
kind: Pod
metadata:name: nginx-pod
spec:containers:- name: nginximage: nginx:latestimagePullPolicy: Nevervolumes:- name: hostvolhostPath:path: /tmp
EOF

✅ 这证明我们在 yumeko 命名空间上设置的 enforce=baseline 已生效,能够阻止不安全的 Pod。


2. 在启用了安全策略的命名空间(yumeko)中创建 Pod

kubectl apply -n yumeko -f  /tmp/nginx-pod.yaml

预期结果:Pod 创建被拒绝,并出现类似以下错误:

Error from server (Forbidden): error when creating "nginx-pod.yaml": pods "nginx-pod" is forbidden: violates PodSecurity "baseline:latest": hostPath volumes (volume "hostvol")

✅ 这证明我们在 yumeko 命名空间上设置的 enforce=baseline 已生效,能够阻止不安全的 Pod。


3. 在默认命名空间(default)中创建同样的 Pod

执行以下命令:

kubectl apply -n default -f /tmp/nginx-pod.yaml

预期结果:Pod 成功创建,因为 default 命名空间没有启用任何 Pod 安全准入标签,因此不受 Baseline/Restricted 限制。


五、清理资源

当你完成测试后,可以删除该集群:

kind delete cluster --name my-cluster
http://www.dtcms.com/a/361610.html

相关文章:

  • 在 Ubuntu 24.04 LTS 上安装 SSH 并启用服务端实现远程连接
  • 别再刷屏console.log!JavaScript高级调试方法全攻略
  • Product Hunt 每日热榜 | 2025-08-30
  • C++“类吸血鬼幸存者”游戏制作的要点学习
  • IO_HW_9_1
  • 【零碎小知识点 】(二)Java基础与常用API编码实践
  • day2
  • 【STM32】中断软件分支处理( NVIC 和 GIC)
  • curl 介绍及使用教程
  • Kotlin 协程异步任务工具类:高效处理异步操作与超时控制
  • 构建共享新生态的智慧物流开源了
  • ClickHouse常见问题——ClickHouseKeeper配置listen_host后不生效
  • java设计模式一、单例模式
  • 查看LoRA 哪个适配器处于激活状态(67)
  • 【秋招笔试】2025.08.31小红书秋招笔试真题
  • 鸿蒙NEXT开发指南:Image、Video与Swiper组件全面解析
  • Mac idea 格式化代码快捷键
  • 用滑动窗口与线性回归将音频信号转换为“Token”序列:一种简单的音频特征编码方法
  • 若依vue自定义发布环境部署后所有菜单无法点击
  • Kubernetes一网络组件概述
  • 如何正确使用ChatGPT做数学建模比赛——数学建模AI使用技巧
  • Sqlsugar补充自定义模板
  • 环境搭建汇总
  • 在.NET标准库中进行数据验证的方法
  • 【qwen3vsglm4.5】JavaScript 与浏览器事件分类
  • 垃圾渗滤液中镍超标怎么处理
  • 亮数据MCP——专为信息爆炸时代打造的AI新闻利器。
  • 如何选择最佳车载交换机?车载交换机功能讲解
  • UCIE Specification详解(十二)
  • 【小白入】显示器核心参数对比度简介