Desired state và actual state
kubectl apply chỉ ghi desired state vào API. Muốn kết luận deploy thành công, phải kiểm tra Deployment/ReplicaSet/Pod, Ready condition, Service selector và EndpointSlice. Một Pod Running nhưng chưa Ready không nên nhận traffic; một Service tồn tại nhưng selector sai sẽ không có endpoint.
Manifest contract
Dùng namespace lab, labels ổn định, image version có thể truy vết, requests/limits, non-root securityContext và probes phù hợp startup. Service account/workload identity xử lý quyền gọi Google API; không đặt key trong Secret/ConfigMap chỉ để tiện demo.
Debug và rollback
Đi từ object rộng đến evidence cụ thể: rollout status → get/describe pod → events → logs/previous → endpoints/service. Nếu image/probe/config sai, sửa manifest rồi rollout; lưu revision và rollback có điều kiện. Sau bài xóa bằng label/namespace, rồi kiểm tra lại để tránh workload mồ côi.
Bài tập
Deploy sample app vào namespace lab, cố ý tạo một lỗi selector hoặc readiness probe, ghi symptom/evidence/root cause/remediation, sau đó verify request path. Cuối cùng cleanup và chứng minh namespace không còn resource.