Skip to content

Autopilot vs Standard — So Sánh Kiến Trúc Vận Hành

Mô hình quản lý: ranh giới trách nhiệm

Sự khác biệt căn bản giữa Autopilot và Standard không nằm ở tính năng, mà nằm ở ranh giới trách nhiệm.

Trong Standard clusters, bạn là chủ sở hữu của node layer: bạn chọn machine type, kích thước disk, cấu hình network tags, quản lý node pool upgrades, và tự chịu trách nhiệm về tất cả vấn đề phát sinh từ node. Cluster Autoscaler chỉ là một component bạn bật lên, không phải một cam kết từ Google.

Trong Autopilot, Google cam kết vận hành node layer. Điều này bao gồm:

  • Provisioning và deprovisioning node tự động dựa trên workload demands
  • Tự động áp dụng node upgrades với zero disruption cho control plane
  • Đảm bảo node luôn chạy Container-Optimized OS (COS) với security patches cập nhật
  • Tự động scale cluster xuống zero khi không có workload (không tốn tiền cho idle nodes)

Đây không phải là Cluster Autoscaler — đây là một hệ thống quản lý infrastructure khác hoàn toàn về kiến trúc.

Trách nhiệm trong Autopilot

TầngGoogle quản lýBạn quản lý
Control plane✅ Toàn bộ
Node provisioning✅ Toàn bộ
Node OS & patching✅ Toàn bộ
Node scaling✅ Toàn bộ
Pod scheduling✅ (resource bin-packing)Khai báo constraints
Workload configuration✅ Toàn bộ
Network policies✅ Toàn bộ
Application logic✅ Toàn bộ
Monitoring & alertingHạ tầng + tùy chọnWorkload metrics

Trách nhiệm trong Standard

TầngGoogle quản lýBạn quản lý
Control plane✅ Toàn bộ
Node provisioning✅ (thủ công hoặc CAS)
Node OS & patchingCOS base imageTrigger upgrades
Node scaling✅ Cấu hình CAS
Pod schedulingKube-schedulerCấu hình affinities
Workload configuration

Sự phân chia này có hệ quả thực tế quan trọng: nếu một node trong Autopilot gặp sự cố, Google tự phát hiện và thay thế. Nếu node trong Standard cluster gặp sự cố, bạn phải dựa vào node auto-repair (nếu đã bật) hoặc xử lý thủ công.

Mô hình billing: pod-based vs node-based

Đây là điểm mà nhiều engineer đánh giá sai về cost của Autopilot.

Standard billing

Standard clusters tính tiền theo node tồn tại, bất kể node đó đang chạy workload hay không. Nếu bạn có 10 node n2-standard-8, bạn trả tiền cho 80 vCPU và 320 GiB memory 24/7, ngay cả lúc 3 giờ sáng không có traffic.

Cluster Autoscaler có thể scale-down, nhưng:

  • Scale-down chỉ xảy ra sau delay (mặc định 10 phút)
  • Node không bị xóa ngay nếu có system pods không thể di chuyển
  • "System pods" như kube-proxy, fluentd chiếm một phần capacity của mỗi node

Autopilot billing

Autopilot tính tiền theo Pod resources được request, không phải node. Khi không có Pod nào chạy, bạn không trả tiền cho compute (chỉ trả cho control plane).

Công thức billing:

Chi phí = Σ (CPU_request × CPU_rate + Memory_request × Memory_rate + Storage_request × Storage_rate)
          cho mỗi Pod đang chạy, theo giây

Với General Purpose compute class (khu vực us-central1):

  • CPU: ~$0.0455 / vCPU / giờ
  • Memory: ~$0.00485 / GiB / giờ

Với Spot Pods, giảm khoảng 60-91% tùy resource type.

So sánh chi phí thực tế

Kịch bản: một ứng dụng web với traffic profile rõ ràng:

Standard:
  - 3 node n2-standard-4 (12 vCPU, 48 GiB) — chạy 24/7
  - Cost: 3 × $0.190/giờ × 24 × 30 = ~$410/tháng
  - Actual utilization: 30% peak, 5% off-peak

Autopilot (workload requests: 2 vCPU, 8 GiB mỗi replica, 3 replicas):
  - Peak 8 giờ/ngày: 3 replicas × (2 vCPU × $0.0455 + 8 GiB × $0.00485) × 8 × 30 = ~$79
  - Off-peak 16 giờ/ngày: 1 replica × cost × 16 × 30 = ~$26
  - Total: ~$105/tháng

Tiết kiệm: ~75% trong kịch bản này

Cảnh báo quan trọng: Autopilot không phải lúc nào cũng rẻ hơn. Nếu workload của bạn chạy liên tục với high utilization (>70% node capacity), Standard với bin-packing tốt có thể rẻ hơn. Autopilot charging per-pod resource có overhead so với chạy nhiều pod trên cùng một node trong Standard.

