Learning Outcome & Exercises: Kubernetes

2 câu hỏi~10 phút đọc, vài giờ làm labTừ khóa: learning outcome, Basic, Intermediate, Challenge, evidence

Tổng kết chương Kubernetes: học xong mình phải làm được gì, và làm bài tập nào để chứng minh?

Đọc hiểu chưa đủ để đi phỏng vấn. Mỗi chương kết thúc bằng những việc làm được và chứng minh được: có code chạy, có test cho cả trường hợp lỗi, có log hoặc số đo. Bài tập nằm trong repo riêng java-backend-interview-labs, thư mục labs/kubernetes.

1. Mục tiêu đầu ra

Học xong chương này, bạn tự làm được:

2. Basic: Deploy + probe

Trạng thái: ⬜ Chưa triển khai: chưa có code/test, chưa tính là hoàn thành

Deployment 2 replica + Service + probe dùng actuator; rolling update không lỗi request.

Bài liên quan: Pod & probe, Deployment, StatefulSet, Job, Service & Ingress

Hoàn thành khi:

3. Intermediate: Config & resource

Trạng thái: ⬜ Chưa triển khai: chưa có code/test, chưa tính là hoàn thành

ConfigMap/Secret (không commit giá trị thật), requests/limits, HPA theo CPU; bắn tải và ghi số replica.

Bài liên quan: ConfigMap, Secret, RBAC, Resource & autoscaling

Hoàn thành khi:

4. Challenge: Troubleshooting & Helm

Trạng thái: ⬜ Chưa triển khai: chưa có code/test, chưa tính là hoàn thành

Cố tình gây OOMKilled và probe sai; chẩn đoán; đóng gói thành Helm chart có values theo môi trường.

Bài liên quan: Troubleshooting, Helm, Giám sát Kubernetes: Prometheus stack & dashboard

Hoàn thành khi:

5. Tiêu chí hoàn thành chung

6. Lab và trạng thái

MứcBài tậpTrạng tháiTest / bằng chứng
BasicDeploy + probe⬜ Chưa triển khai: chưa có code/test, chưa tính là hoàn thành—
IntermediateConfig & resource⬜ Chưa triển khai: chưa có code/test, chưa tính là hoàn thành—
ChallengeTroubleshooting & Helm⬜ Chưa triển khai: chưa có code/test, chưa tính là hoàn thành—

Repo lab: java-backend-interview-labs/labs/kubernetes. TODO: link GitHub là placeholder cho tới khi repo được push.

Phỏng vấn hỏi về Kubernetes, câu nào hay gặp nhất và trả lời sao?

Q1. Readiness và liveness probe khác nhau thế nào?

🇻🇳 Tiếng Việt:

Readiness quyết định Pod có nhận traffic không; fail thì bị gỡ khỏi Service. Liveness quyết định có restart container không. Không nên để liveness phụ thuộc database, nếu không DB chậm sẽ làm restart hàng loạt.

🇬🇧 English:

Readiness decides whether a Pod receives traffic; when it fails the Pod is removed from the Service. Liveness decides whether the container is restarted. Liveness should not depend on the database, or a slow database causes mass restarts.

Cách nhớ ngắn gọn


Tự kiểm tra

Bài tập Basic (Deploy + probe) được coi là xong khi nào?

Manifest; Log rollout. Chưa có code chạy và bằng chứng thì chưa tính là xong.

Bài tập Intermediate (Config & resource) được coi là xong khi nào?

kubectl get hpa theo thời gian. Chưa có code chạy và bằng chứng thì chưa tính là xong.

Bài tập Challenge (Troubleshooting & Helm) được coi là xong khi nào?

Ghi chú chẩn đoán; helm template chạy được; Cần cluster local (kind/minikube). Chưa có code chạy và bằng chứng thì chưa tính là xong.