Series ngắn về cách sử dụng ArgoCD:
- Getting Started
- Core concepts
- Private Repo
- ArgoCD Architecture
- Work with Helm
- Work with Kustomize
- Resource hooks
- Secret Management with GitOps
- Application Set
- Multi Cluster
- Enterprise features (SSO)
Bài viết này sẽ giúp bạn hiểu rõ hơn về kiến trúc của ArgoCD. ArgoCD bao gồm ba tác vụ chính:
- Lấy mã nguồn từ Git: ArgoCD sẽ truy xuất mã nguồn và cấu hình ứng dụng từ Git
- Đồng bộ trạng thái khi phát hiện sự khác biệt: Nếu có sự khác biệt giữa trạng thái thực tế và trạng thái mong muốn, ArgoCD sẽ tự động điều chỉnh để đảm bảo tính đồng bộ
- Hiển thị kết quả cho người dùng: Kết quả của quá trình đồng bộ sẽ được hiển thị qua giao diện
Mỗi giai đoạn trong quy trình này thực hiện những công việc khác nhau, và ArgoCD được thiết kế với mỗi thành phần riêng biệt sẽ sử lý tác vụ tương ứng, bao gồm:
- argocd-repo-server
- argocd-application-controller
- argocd-api-server
ArgoCD Repo Server
Nhiệm vụ của argocd-repo-server là tải mã nguồn từ Git và tạo manifest, bao gồm các bước:
- Tải mã nguồn từ Git và lưu vào bộ nhớ cục bộ, sử dụng lệnh
git fetch
để chỉ tải về những thay đổi gần đây từ Git - Tạo manifest
Quá trình tạo manifest thường chiếm nhiều tài nguyên bộ nhớ. Vì trong thực tế, các tệp tin cấu hình hiếm khi được lưu trữ dưới dạng tệp YAML thuần túy, mà các nhà phát triển thích sử dụng công cụ quản lý cấu hình như Helm hoặc Kustomize. Mỗi lần gọi công cụ sẽ gây ra sự gia tăng đột biến trong việc sử dụng bộ nhớ.
Khi làm việc với nhiều kho (repo) khác nhau, chúng ta có thể nâng cao cấu hình của argocd-repo-server và mở rộng số lượng phiên bản của nó để đảm bảo hiệu suất tối ưu.
Argocd Application Controller
Quá trình so sánh nhằm đồng bộ sự khác biệt giữa hạ tầng thực tế và các tệp cấu hình lưu trữ trên Git được gọi là giai đoạn Reconciliation. Quá trình này được thực hiện bởi argocd-application-controller.
Kết quả của quá trình sẽ được lưu vào Redis.
Argocd API Server
Kết quả của quá trình Reconciliation được hiển thị tới người dùng thông qua argocd-api-server.
Chúng ta có thể mở rộng từng thành phần riêng biệt để phục vụ cho các tác vụ tương ứng. Ví dụ, khi có nhiều người dùng truy cập vào giao diện Web UI của ArgoCD, thành phần cần được mở rộng là API Server. Khi có nhiều tiến trình cần thực hiện Reconciliation, chúng ta sẽ mở rộng Application Controller.
Bài tiếp theo ta sẽ tìm hiểu về cách ArgoCD làm việc với Kustomize và Helm.
Điểm hẹn ngân hàng số Vikki by HDBank
Loạt bài viết ngắn chia sẻ về kiến trúc hạ tầng của hệ thống ngân hàng trên Cloud (AWS). Đây chỉ là những kiến thức mình học được thông qua sản phẩm NGÂN HÀNG SỐ VIKKI của bên mình, nên kiến trúc có thể phù hợp và không phù hợp với doanh nghiệp của các bạn.
- AWS Account Management
- Provisioning Infrastructure for Multi AWS Accounts
- Networking for Multi AWS Accounts
- Kubernetes for Multi AWS Accounts: Kubernetes Infrastructure for Scale
- Kubernetes for Multi AWS Accounts: Kubernetes Cross Cluster Communication
- Chaos Engineering
- On-call
- Core Banking on Cloud
- Security Consider