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

ArgoCD同步报错:PriorityClass、StorageClass不被项目允许求解决

问题解决:ArgoCD同步时PriorityClass/StorageClass不被项目允许

问题描述

同步ArgoCD应用时出现两个报错:

  • scheduling.k8s.io:PriorityClass 不被项目允许
  • storage.k8s.io:StorageClass 不被项目 ns1-project-test 允许

已尝试重启、删除并重新创建部署,问题仍存在。应用清单如下:

project: ns1-project-test
source:
  repoURL: 'git@ghe.exm-platform.com:<giturl....>'
  path: deploy-charts/
  targetRevision: 11.15.18
  helm:
    valueFiles:
      - values.yaml
    parameters:
      - name: services.tl_web_apps.nodeSelector
        value: aks
destination:
  server: 'https://66F5D9zzzzzzzF2D8B3-clusterURL.gr7.us-east-1.eks.amazonaws.com'
  namespace: ns1-namespace
syncPolicy: {}

解决方案

这个问题是因为ArgoCD项目默认限制了可部署的资源类型,需要修改项目配置,将PriorityClass和StorageClass加入允许的资源列表:

  1. 查看当前项目配置
    执行命令获取项目的完整配置:
kubectl get appprojects ns1-project-test -n argocd -o yaml
  1. 修改项目的资源允许规则
    在项目的spec.allowedResources字段中,添加对应的资源组和资源名称。如果该字段不存在,直接新增:
spec:
  allowedResources:
    - group: "scheduling.k8s.io"
      kind: "PriorityClass"
    - group: "storage.k8s.io"
      kind: "StorageClass"
    # 保留原有其他允许的资源,比如默认的pod、deployment等
    - group: ""
      kind: "Pod"
    - group: "apps"
      kind: "Deployment"
    # ... 其他原有资源

如果项目配置中使用了deniedResources,确保这两个资源不在拒绝列表里。

  1. 应用修改后的配置
    执行命令更新项目:
kubectl apply -f <修改后的项目yaml文件>
  1. 重新同步ArgoCD应用
    在ArgoCD UI中手动触发同步,或者用命令行:
argocd app sync <你的应用名称>

原理说明

ArgoCD的Project作为资源隔离的核心组件,通过allowedResources定义该项目下的应用可以部署的Kubernetes资源类型。默认配置通常只包含常见的工作负载资源(如Deployment、Pod),而PriorityClass、StorageClass这类集群级资源不在默认允许列表中,因此需要手动添加。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 09:22:11