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

AKS集群升级至Kubernetes 1.25.6时已移除API处理方案咨询

解决AKS升级到Kubernetes 1.25时PodSecurityPolicy废弃问题

Kubernetes 1.25正式移除了policy/v1beta1版本的PodSecurityPolicy(PSP)API,你检测到的这些PSP资源必须替换为新的Pod安全管控机制才能顺利完成AKS升级。以下是具体解决方案:

1. 先备份现有PSP资源

避免操作失误导致配置丢失,先导出所有PSP的yaml配置:

kubectl get psp -A -o yaml > psp-backup.yaml

2. 用Pod Security Admission(PSA)替代PSP

PSA是Kubernetes 1.23+内置的Pod安全管控方案,完全替代PSP的功能,AKS集群在1.24及以上版本默认启用该控制器。你需要将原PSP的规则映射到Pod Security Standards(PSS)的三个内置策略级别:

  • Privileged:完全放宽,允许所有权限(适合系统组件命名空间)
  • Baseline:基础安全限制,阻止高危权限(适合大部分应用)
  • Restricted:严格安全限制,符合最佳实践(适合敏感应用)

为相关命名空间配置PSS策略

针对你列出的命名空间,通过添加标签直接启用对应级别策略:

# 为kube-prometheus-stack相关命名空间启用Restricted级别(可根据原PSP规则调整)
kubectl label namespace kube-prometheus-stack-alertmanager \
  pod-security.kubernetes.io/enforce=restricted \
  pod-security.kubernetes.io/warn=restricted \
  pod-security.kubernetes.io/audit=restricted

kubectl label namespace kube-prometheus-stack-kube-state-metrics \
  pod-security.kubernetes.io/enforce=restricted \
  pod-security.kubernetes.io/warn=restricted \
  pod-security.kubernetes.io/audit=restricted

kubectl label namespace monitoring \
  pod-security.kubernetes.io/enforce=restricted \
  pod-security.kubernetes.io/warn=restricted \
  pod-security.kubernetes.io/audit=restricted
  • enforce:强制拒绝不符合策略的Pod创建
  • warn:对不符合策略的操作发出警告
  • audit:记录不符合策略的操作日志

如果原PSP规则和内置级别不匹配,可以通过ValidatingAdmissionPolicy自定义安全约束,但推荐优先使用内置PSS以降低复杂度。

3. 升级kube-prometheus-stack Helm Chart

你检测到的PSP资源大概率是由kube-prometheus-stack的旧版本Chart创建的,需要升级Chart到兼容Kubernetes 1.25的版本:

  1. 更新Helm仓库:
helm repo update prometheus-community
  1. 备份现有Chart配置:
helm get values kube-prometheus-stack -n monitoring > prom-values-backup.yaml
  1. 升级Chart(选择兼容1.25的稳定版本):
helm upgrade kube-prometheus-stack prometheus-community/kube-prometheus-stack \
  -n monitoring \
  --version <兼容K8s 1.25的版本号> \
  -f prom-values-backup.yaml

新版本Chart会自动移除PSP相关配置,改用符合1.25要求的安全机制。

4. 移除废弃的PSP资源

确认PSA策略生效且所有Pod运行正常后,删除旧版本PSP:

# 删除所有policy/v1beta1版本的PSP
kubectl delete psp $(kubectl get psp -o jsonpath='{.items[?(@.apiVersion=="policy/v1beta1")].metadata.name}')

5. 验证兼容性

再次运行kubent检测,确认无废弃API提示:

kubent

同时测试在相关命名空间创建Pod,验证PSA策略正常工作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 10:12:43