Kubernetes interview question · Most asked
Helm or Kustomize: how do you manage manifests?
Summary
Helm packages manifests as charts with Go templating, values files, versioning, dependencies and release history; Kustomize keeps plain YAML and applies overlays and patches per environment without templating (built into kubectl). Many teams use Helm for third-party software and Kustomize (or Helm) for their own apps.
Longer Answer
Helm strengths: distributing software, parameterisation, helm rollback, a huge chart ecosystem. Weaknesses: complex templates are hard to read and review, and values can hide what is actually deployed (render with helm template in CI to review diffs).
Kustomize strengths: what you see is valid YAML, small patches per environment, easy reviews. Weaknesses: less suited to distributing configurable packages.
GitOps tools (Argo CD, Flux) support both. Whatever you choose, keep manifests in Git and review the rendered output.
Key Points
- Helm: templated, packaged charts.
- Kustomize: overlays on plain YAML.
- Helm for third-party, either for own apps.
- Review rendered output in CI.
More most-asked Kubernetes questions
- ConfigMaps and Secrets: how do they differ, and how should secrets really be handled?
- How does the scheduler place pods? Explain resource requests, node affinity, taints and tolerations.
- Describe the Kubernetes architecture: what runs on the control plane and what runs on the nodes?
- How do rolling updates work in a Deployment, and how do you roll back?
- Explain the Service types: ClusterIP, NodePort, LoadBalancer, ExternalName and headless.
- What happens, step by step, when you run kubectl apply for a Deployment?
- Deployment, StatefulSet, DaemonSet, Job and CronJob: when do you use each?
- What is the difference between resource requests and limits, and what are the QoS classes?