Anti-pattern: Migrate sang Autopilot mà không xem xét billing model. Một số team thấy bill tăng sau khi migrate vì workloads của họ có CPU requests không chính xác (quá cao so với actual usage).

Node-based billing cho GPU workloads

Khi sử dụng GPU accelerators hoặc một số compute classes đặc biệt, Autopilot chuyển sang node-based billing — bạn trả tiền cho node chứa GPU, không phải theo pod resource. Điều này quan trọng khi thiết kế AI/ML workloads.

Container-Optimized OS và Managed Node Layer

Trong Autopilot, tất cả node đều chạy Container-Optimized OS (COS). Bạn không thể chọn Ubuntu hoặc Windows. COS được Google thiết kế với:

  • Minimal attack surface: chỉ cài đặt những gì cần thiết để chạy containers
  • Read-only root filesystem
  • Không có package manager (apt/yum không tồn tại)
  • Automatic security updates do Google quản lý
  • Verified boot với Secure Boot và vTPM

Bạn không có SSH access vào nodes trong Autopilot. Đây là thiết kế có chủ ý, không phải hạn chế. Nếu bạn cần debug ở node level, bạn phải dùng kubectl debug node/NODE_NAME -it --image=... (nếu được phép) hoặc xem logs từ Cloud Logging.

Feature gaps: những gì Autopilot không hỗ trợ

Đây là danh sách các tính năng Standard hỗ trợ nhưng Autopilot không có hoặc giới hạn:

Không hỗ trợ hoàn toàn

Tính năngLý do
Custom node poolsAutopilot quản lý nodes, không expose node pool API
SSH vào nodesNodes là managed infrastructure
hostNetwork: trueVi phạm workload isolation
Privileged containers (mặc định)Security restriction; có allowlist cho partner workloads
DaemonSets tùy chỉnhAutopilot chỉ cho phép DaemonSets từ Google và verified partners
Kernel parameter tuning (sysctl)Không access vào node OS
Huge pagesKhông cấu hình được ở node level
Custom containerd configurationManaged by Google
Windows nodesChỉ Linux (COS)
Sole-tenant nodesKhông hỗ trợ
Confidential VMs (riêng lẻ)Chỉ trong một số compute classes cụ thể

Giới hạn (hỗ trợ một phần)

Tính năngGiới hạn
hostPortChỉ random ports, không cho static pods/deployments thông thường
HostPath volumesChỉ read-only /var/log
Custom network pluginsBắt buộc dùng Dataplane V2 (Cilium)
Node affinityKhông thể target node cụ thể; chỉ dùng compute class
EmptyDir size limitGiới hạn bởi ephemeral storage request
ResourceQuotaNamespace-level vẫn hoạt động

Hỗ trợ đầy đủ

  • Horizontal Pod Autoscaler (HPA)
  • Vertical Pod Autoscaler (VPA) — nhưng hành vi tương tác khác Standard
  • KEDA
  • Network Policies (Cilium)
  • Workload Identity
  • Config Connector
  • Istio/Anthos Service Mesh (với cấu hình phù hợp)
  • Binary Authorization
  • PodDisruptionBudgets

Release channels và versioning

Autopilot bắt buộc phải đăng ký vào một release channel. Không có tùy chọn "chạy version cụ thể mãi mãi". Điều này có nghĩa:

  • Control plane và nodes được upgrade tự động theo lịch của channel
  • Bạn có thể set maintenance windows để kiểm soát khi nào upgrade xảy ra
  • Không thể pin mãi mãi vào một minor version cụ thể

Đây là constraint quan trọng cho các tổ chức có quy trình change management nghiêm ngặt. Nếu quy trình của bạn yêu cầu thử nghiệm manual trước mỗi Kubernetes version upgrade, Autopilot sẽ tạo friction vì upgrades được managed.

Khi nào chọn Autopilot, khi nào chọn Standard

Chọn Autopilot khi:

  • Team không có bandwidth để manage node infrastructure
  • Workloads thuần containerized, không cần host-level access
  • Muốn enforce security baseline mạnh mẽ mà không cần cấu hình thêm
  • Cost model theo usage phù hợp hơn (highly variable traffic)
  • Muốn dùng tính năng Extended Duration Pods hoặc Spot Pods đơn giản

Chọn Standard khi:

  • Cần DaemonSets tùy chỉnh (logging agents đặc biệt, monitoring agents, storage drivers)
  • Workloads yêu cầu privileged access
  • Cần kernel tuning cho performance-critical workloads
  • Có team platform engineering và muốn control hoàn toàn
  • Chạy các workloads với compliance yêu cầu node-level isolation cụ thể

Không phải binary choice: Nhiều tổ chức chạy cả hai — Autopilot cho stateless/batch workloads, Standard cho platform infrastructure (monitoring, logging, security tooling).

References