Hướng dẫn backup và restore cho ArgoCD.
Vấn đề
Câu hỏi được đặt ra là tại sao ta cần backup và restore cho ArgoCD? ArgoCD không tương tác trực tiếp gì với Database để lưu giữ liệu, nó chỉ dùng Redis để làm cache. Và tất cả cấu hình của ứng dụng đều được lưu trên Git và ứng dụng được chạy trên Kubernetes Cluster. ArgoCD chỉ chịu trách nhiệm đồng bộ cấu hình của các ứng dụng chạy trên Kubernetes Cluster giống với cấu hình được lưu trữ trên Git. Cho dù có xóa ArgoCD thì ứng dụng của ta vẫn hoạt động được. Vậy tại sao ta lại cần backup và restore?
Câu trả lời là tuy ArgoCD không lưu gì liên quan tới cấu hình ứng dụng và ứng dụng chạy trên Kubernetes. Nhưng ArgoCD có lưu thông tin để kết nối tới Private Git hoặc Helm và thông tin để kết nối tới Kubernetes Cluster. Ngoài ra nó còn lưu trạng thái đồng bộ ứng dụng. Nếu ArgoCD của ta bị chết và không thể hồi phục thì việc tạo lại từ đầu tới cuối các kết nối cực kì mất thời gian.
Giải pháp
Ta có thể thực hiện backup và restore để tránh rủi ro trên xảy ra này. Để thực hiện ta chỉ cần sử dụng câu lệnh argocd admin:
Thực hiện backup:
argocd admin export -n argocd > argocd-backup-$(date +"%Y-%m-%d-%H:%M").ymlSau khi tạo ra tệp tin backup thì ta nên tải nó lên AWS S3 hoặc GCP Cloud Storage để lưu trữ, lúc cần thì ta sẽ tải xuống để xài. Thực hiện restore:
argocd admin import - < argocd-backup-2023-07-07-14:00.ymlKết luận
Sử dụng câu lệnh argocd admin giúp ta dễ dàng trong việc thực hiện backup và restore. Trong các dự án thực tế thì ta nên thực hiện công việc này một cách tự động bằng Cron Job hay gì đó.
First AI Journey for DevOps:
- PromptOps: From YAML to AI
- The DevOps AI Advantage
- The AIOps Book