Nay phỏng vấn một bạn role junior+ (3y exp) cơ bản thì CV đẹp phải nói CV apply 4-5y chắc cũng pass vòng scan. Và đương nhiên Kubernetes là điều không thể thiếu với DevOps rồi, với vị trí này tôi viết job description cũng không cần quá mạnh về system hay networking.
Tôi chưa bao giờ dám nhận mình tài giỏi nhưng cũng làm nghề được một thời gian tương đối và cũng đi phỏng vấn được 4-5 năm nay nên có chút kinh nghiệm cá nhân muốn chia sẻ. Và chắc chắn là cũng không có chuyện cùng năm kinh nghiệm mà trình độ ai cũng giống ai, số năm thể hiện phần nào thôi.

Kubernetes đúng là một bước tiến lớn của hạ tầng. Nó giải quyết cực nhiều vấn đề đau đầu: scale, self-healing, rolling update, service discovery…
Nhưng một điều mà có thể nhiều bạn cũng chưa hiểu: Kubernetes đang khiến nhiều người nghĩ rằng mình giỏi hạ tầng hơn thực tế.
Ví dụ như bạn phía trên tôi nói, phỏng vấn thì dùng K8s được hơn 1 năm, apply manifest, rollout deployment,… chủ yếu công việc là apply yaml, debug mấy thứ basic có thể nói là kinh nghiệm kubernetes 2-3 tháng cứ làm như vậy đến hơn 1 năm.
Xong nghĩ mình đã hiểu rất sâu orchestration thế hệ mới, nhưng đến khi tôi đưa 1 usecase sự cố khá basic thì lúng túng rõ, nên cũng là kinh nghiệm cho bạn nào đi phỏng vấn hãy cứ trung thực, không biết bảo không biết hoặc có cách nói giảm nói tránh hoặc nói về việc có thể cố gắng học tập, đừng nên thể hiện quá đà thứ mình chưa biết.
K8s che mất rất nhiều thứ rủi ro khiến người ta tưởng mọi thứ đơn giản
Ví dụ:
Bạn apply một Deployment. Pod chạy. Service route traffic. Tự heal. Scale lên.
=> Nhìn thì tưởng mình đang “làm chủ cả cluster”.
Nhưng thực tế:
- Container chạy được vì kubelet xử lý, log gom về vì daemonset lo
- Networking chạy được vì CNI plugin điều phối
- DNS hoạt động vì CoreDNS đang khỏe
- Volume mount chuẩn vì CSI driver không crash
- Load balancer hút traffic đúng vì cloud controller manager không lỗi
Nghĩ lại xem: Trong số đó, bạn thật sự hiểu bao nhiêu phần trăm?
Kubernetes rất hay ở chỗ trông mọi thứ như tự động, mà chính vì thế nó tạo ra ảo giác về năng lực.
Không hiểu networking mà dùng Kubernetes = ảo tưởng tốc độ
Một pod không lên được, nhiều bạn auto chạy: kubectl describe pod, xong nhìn thấy CrashLoopBackOff rồi đi sửa image.
Nhưng lỗi thực tế nhiều khi là:
- DNS resolution fail
- CNI overlay VXLAN bị nghẽn
- Node không allocate được IP
- MTU mismatch do multi-hop route
- iptables rules bị CNI override
Kubernetes không giải thích cho bạn được những thứ này. Nếu bạn không hiểu networking cơ bản:
- Subnet
- Routing
- iptables
- NAT
- DNS cache Thì K8s chỉ làm bạn debug mù thôi.
Không ai nói cho bạn biết rằng: Kubernetes không giúp code chạy nhanh hơn
Nhiều dev/tester mới vào thường nghĩ: Cho lên Kubernetes là khỏe ngay, auto-scale, tự heal, chạy ngon.
Không đâu.
Kubernetes chỉ scale được cái gì stateless và không có bottleneck downstream.
Thực tế 90% hệ thống chết vì:
- DB choke connection
- Redis latency spike
- External API timeout
- Kafka consumer lag
- NFS throughput thấp
Kubernetes không giải quyết mấy thứ ở dưới. Nhưng nhiều người lại tưởng “có cluster là đủ”.
YAML không thay thế được kinh nghiệm on-call
Viết YAML đẹp không làm bạn thành DevOps senior.
Khi production down lúc 3h sáng:
- Bạn có biết log sidecar nằm ở đâu không?
- Bạn có biết cách trace request qua Envoy không?
- Bạn có biết node nào đang throttling CPU không?
- Bạn có biết container restart do OOM hay do readiness fail?
- Bạn có check được conntrack table đầy không?
- Bạn có biết cách đọc dmesg để xem kernel kill process không?
=> Đây không phải thứ sách dạy. => Đây là thứ chỉ hiện ra khi bạn on-call đủ lâu.
Nhưng vì Kubernetes che hầu hết chi tiết, nhiều người lại tưởng mình rất giỏi, cho đến khi sự cố đầu tiên xuất hiện.
Kubernetes mạnh thật nhưng nó phóng đại năng lực những ai chưa thực sự hiểu hệ thống
K8s khiến nhiều bạn:
- Tưởng mình giỏi bởi vì apply là chạy, nhưng không hiểu điều gì đang xảy ra đằng sau
- Tưởng mình biết scale, nhưng chưa từng scale worker thực sự theo traffic pattern
- Tưởng mình làm CI/CD đúng, nhưng chỉ là gắn ArgoCD vào repo
- Tưởng mình giỏi monitoring, nhưng thật ra không đọc nổi prometheus query
- Tưởng dùng Helm nhiều là hiểu chart, nhưng khi chart fail thì không biết sửa
Nó giống như lái xe ô tô xịn mà nghĩ mình là tay đua. Do xe tốt không phải do kỹ năng.
Kết luận
Chẳng ai chê Kubernetes cả. Tất cả chỉ là sử phù hợp thôi. Tôi dùng nó hàng ngày, và công nhận nó thay đổi cả ngành hạ tầng. Nhưng tôi nghĩ chúng ta cần nói thẳng điều này tự bản thân phải hiểu rằng:
Kubernetes chỉ là một công cụ rất mạnh. Nó không tự nâng level bạn lên đâu.
Điều nâng level bạn lên là:
- hiểu hệ thống chạy như thế nào
- biết lý do nó chết ra sao
- hiểu networking, storage, compute ở tầng thấp
- đọc được metric đúng chỗ
- xử lý được sự cố trong bóng tối khi dashboard không hoạt động
Kubernetes là cái áo rất đẹp. Nhưng nếu bạn muốn thực sự giỏi, phải giỏi cơ thể bên dưới cái áo đó.
Nói chung nghe đao to búa lớn chứ có thời gian trải nghiệm rồi bạn sẽ nhận ra được, bài này để bạn nào đang thấy bản thân “rất pro” như vậy có thể xem xét và nhanh chóng nhận ra hơn.
Viết đến đây lại nảy ra một suy nghĩ trong đầu là những thứ Kubernetes không dạy bạn nhưng production bắt bạn học. Nhưng cũng dài rồi lúc nào có thời gian lại chia sẻ tiếp nhé.







