The Complete Kubernetes Interview Preparation Guide
How to Actually Prepare for a Kubernetes Interview
Most candidates fail Kubernetes interviews not because they lack knowledge, but because they studied the wrong things in the wrong order. This guide gives you a concrete roadmap that works whether you're targeting a junior DevOps role or a senior platform engineering position.
Your Study Roadmap: What to Learn and When
Weeks 1-2: Foundations
Before touching Kubernetes, make sure you're solid on the primitives it builds on:
- Linux fundamentals: namespaces, cgroups, process management, filesystem mounts. Kubernetes uses all of these under the hood.
- Container basics: Build a Dockerfile from scratch, understand image layers, run containers with resource limits.
- Networking 101: TCP/IP, DNS resolution, iptables basics, how NAT works. You cannot understand Kubernetes networking without these.
- YAML fluency: You'll read and write YAML constantly. Know anchors, multi-line strings, and how lists vs maps work.
Verify your foundations with a simple test: can you explain what happens when you run docker run -p 8080:80 nginx at every layer from the kernel up? If not, spend more time here.
Weeks 3-4: Core Kubernetes Objects
Work through these in order, because each builds on the last:
- Pods — Create pods, inspect them, debug them. Understand init containers, sidecar containers, and the pod lifecycle.
- ReplicaSets — Understand why you almost never create these directly, but need to know how they work.
- Deployments — Rolling updates, rollbacks, scaling. This is the most commonly asked topic.
- Services — ClusterIP, NodePort, LoadBalancer. Know how kube-proxy routes traffic.
- ConfigMaps and Secrets — How to inject configuration. Understand the security implications of Secrets.
- Namespaces — Resource isolation, RBAC scoping, resource quotas.
For each object, follow this loop:
# Create it imperatively
kubectl run my-pod --image=nginx
# Generate the YAML without creating
kubectl run my-pod --image=nginx --dry-run=client -o yaml
# Apply it declaratively
kubectl apply -f my-pod.yaml
# Inspect it from every angle
kubectl describe pod my-pod
kubectl get pod my-pod -o yaml
kubectl logs my-pod
kubectl exec -it my-pod -- /bin/sh
Weeks 5-6: Cluster Architecture and Operations
Now zoom out from individual objects to the system:
- Control plane components: What does each one do? What happens if etcd goes down? What if the scheduler crashes?
- Node components: kubelet, kube-proxy, container runtime. How does a pod actually start?
- Storage: PersistentVolumes, PersistentVolumeClaims, StorageClasses. Know the difference between static and dynamic provisioning.
- Scheduling: nodeSelector, affinity/anti-affinity, taints and tolerations.
Weeks 7-8: Advanced Topics
Prioritize based on the role you're targeting:
- RBAC: Roles, ClusterRoles, RoleBindings, ClusterRoleBindings. Create a service account with limited permissions from scratch.
- Network Policies: Write a policy that allows traffic only from specific namespaces.
- Helm: Chart structure, values overrides, upgrade/rollback lifecycle.
- Observability: Metrics pipeline (metrics-server, Prometheus), logging strategies, tracing concepts.
- CI/CD integration: How Kubernetes fits into deployment pipelines. GitOps basics with ArgoCD or Flux.
Core Topics Interviewers Focus On
After reviewing hundreds of interview reports, these are the topics that come up most frequently, ranked by how often they appear:
Tier 1: Asked in Nearly Every Interview
Pod lifecycle and debugging — You will almost certainly be asked to troubleshoot a failing pod. Practice these scenarios until they're muscle memory:
# Pod stuck in Pending
kubectl describe pod stuck-pod
# Look for: insufficient resources, unschedulable nodes, missing PVCs
# Pod in CrashLoopBackOff
kubectl logs crashing-pod --previous
# Look for: application errors, missing config, permission issues
# Pod in ImagePullBackOff
kubectl describe pod bad-image-pod
# Look for: wrong image name, missing registry credentials, private registry without imagePullSecrets
Deployments and rolling updates — Know the exact mechanics:
apiVersion: apps/v1
kind: Deployment
metadata:
name: web-app
spec:
replicas: 3
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 1 # At most 4 pods during update
maxUnavailable: 0 # Never drop below 3 ready pods
selector:
matchLabels:
app: web
template:
metadata:
labels:
app: web
spec:
containers:
- name: web
image: myapp:v2
readinessProbe:
httpGet:
path: /healthz
port: 8080
initialDelaySeconds: 5
periodSeconds: 10
Be ready to explain: Why does maxUnavailable: 0 require a readiness probe to work correctly? (Because without a readiness probe, Kubernetes considers new pods ready immediately, and might kill old pods before the new ones can actually serve traffic.)
Services and networking basics — Explain how a request flows from outside the cluster to a specific pod. Walk through DNS resolution, kube-proxy rules, and endpoint selection.
Tier 2: Asked in Most Mid-Level and Senior Interviews
- RBAC: Create a Role that allows a developer to view pods and logs but not delete anything.
- Resource management: requests vs limits, QoS classes (Guaranteed, Burstable, BestEffort), what happens during node pressure.
- Health checks: The difference between liveness, readiness, and startup probes — and when you'd use each one.
- Storage: Explain the PV/PVC binding process. What happens to data when a pod is rescheduled?
Tier 3: Asked in Senior/Architect Interviews
- Cluster design: How would you design a multi-tenant cluster? What about multi-cluster?
- Security hardening: Pod Security Standards, admission controllers, supply chain security.
- Networking deep dive: CNI plugin selection, network policy engines, service mesh tradeoffs.
- Disaster recovery: etcd backup and restore, cluster migration strategies.
Common Question Patterns and How to Answer Them
Pattern 1: "Explain how X works"
These test conceptual understanding. Structure your answer in layers:
- One-sentence summary: "A Service provides a stable network endpoint for a set of pods."
- How it works mechanically: "It uses label selectors to find matching pods, creates an Endpoints object, and kube-proxy programs iptables rules (or IPVS) on every node to route traffic."
- Why it's designed this way: "Pods are ephemeral — their IPs change. Services solve this by providing a virtual IP that stays constant."
Pattern 2: "How would you troubleshoot X?"
These test real-world experience. Always follow a systematic approach:
- Gather information:
kubectl get,kubectl describe,kubectl logs - Check events: Events often tell you exactly what went wrong
- Narrow the scope: Is it a pod problem, node problem, or cluster-wide problem?
- Verify each layer: Application -> Container -> Pod -> Node -> Cluster
Example question: "A user reports their application returns 503 errors intermittently."
Strong answer structure:
# Check the pods backing the service
kubectl get pods -l app=myapp
# Are any pods not Ready?
# Check endpoints
kubectl get endpoints myapp-service
# Are all healthy pods listed?
# Check the pod logs for errors
kubectl logs -l app=myapp --tail=50
# Check resource utilization
kubectl top pods -l app=myapp
# Are pods hitting memory limits and being OOM-killed?
# Check the readiness probe configuration
kubectl get deploy myapp -o jsonpath='{.spec.template.spec.containers[0].readinessProbe}'
# Is the probe too aggressive? Too lenient?
Pattern 3: "Design a solution for X"
These test architecture skills. Use this framework:
- Clarify requirements: Ask about scale, availability, security, and compliance needs.
- Propose a solution: Start simple, then layer in complexity.
- Discuss tradeoffs: Every design decision has pros and cons. Name them.
- Address operations: How is it deployed, monitored, upgraded, and debugged?
Pattern 4: "Write the YAML for X"
You don't need to memorize every field, but you should be able to write core resources from memory:
- A Pod with resource limits and a health check
- A Deployment with a rolling update strategy
- A Service exposing a Deployment
- A NetworkPolicy restricting ingress
- A Role and RoleBinding granting limited access
Practice by writing these without documentation, then checking your work:
# Useful trick: generate a starting point, then customize
kubectl create deployment web --image=nginx --replicas=3 --dry-run=client -o yaml > deploy.yaml
kubectl create service clusterip web --tcp=80:80 --dry-run=client -o yaml > svc.yaml
Hands-On Practice Tips
Set Up a Local Cluster
Use kind (Kubernetes in Docker) for practice — it's lightweight and disposable:
# Install kind
go install sigs.k8s.io/kind@latest
# Create a multi-node cluster
cat <<EOF | kind create cluster --config=-
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
- role: worker
- role: worker
EOF
# Verify
kubectl get nodes
Practice Scenarios to Work Through
Scenario 1: Deploy and expose an application
- Create a Deployment running nginx with 3 replicas
- Add resource requests and limits
- Configure a readiness probe
- Expose it with a Service
- Scale it up and watch the rolling update
Scenario 2: Debug a broken deployment Deploy a pod with a deliberate error (wrong image name, missing ConfigMap, port conflict) and practice the debugging workflow.
Scenario 3: Implement RBAC
- Create a namespace called
dev-team - Create a ServiceAccount called
developer - Create a Role that allows get/list/watch on pods and deployments
- Bind the Role to the ServiceAccount
- Test it:
kubectl auth can-i list pods --as=system:serviceaccount:dev-team:developer -n dev-team
Scenario 4: Storage lifecycle
- Create a PersistentVolume and PersistentVolumeClaim
- Mount it in a pod, write data
- Delete the pod, create a new one with the same PVC
- Verify the data survived
Scenario 5: Network Policy enforcement
- Deploy two apps in separate namespaces
- Verify they can communicate by default
- Apply a NetworkPolicy that blocks cross-namespace traffic
- Verify the policy works
- Add an exception for one specific app
Build Real Things
The best interview prep is building something that solves a real problem:
- Deploy a WordPress + MySQL stack with persistent storage
- Set up a microservices demo app (Google's Online Boutique is excellent for this)
- Build a CI/CD pipeline that deploys to your kind cluster
- Implement progressive delivery with canary deployments
Mock Interview Strategies
Solo Practice
Record yourself answering questions out loud. It feels awkward, but it reveals gaps you didn't know you had. Time your answers — most interview questions should be answerable in 2-5 minutes.
Work through these prompts:
- "Walk me through what happens when you run
kubectl apply -f deployment.yaml." - "Your team's deployment is failing to roll out. How do you investigate?"
- "Explain the difference between a DaemonSet, a Deployment, and a StatefulSet. When would you use each?"
- "Design a Kubernetes setup for a team of 20 developers working on 5 microservices."
- "How does Kubernetes DNS work?"
With a Partner
If you can find someone to practice with, alternate between interviewer and candidate. The interviewer role teaches you as much as the candidate role because you learn what makes a strong answer.
Interviewer tips:
- Ask follow-up questions: "Why?" and "What could go wrong?"
- Present ambiguous scenarios — strong candidates ask clarifying questions
- Give live troubleshooting exercises with a shared terminal
Time-Boxed Challenges
Give yourself 30 minutes and a fresh cluster. Set a goal:
- "Deploy a 3-tier application with ingress in 30 minutes"
- "Configure RBAC for 3 teams with different permission levels in 20 minutes"
- "Debug these 5 broken YAML files in 25 minutes"
This builds the speed and confidence you need for live exercises.
Day-of Advice
Before the Interview
- Don't cram: If you've been studying for weeks, take the morning off. Cramming increases anxiety and rarely helps.
- Have your environment ready: If there might be a live exercise, ensure kubectl is configured, your terminal is clean, and your font size is large enough for screen sharing.
- Review your own projects: Interviewers often ask about your real-world experience. Have 2-3 specific Kubernetes stories ready (a debugging war story, a design decision you made, a migration you led).
During the Interview
- Think out loud: Interviewers care about your thought process as much as your answer. Say what you're considering, even if you're not sure.
- Start with the big picture: Before diving into details, give a one-sentence overview. "A DaemonSet ensures every node runs a copy of a pod. Let me walk you through how..."
- Admit what you don't know: Saying "I don't remember the exact flag, but I know you configure it in the kubelet configuration" is far better than guessing incorrectly.
- Use kubectl help: In live exercises,
kubectl explain deployment.spec.strategyis faster than Googling and shows the interviewer you know your tools.
# These are interview power moves
kubectl explain pod.spec.containers.resources
kubectl api-resources | grep -i network
kubectl get events --sort-by='.lastTimestamp'
kubectl get pods -o custom-columns=NAME:.metadata.name,STATUS:.status.phase,NODE:.spec.nodeName
- Ask questions back: "Before I design this, can I ask about the expected traffic pattern and SLO requirements?" Strong candidates treat design questions as conversations.
Common Mistakes to Avoid
- Memorizing without understanding: If you can recite the definition of a StatefulSet but can't explain when you'd choose it over a Deployment, you're not ready.
- Ignoring the "why": Kubernetes exists to solve real problems. Connect every concept back to the operational problem it addresses.
- Skipping security and RBAC: Many candidates treat these as advanced topics. They're not — they're expected knowledge for any role beyond junior.
- Not practicing imperative commands: Declarative YAML is important, but in timed exercises, imperative commands save critical minutes.
- Forgetting about observability: How do you know your deployment is healthy? Metrics, logs, and probes are part of every production setup.
Final Checklist
Before your interview, verify you can do all of these without documentation:
- [ ] Create a Deployment with resource limits, probes, and a rolling update strategy
- [ ] Expose a Deployment with each Service type
- [ ] Troubleshoot Pending, CrashLoopBackOff, and ImagePullBackOff pods
- [ ] Explain how a request reaches a pod from outside the cluster
- [ ] Describe each control plane component and its role
- [ ] Write a NetworkPolicy from scratch
- [ ] Set up RBAC for a specific use case
- [ ] Explain PV/PVC binding and StorageClasses
- [ ] Describe what happens during a rolling update step by step
- [ ] Use
kubectl explain,kubectl get events, andkubectl logs --previousfluently
If you can check every box, you're well prepared. Good luck.