ArgoCD Architecture and Components
When I Needed to Understand ArgoCD Internals
# Check ArgoCD status
kubectl get pods -n argocd
# argocd-server: CrashLoopBackOff
# argocd-repo-server: Running
# argocd-application-controller: Running but CPU 400%
# Check logs
kubectl logs -n argocd argocd-application-controller
# [ERROR] Failed to sync application: timeout
# [ERROR] Failed to sync application: timeout
# [ERROR] Failed to sync application: timeout
# ... 127 timeoutsArgoCD High-Level Architecture
API Server (argocd-server)
What It Does
API Server Pod
What I Learned: API Server Scaling
Repository Server (argocd-repo-server)
What It Does
Repo Server Pod
What I Learned: Repo Server is CPU-Intensive
Application Controller (argocd-application-controller)
What It Does
Application Controller Pod
What I Learned: Application Controller is the Bottleneck
Redis
What It Stores
Redis Pod
What I Learned: Redis Can Be a Bottleneck
Dex (Optional SSO Server)
What It Does
Dex Configuration Example
How Components Work Together
Scenario: Developer Pushes to Git
Step-by-Step Flow
Mermaid Sequence Diagram
Component Communication
Performance Tuning Based on Architecture
For 1-50 Applications
For 50-200 Applications
For 200+ Applications
Troubleshooting Based on Architecture
Slow UI/CLI
Sync Timeouts
High Memory Usage
Key Takeaways
Last updated