Hôm trước khi phỏng vấn một bạn và có chia sẻ một chút kinh nghiệm trong bài Kubernetes khiến nhiều người nghĩ mình giỏi hơn thực tế thật sự rất may mắn và không ngờ là giúp được nhiều bạn thêm góc nhìn thực tế cũng như những anh em đồng nghiệp online từng trải lại thấu hiểu như vậy, làm tăng thêm cho tôi động lực chia sẻ những thứ hay ho trong quá trình làm việc thực tế nên nay viết tiếp một chút kinh nghiệm những bài học khi vận hành Kubernetes trên production hữu ích.

Kubernetes rất mạnh và rất tiện, mọi người làm đều thấy phần nào rồi. Nhưng chính vì nó tiện, nhiều người bỏ qua những thứ cốt lõi mà production vẫn luôn đòi hỏi. Nói cách khác, K8s giúp chạy app dễ hơn, nhưng không giúp chúng ta bớt toát mồ hôi khi sự cố xảy ra.
1. Debug Network Packet: Kiến thức nền tảng K8s bỏ qua
- Pod không ping được nhau?
- Service trả về randomly timeout?
- gRPC fail intermittently?
Thường chúng ta sẽ hỏi nhanh: K8s lỗi à?
Không. 90% là lỗi network như:
- MTU mismatch do overlay network
- VXLAN packet drop
- conntrack table full
- misconfigured iptables rules
- CNI plugin không sync route
- traffic bị blackhole ở node
Kubernetes không dạy chúng ta tcpdump, mtr, conntrack, iptables, hay ip route. Production thì dạy chúng ta cách… ngồi debug packet lúc 2h sáng : )
2. Consistency và Latency: Thực tế về Storage trong Production
PVC mount lên pod là xong?
Chắc chắn không rồi. Production sẽ quật chúng ta bằng:
- EBS/EFS latency spike
- volume stuck ở node cũ
- read-after-write inconsistency
- fsync chậm dẫn đến timeout
- NFS lock causing app freeze
- reclaim policy bị cấu hình sai -> mất dữ liệu
Kubernetes chỉ nói “Volume is attached”.
Nhưng không nói:
- attached vào đâu
- latency bao nhiêu
- throughput có choke hay không
App tụt performance mà không biết tại sao? Thường là “K8s không nói thật về storage”.
3. Quản lý chi phí Cloud: Bài học sau khi Scale bằng K8s
Scale deployment từ 5 -> 100 pod, cluster-autoscaler scale node từ 3 -> 20 node.
Sau đó CFO gọi ta lên hỏi: “Tại sao tiền cloud tháng này tăng 3 lần?”
Kubernetes:
- Scale theo rule
- Không đếm tiền dùm chúng ta
- Không biết workload thật của business
- Không optimize egress/ingress
- Không quản được cross-AZ traffic cost
- Không cảnh báo khi ephemeral storage phình to
K8s giúp chúng ta scale. Nhưng không giúp chúng ta trả tiền
Cái này production dạy rất nhanh, và chắc chắn tôi từng mất tiền ngoo rồi :))
4. Cấu trúc log hợp lý: Sự khác biệt giữa kubectl logs và Observability
kubectl logs chỉ là bề nổi.
Reality:
- app log quá nhiều -> disk pressure
- log không parse được -> mất alert
- log trôi nhanh -> mất root-cause
- sidecar logging block I/O -> throttle pod
- log đẩy về Loki/Elastic nhưng thiếu label
K8s không nói:
- Log format sao để trace multi-service
- Log sampling bao nhiêu đủ
- Log retention bao lâu không chết ví
Production thì dạy bằng cách: “Sáng nay hệ thống treo vì volume đầy log đấy, anh em.”
5. Tối ưu hiệu năng: Khác biệt giữa env Staging và traffic Production
Test local -> chạy ok. Deploy lên K8s -> cũng ok. Traffic thực tế -> app choke không rõ lý do.
Kết quả:
- Pod restart random
- readiness fail intermittent
- HPA scale sai
- GC spike
- network congestion
- DB choke trước khi app choke
Kubernetes không dạy:
- mô hình burst traffic
- cold-start cost
- connection churn
- retry storm
- backpressure control
Những thứ này chỉ học được khi hệ thống bị người dùng quật, không phải lúc chúng ta chạy curl trong staging.
6. Postmortem và Incident Management
Có team:
- sửa xong là xong
- không phân tích root-cause
- không đọc lại event timeline
- không chạy lại scenario
- không fix hệ thống quan sát
- không update runbook
- không xem lại policy deploy
Kubernetes giúp serve app. Nhưng để vận hành một tổ chức vận hành, K8s không dạy:
- communication
- incident management
- blameless RCA
- remediation tracking
- on-call workflow
- freeze window kỹ thuật
Cái này production bắt chúng ta học khi vụ sập thứ 2 giống hệt vụ sập thứ 1.
Kết luận
Kubernetes rất mạnh, nhưng đừng để nó đánh lừa chúng ta rằng bạn “đã đủ kiến thức”. Thực tế thì Kubernetes chỉ là phần nổi của tảng băng vận hành.
Phần chìm gồm có:
- network
- system
- storage
- observability
- CI/CD discipline
- business traffic behavior
- incident response
- cost management
Kubernetes là công cụ giúp chúng ta đưa con tàu ra khơi nhanh hơn, nhưng chính những bài học xương máu từ production mới là la bàn và hải đồ giúp chúng ta sống sót qua những cơn bão thực sự. Nên là không chỉ học cách dùng công cụ, mà còn học cách vận hành, mong rằng hữu ích với mọi người.







