Argo CD GitOps và RBAC
Git là desired state; cluster là observed state.
Nắm bản chất
Argo CD theo dõi một Git revision/path và so sánh Kubernetes live state với desired state. Application có thể Manual Sync hoặc Auto Sync với selfHeal/prune phù hợp. AppProject giới hạn source repositories, destinations và resource kinds.
GitOps không thay thế RBAC: quyền tạo Application hoặc chỉnh ApplicationSet có thể gián tiếp tạo quyền triển khai rộng. Áp dụng branch protections, code review và giới hạn quyền Argo CD service accounts.
Luồng hoạt động
Hãy tự giải thích mỗi mũi tên: dữ liệu, quyền hoặc tín hiệu nào được truyền qua bước này?
Lệnh & cấu hình mẫu
kubectl -n argocd get applications
kubectl -n argocd describe application app-dev
argocd app diff app-dev
argocd app sync app-dev # nếu policy cho phép
Lệnh có placeholder hoặc phụ thuộc môi trường thì cần thay thông tin thực tế, kiểm tra quyền và chỉ thực hiện trên tài nguyên được phép.
Bài tập 10–20 phút
Dùng lab Buổi 10, sửa một ConfigMap trong Git và kiểm tra Argo báo OutOfSync trước khi sync. Sau đó thử thay trực tiếp resource và quan sát selfHeal nếu đã bật.
Lỗi dễ mắc
Đừng để Helm CLI và Argo CD cùng liên tục quản lý một Deployment. Nếu muốn emergency patch, phải có cơ chế reconcile desired state sau đó.
Tự kiểm tra
Vì sao một Application có quyền deploy không nên được trỏ tới Git repo bất kỳ?Xem đáp án ↗
Vì source repo có thể cung cấp manifests để tạo resources trong phạm vi quyền của Argo CD.
Học thêm qua lab
Có project thực hành đúng với chương này, kèm README và những giới hạn môi trường cần lưu ý.
↓ Tải mã nguồn thực hành chương 10Đối chiếu tài liệu gốc
Cú pháp và khả năng hỗ trợ có thể thay đổi theo phiên bản. Trước khi dùng Production, hãy kiểm tra tài liệu tương ứng.
Mở tài liệu chính thức ↗