Argo CD 项目隔离实战指南:5 分钟跑通多团队隔离
Argo CD 项目隔离实战指南5 分钟跑通多团队隔离【免费下载链接】argo-cdDeclarative Continuous Deployment for Kubernetes项目地址: https://gitcode.com/GitHub_Trending/ar/argo-cd上个月一个共享集群出了事故A 团队更新了一个共享网关十分钟后 B 团队的订单服务全线不可用。事后排查才发现A 的应用 destination 早就可以指到 B 的命名空间。如果你们正打算让多团队共用一套 Argo CD项目隔离就是第一道必答题这篇实战指南带你五分钟跑通。四层防线各自管什么Argo CD 的项目隔离不是一个开关而是几层防线叠加各自独立生效。先搞清楚谁管什么后面调配置才不会踩坑防线配置位置管什么AppProject集群内 CRD应用的户口每个应用只属于一个项目sourceReposAppProject.spec清单来源允许从哪些 Git 仓库读取destinationsAppProject.spec部署去向K8s 集群隔离就落在这层精确到集群 命名空间RBAC 策略argocd-rbac-cmConfigMap谁能对谁的应用做什么操作还有一层藏在项目内部的roles属于细粒度子权限比如CI 只能同步某一个应用属于锦上添花实战部分会带到。动手跑通一个项目、两条白名单、一条 RBAC先建项目锁死来源和去向default项目默认放行所有仓库、所有集群只适合刚跑通时的尝鲜。正式多团队协作之前每个团队应该有自己的专属项目。下面这份 YAML 就是团队 A 的户口apiVersion: argoproj.io/v1alpha1 kind: AppProject metadata: name: team-alpha namespace: argocd spec: sourceRepos: - https://git.example.com/team-alpha/* destinations: - namespace: team-alpha-* server: https://kubernetes.default.svc两条经验sourceRepos和destinations都支持!前缀的否定规则显式禁止 通配放行是最稳的写法destinations里的server可填集群 URL 或集群名namespace支持team-alpha-*这类 glob 匹配。最小可用 RBAC 策略怎么写p行格式是主体, 资源, 动作, 对象, 效果即哪个组能对哪些应用做什么。给团队 A 同步加读权限其余所有人兜底为只读data: policy.csv: | p, team-alpha:devs, applications, sync, team-alpha/*, allow p, team-alpha:devs, applications, get, team-alpha/*, allow policy.default: role:readonly这两行就把开头的翻车场景挡掉了团队 A 再怎么同步应用也只能落在自己的命名空间里。策略写法细节可查 docs/operator-manual/rbac.md。把隔离做细ApplicationSet 与标签筛选让 ApplicationSet 批量继承项目如果打算用 ApplicationSet 一次拉起一组应用关键是把project字段写在模板层。这样不管生成多少应用它们全部落在同一个项目里团队成员改应用配置也绕不过白名单spec: template: metadata: name: {{.name}} spec: project: team-alpha source: repoURL: https://git.example.com/team-alpha path: apps/{{.name}} destination: server: https://kubernetes.default.svc namespace: team-alpha-{{.name}}多团队协作的场景里这一招最受益新增一个团队时改参数和项目名即可隔离规则本身一行都不用动。用标签筛选让各团队只看自己的UI 支持按项目和标签过滤应用。给每个团队的应用打统一标签如teamalpha登录之后过滤一下界面立刻清爽。权限隔离管的是能不能操作视图隔离管的是看得到什么两者可以叠加使用。出了事怎么排查 隔离误伤或漏防时按三条线查权限误伤403先看用户的 OIDC 组有没有命中policy.csv里的p/g行再翻argocd-server的访问日志确认请求是被 Argo CD 拒的还是被集群拒的同步误伤应用状态里出现Destination ... is forbidden或Source ... is forbidden时九成是项目的白名单和应用配置对不上先核对sourceRepos和destinations别急着怀疑网络量化判断Prometheus 指标能按项目统计应用数量某个项目下的应用数突然增长就是有人在绕流程的信号。隔离是起点不是终点项目、RBAC、白名单三层落位之后共享集群变成操作有边界、团队各独立、事后能审计——任何一次事故都能追到具体的组和具体的策略行。延伸阅读docs/user-guide/projects.md、docs/operator-manual/argocd-rbac-cm.yaml、docs/operator-manual/project.yaml。【免费下载链接】argo-cdDeclarative Continuous Deployment for Kubernetes项目地址: https://gitcode.com/GitHub_Trending/ar/argo-cd创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考