- Published on
Những câu hỏi phỏng vấn Kubernetes tình huống thực tế
- Authors
- Name
- Bạch Đăng Tuấn
- Occupation
- Kỹ sư công nghệ thông tin
- Zalo: 0934.01.07.04
Những câu hỏi phỏng vấn Kubernetes tình huống thực tế
📑 Mục Lục
🔍 Những câu hỏi phỏng vấn Kubernetes tình huống thực tế
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ằngkubectl rollout undo deployment
.Service type ClusterIP không truy cập được từ Pod khác. Bạn kiểm tra gì?
→ Dùngnslookup <service>
trong pod,
→ Kiểm tra đúng namespace, selector của service có trỏ đúng Pod không,
→ Kiểm traNetworkPolicy
,iptables
, kube-proxy hoặc CNI plugin có hoạt động không.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ùngStatefulSet
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ụngPodDisruptionBudget
, Anti-Affinity để đảm bảo HA.Pod không lên vì lý do "ImagePullBackOff". Bạn xử lý ra sao?
→ Kiểm trakubectl 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.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).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.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 logjournalctl -u kubelet
,
→ Nếu node không khôi phục → cordon + drain node và thay thế node mới.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.Một ứng dụng thường xuyên bị out-of-memory (OOMKilled). Cách xử lý?
→ Kiểm tra logskubectl logs
,
→kubectl describe pod
xem lý do OOMKilled,
→ Cấu hình giới hạnresources.limits.memory
,
→ Dùngmetrics-server
để theo dõi pod RAM thực tế, tăng giới hạn hoặc optimize code.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).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.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.