Interview Kubernetes, Docker, Helm & Podman

What are init containers, and when would you use one?

Kubernetes, Docker, Helm & Podman · Intermediate level

Answer

Init containers run before application containers and must complete successfully before the app starts. I use them for setup work such as waiting for dependencies, generating config, running migrations, or fixing permissions.

Technical explanation

Init containers can use different images and permissions than the app container, reducing what the runtime container needs.

A failing init container prevents the app from starting and must be visible in events and status.

Scheduling controls place workloads correctly; RBAC and ServiceAccounts decide what identities can do after placement.

Use labels consistently because Services, Deployments, affinities, policies, and topology spread all depend on label selection.

Every constraint should be testable with events: FailedScheduling, denied API calls, or observed placement.

Hands-on example

1. Create a lab namespace for this exercise with explicit labels, ServiceAccounts, roles, node labels, or taints: use an init container to wait for a dependency before app start.

2. Use kubectl auth can-i, kubectl describe pod, and scheduling events to verify the expected decision.

3. Test a negative case, such as missing permission, missing toleration, or impossible affinity, and capture the exact error.

4. Convert the validated YAML into a reusable platform pattern with clear naming and labels.

Preparing for an interview?

Check how well your resume matches the role with our free resume checker— match score, ATS check, and the skills you're missing.

More Kubernetes, Docker, Helm & Podman interview questions

← All Kubernetes, Docker, Helm & Podman questions