其他
需要 ArgoCD GitOps 时:解决…
当需要对 Kubernetes 应用进行 GitOps 声明式持续部署、自动同步、回滚、多集群/多环境管理和生产运维时使用。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 35/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 39/100 ×0.15
适用场景
需要 ArgoCD GitOps 时:解特定
解决思路
- 创建应用:运行 `argocd app create myapp --repo https://github.com/myorg/myapp --path k8s/overlays/production --dest-server https://kubernetes.default.svc --dest-namespace production`。
- 列出应用:运行 `argocd app list`;需要更多字段时运行 `argocd app list -o wide`。
- 查看应用详情:运行 `argocd app get myapp`;强制刷新状态时运行 `argocd app get myapp --refresh`。
- 同步应用:运行 `argocd app sync myapp`。
- 同步并裁剪 Git 中已移除资源:运行 `argocd app sync myapp --prune`。
- 同步预演:运行 `argocd app sync myapp --dry-run`。
- 强制同步:运行 `argocd app sync myapp --force`。
- 回滚应用:运行 `argocd app rollback myapp`。
- 删除应用:运行 `argocd app delete myapp`。
- 删除应用但保留资源:运行 `argocd app delete myapp --cascade=false`。
- 添加仓库:运行 `argocd repo add https://github.com/myorg/myapp --username myuser --password mytoken`。
- 列出仓库:运行 `argocd repo list`。
- 移除仓库:运行 `argocd repo rm https://github.com/myorg/myapp`。
- 添加集群:运行 `argocd cluster add my-cluster-context`。
- 列出集群:运行 `argocd cluster list`。
- 移除集群:运行 `argocd cluster rm https://cluster.example.com`。
- 创建项目:运行 `argocd proj create production`。
- 给项目添加源仓库:运行 `argocd proj add-source production https://github.com/myorg/*`。
- 给项目添加目标:运行 `argocd proj add-destination production https://kubernetes.default.svc production`。
- 列出项目:运行 `argocd proj list`。
- 查看项目详情:运行 `argocd proj get production`。
- 使用 AppProjects 按团队/环境隔离:创建 `production`、`staging`、`development` 等项目。
- 启用自动同步与资源裁剪:在 `syncPolicy` 中设置 `automated.prune: true` 和 `automated.selfHeal: true`。
- 使用同步波次控制部署顺序:在资源 `annotations` 中设置 `argocd.argoproj.io/sync-wave: '1'`。
- 实现健康检查:为 CRD 配置 `resource.customizations.health.<group>_<kind>`。
- 使用同步窗口控制部署时间:配置 `syncWindows`,例如 `kind: allow`、`schedule: '0 9 * * 1-5'`、`duration: 8h`。
- 启用通知:运行 `argocd admin notifications controller`,并配置 Slack、Teams、email 通知。
- 使用 ApplicationSet 声明式管理多个应用:定义 `kind: ApplicationSet`。
- 避免不启用资源裁剪:不要使用 `automated: {}`;应设置 `automated: { prune: true }`。
- 避免仅手动同步:不要使用空的 `syncPolicy: {}`;应设置 `syncPolicy.automated.prune: true` 和 `syncPolicy.automated.selfHeal: true`。
- 避免单个巨型应用:不要用一个应用管理所有内容;应按组件/服务拆分为多个应用。
- 不要缺少 RBAC:实现项目级 RBAC,例如 `roles: - name: developer`,策略为 `p, proj:prod:dev, applications, sync, prod/*, allow`。
- 从简单开始:先部署一个应用。
- GitOps 一切:所有配置都放入 Git。
- 自动化:启用 auto-sync 和 self-heal。
- 组织:使用 AppProjects 做隔离。
- RBAC:实施最小权限访问。
- 监控:设置通知和告警。
- 扩展:使用 ApplicationSets 支持多集群/多环境。
- 安全:启用 SSO 和审计日志。
- 需要实现细节时阅读同目录参考文档 `references/CORE_CONCEPTS.md`,覆盖 ArgoCD Architecture、Installation、Application CRD、AppProject、ApplicationSet、Sync Strategies、SSO Configuration、Health Checks。
- 需要进一步资料时查阅:ArgoCD Documentation `https://argo-cd.readthedocs.io/`、GitOps Principles `https://opengitops.dev/`、ApplicationSet `https://argocd-applicationset.readthedocs.io/`、ArgoCD Notifications `https://argocd-notifications.readthedocs.io/`。
适用边界 · 注意事项
- 不适用于非 Kubernetes 环境,或不需要 GitOps/声明式持续部署的场景。
- 没有 ArgoCD 控制面/CLI(要求 argocd >=2.9)或 Kubernetes 集群(要求 kubernetes >=1.28)时不要使用。
- 不要把 Git 仅当附件或无法以 Git 作为单一事实源、无法审计变更的流程套用此技能。