Skip to content
tezvyn:

Docker & Kubernetes

Containers, Helm, orchestration, service mesh

75 bites

Test yourself: Top 30 easy Docker & Kubernetes interview questionsMultiple choice, with the correct answer and why it is correct on every question. Free, no sign-in.

Easy everything in Docker & Kubernetes, page 3

The Sidecar Pattern: Your App's Helper Container
easy2 min read

The Sidecar Pattern: Your App's Helper Container

The Sidecar pattern attaches a helper container to your main application, like a sidecar on a motorcycle. It handles peripheral tasks like logging or networking, letting you add features without changing the app's code.

easy2 min read

Control Plane vs. Data Plane: The Brain and the Brawn

Think of a system as having a brain and a body. The Control Plane is the brain, making decisions and setting rules. The Data Plane is the body, executing those rules on actual data or traffic, like in a service mesh's network of proxies.

kubectl Treats Custom Resources Like Native Ones
easy2 min read

kubectl Treats Custom Resources Like Native Ones

kubectl interacts with Custom Resources (CRs) using the same commands you know for built-in types like Pods. Once a CRD is installed, you can kubectl get, describe, and delete its objects.

The Operator Pattern: A Robot SRE for Your App
easy2 min read

The Operator Pattern: A Robot SRE for Your App

The Operator pattern adds a custom, automated "robot SRE" to your Kubernetes cluster. It encodes human operational knowledge for a specific application, like a database, into software that handles complex tasks like upgrades, backups, and failovers…

Custom Resource Definitions (CRDs): Teach Kubernetes New Tricks
easy2 min read

Custom Resource Definitions (CRDs): Teach Kubernetes New Tricks

CRDs let you define your own resource types, teaching Kubernetes new nouns like Database or Backup. This is how operators manage complex apps declaratively. The footgun is that a CRD only defines the API; you still need a controller to act on the objects.

easy2 min read

Helm Repository: Your Private App Store for Kubernetes

A Helm repository is a private app store for your Kubernetes applications. It's just an HTTP server with a catalog file (index.yaml) pointing to your packaged charts. Use it to share reusable app templates across teams without using public registries.

easy2 min read

Helm: The Package Manager for Kubernetes

Helm is like apt or Homebrew for Kubernetes. It bundles all your app's YAML files into a single manageable package called a Chart, solving "YAML sprawl." Use it to install complex apps with one command or to package your own for repeatable deployments.

GitOps Principles: Your Repo as the Source of Truth
easy2 min read

GitOps Principles: Your Repo as the Source of Truth

GitOps treats infrastructure state like code, with your Git repo as the single source of truth. Automated agents pull declarative configs from the repo to reconcile the live system, making it ideal for Kubernetes.

easy2 min read

Kubernetes Events: The Cluster's Short-Term Memory

Think of Kubernetes Events as a cluster's temporary log, recording state changes like a Pod starting or a container failing. Use them with kubectl describe to debug issues in real-time.

The Three Pillars of Observability
easy2 min read

The Three Pillars of Observability

Observability isn't one tool; it's a three-legged stool of metrics, logs, and traces. Metrics give the 'what' (CPU is high), logs the 'why' (an error loop), and traces the 'where' (which service is slow). The footgun is treating them as separate silos.

Kubernetes RBAC: Roles vs. ClusterRoles
easy2 min read

Kubernetes RBAC: Roles vs. ClusterRoles

Think of Kubernetes RBAC Roles as permissions for a single room (a Namespace), while ClusterRoles grant access to the entire building (the cluster). Use Roles for namespaced apps and ClusterRoles for admin tasks.

PersistentVolumeClaim: How Pods Request Storage
easy2 min read

PersistentVolumeClaim: How Pods Request Storage

A PersistentVolumeClaim (PVC) is a request for storage, like a claim check for a storage locker. Pods use it to mount durable storage for databases or file uploads. The footgun: a PVC is just a request; a matching PersistentVolume must exist to fulfill it.

Kubernetes: Inject ConfigMaps & Secrets as Env Vars
easy2 min read

Kubernetes: Inject ConfigMaps & Secrets as Env Vars

Injecting ConfigMaps and Secrets as environment variables decouples your app from its configuration. Kubernetes passes these key-value pairs into your container at startup, perfect for things like API keys or feature flags.

Kubernetes Secrets: Managing Sensitive Data in Pods
easy2 min read

Kubernetes Secrets: Managing Sensitive Data in Pods

A Kubernetes Secret is a dedicated object for storing sensitive data like API keys, separating them from your application code. It's used to inject database credentials or TLS certificates into pods.

Kubernetes DNS: How Pods Find Each Other
easy2 min read

Kubernetes DNS: How Pods Find Each Other

Kubernetes DNS gives services and pods stable, human-readable names so you don't have to track ephemeral IP addresses. It's how a frontend pod finds a backend service.

ClusterIP Service: Internal-Only Networking
easy2 min read

ClusterIP Service: Internal-Only Networking

A ClusterIP service is like an unlisted phone number for your pods, providing a stable internal IP for communication *within* the cluster. Use it for backend-to-backend traffic. The footgun is assuming it's reachable from the outside—it's not.

Imperative kubectl: Directly Command Your Cluster
easy2 min read

Imperative kubectl: Directly Command Your Cluster

Imperative kubectl is like giving direct orders to your cluster: 'run this,' 'scale that.' It's great for quick, one-off tasks like debugging a pod or handling an incident.

Recreate Deployment: Downtime for a Clean Slate
easy2 min read

Recreate Deployment: Downtime for a Clean Slate

The Recreate strategy is like flipping a switch: it shuts down all old pods before starting new ones. This guarantees downtime but is necessary for breaking changes, like a database migration. The footgun is a failed deployment leaves you with no running app.

Kubernetes Jobs: For Tasks That Need to Finish
easy2 min read

Kubernetes Jobs: For Tasks That Need to Finish

A Kubernetes Job runs a task to completion, unlike a Deployment which runs forever. Use it for one-off operations like database migrations or batch processing. The footgun is forgetting to set a retry limit, causing failed jobs to loop indefinitely.

Kubernetes Requests and Limits: Your Pod's Resource Contract
easy2 min read

Kubernetes Requests and Limits: Your Pod's Resource Contract

Kubernetes Requests and Limits are your pod's resource contract: requests guarantee a minimum for scheduling, while limits enforce a maximum at runtime. This prevents one greedy app from crashing others.

We are hiring for this. Every open role lists the topics its interview covers, so you can prepare for the real thing rather than guessing.

See open roles