Custom Resource Definition (CRD) mở rộng Kubernetes API bằng một loại resource mới của riêng bạn, ví dụ kind: PostgresCluster. Sau khi apply CRD, bạn có thể kubectl get postgresclusters và lưu object đó trong etcd y như resource built-in. Bản thân CRD chỉ thêm dữ liệu, chưa có hành vi.
Operator là hành vi đi kèm: một controller chạy control loop, watch các custom resource và điều hòa (reconcile) thế giới thực về đúng state được khai báo. Nó gói kiến thức vận hành (operational knowledge) của một con người — cách cài đặt, backup, failover, nâng cấp một hệ thống stateful — thành code.
Vòng lặp cốt lõi:
quan sát state hiện tại -> so với spec mong muốn -> hành động để thu hẹp khác biệt -> lặp lạiVí dụ: một Postgres Operator thấy CR yêu cầu 3 replica sẽ tự tạo StatefulSet, cấu hình replication, và nếu primary chết thì tự promote replica.
Công thức thường nhắc: Operator = CRD (API mới) + custom controller (reconcile loop). Đây là cách chuẩn để tự động hóa app stateful phức tạp trên Kubernetes thay vì thao tác thủ công.