ApplicationSet và Multi-Cluster
Đăng ký một cluster không đồng nghĩa cấp quyền deploy tới nó.
Nắm bản chất
ApplicationSet dùng List/Git/Cluster generators để sinh Applications. Cluster Generator có thể chọn theo cluster secret labels; cần opt-in selector để tránh tự triển khai lên cluster mới đăng ký. AppProject giới hạn destination clusters/namespaces và sources.
Multi-namespace trong một Kind cluster không tương đương multi-cluster HA. Khi Argo CD chạy trong Pod, localhost của Pod không phải localhost của host; remote Kubernetes API endpoint phải reachable và TLS/auth hợp lệ.
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
generators:
- clusters:
selector:
matchLabels:
delivery.lab18/opt-in: 'true'
kubectl -n argocd get applicationsets
kubectl -n argocd get applications -o wide
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 ApplicationSet nonprod Buổi 18 tạo Dev và Staging Applications. Kiểm tra một cluster mới không có opt-in label sẽ không được chọn.
Lỗi dễ mắc
Cluster Generator không selector có thể chọn mọi registered clusters; production phải có guardrail rõ ràng.
Tự kiểm tra
ApplicationSet Cluster Generator có tạo Kubernetes cluster mới không?Xem đáp án ↗
Không. Nó sinh Argo CD Applications cho clusters đã được đăng ký/khả dụng.
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 18Đố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 ↗