Q: Explain the difference between `kubectl apply` and `kubectl create`. When would you use each?
- kubectl create — imperative. Creates the resource. Fails if it already exists. Good for one-time resource creation.
#Kubernetes #Advanced Scenarios #L3 #Container Orchestration #K8s #Git
🎙️ Candidate Opening & Architectural Context
""When troubleshooting Kubernetes, I always follow a structured layered model: Pod status -> Events -> Logs -> Network. When addressing this question, I walk the interviewer through our production incident runbook: isolating the blast radius, checking diagnostic logs and metrics, and applying a safe fix.""
Advertisement
🛠️ Production Runbook & Step-by-Step Resolution
1️⃣
Initial Diagnostics & Root Cause Analysis
In CI/CD pipelines, always use kubectl apply — it's idempotent. Running the pipeline twice won't fail.
kubectl create— imperative. Creates the resource. Fails if it already exists. Good for one-time resource creation.kubectl apply— declarative. Creates if not exists, updates if it does. Tracks changes using thekubectl.kubernetes.io/last-applied-configurationannotation. Good for GitOps and automation.
2️⃣
Remediation & Permanent Safeguards
Use kubectl create when you specifically want the command to fail if the resource exists (e.g., to prevent accidental overwrites in a script). kubectl apply with --server-side (SSA) is the modern approach — the server handles merge strategy instead of the client annotation.
💡 The Senior SRE Gold Nugget (Key Architectural Takeaway)
"Pro-Tip: kubectl create — imperative. Creates the resource. Fails if it already exists. Good for one-time resource creation.."
⚡ 60-Second Elevator Pitch Talking Points
- kubectl create — imperative. Creates the resource. Fails if it already exists. Good for one-time ...
- kubectl apply — declarative. Creates if not exists, updates if it does. Tracks changes using the ...
Advertisement