Blog chia sẻ về công nghệ ...
Published on

Những câu hỏi phỏng vấn Kubernetes tình huống thực tế

Authors

Những câu hỏi phỏng vấn Kubernetes tình huống thực tế


📑 Mục Lục

  1. Những câu hỏi phỏng vấn Kubernetes tình huống thực tế

🔍 Những câu hỏi phỏng vấn Kubernetes tình huống thực tế

  1. Một pod backend bị CrashLoopBackOff sau khi deploy version mới. Bạn xử lý thế nào?
    → Kiểm tra logs: kubectl logs <pod-name>,
    → Kiểm tra các lỗi liên quan đến env, volume mount, configmap hoặc secret,
    → Kiểm tra readiness/liveness probe,
    → Nếu lỗi ứng dụng → rollback bằng kubectl rollout undo deployment.

  2. Service type ClusterIP không truy cập được từ Pod khác. Bạn kiểm tra gì?
    → Dùng nslookup <service> trong pod,
    → Kiểm tra đúng namespace, selector của service có trỏ đúng Pod không,
    → Kiểm tra NetworkPolicy, iptables, kube-proxy hoặc CNI plugin có hoạt động không.

  3. Bạn cần triển khai một Redis Cluster hoặc MySQL HA trong Kubernetes. Làm sao đảm bảo tính sẵn sàng?
    → Dùng StatefulSet với headless service,
    → Áp dụng volume persistent (PVC) cho từng pod,
    → Cấu hình liveness/readiness probes,
    → Dùng Helm chart chuẩn (bitnami) có HA built-in,
    → Optional: Sử dụng PodDisruptionBudget, Anti-Affinity để đảm bảo HA.

  4. Pod không lên vì lý do "ImagePullBackOff". Bạn xử lý ra sao?
    → Kiểm tra kubectl describe pod <name> để xem lỗi,
    → Kiểm tra image name, tag có tồn tại không,
    → Kiểm tra Secret chứa Docker registry credential nếu image private,
    → Kiểm tra kubelet có pull được image hay bị chặn mạng.

  5. CI/CD pipeline deploy Pod xong nhưng không truy cập được từ outside. Cách xử lý?
    → Kiểm tra Service: có đúng type LoadBalancer/NodePort chưa,
    → Kiểm tra Ingress Controller có hoạt động không (Nginx/Traefik),
    → Kiểm tra cấu hình DNS + domain mapping,
    → Kiểm tra NetworkPolicy hoặc security group (nếu chạy cloud).

  6. Bạn được yêu cầu triển khai multi-env (dev, staging, prod) trong cùng cluster. Làm như thế nào?
    → Sử dụng Namespace riêng biệt cho mỗi môi trường,
    → Dùng Helm chart có hỗ trợ values-dev.yaml, values-prod.yaml,
    → Áp dụng ResourceQuota, LimitRange và RBAC riêng cho từng env.

  7. Một node trong cluster báo "NotReady". Các bước xử lý là gì?
    kubectl describe node <node> xem lý do (disk full, network, docker, kubelet fail),
    → SSH vào node để kiểm tra dịch vụ: systemctl status kubelet,
    → Kiểm tra log journalctl -u kubelet,
    → Nếu node không khôi phục → cordon + drain node và thay thế node mới.

  8. Bạn cần triển khai ứng dụng CI/CD có bảo mật secret và rollout tự động. Kiến trúc ra sao?
    → Code → Push lên Git → Trigger CI (GitLab CI/Jenkins)
    → Build Image → Push Registry (Harbor/GCR)
    → ArgoCD/FluxCD sync code + secrets (Vault/SealedSecret)
    → Deployment rollout tự động, sử dụng liveness + HPA nếu cần.

  9. Một ứng dụng thường xuyên bị out-of-memory (OOMKilled). Cách xử lý?
    → Kiểm tra logs kubectl logs,
    kubectl describe pod xem lý do OOMKilled,
    → Cấu hình giới hạn resources.limits.memory,
    → Dùng metrics-server để theo dõi pod RAM thực tế, tăng giới hạn hoặc optimize code.

  10. Bạn cần migrate ứng dụng từ bare-metal lên Kubernetes, cần lưu ý những gì?
    → Phân tách service, cấu hình thành YAML (Deployment, Service, Ingress…),
    → Tách config thành ConfigMap/Secret,
    → Dùng volume để lưu trữ persistent data,
    → Kiểm tra tương thích port, HA, scale,
    → Tích hợp CI/CD + Monitor (Prometheus/Grafana).

  11. Tình huống: Một node bị chết khi đang có pod chạy StatefulSet. Điều gì xảy ra?
    → Pod trên node chết sẽ được reschedule lên node khác nhưng giữ nguyên identity (name),
    → PVC vẫn gắn với Pod, nếu dùng storage hỗ trợ RWX hoặc RWO + reclaim chính xác.

  12. Bạn cần giám sát hệ thống Kubernetes thì cần triển khai những gì?
    → Dùng stack Prometheus + Grafana,
    → Cài kube-state-metrics, node-exporter, cadvisor, alertmanager,
    → Có thể dùng Lens hoặc Kube-prometheus-stack (Helm),
    → Định nghĩa alert rule theo SLA của hệ thống.