What if your apps could fix themselves and never go offline during updates?
Why Kubernetes basics review in Microservices? - Purpose & Use Cases
Start learning this pattern below
Jump into concepts and practice - no test required
Imagine you have many small apps running on different computers, and you need to start, stop, or fix them all by hand every time something changes.
Doing this manually is slow and confusing. You might forget to start one app, or start too many copies, or not fix a broken app quickly. It's easy to make mistakes and hard to keep track.
Kubernetes helps by managing all your apps automatically. It keeps the right number of copies running, fixes problems fast, and lets you update apps without stopping everything.
ssh server1 start app1 ssh server2 start app2 ...
kubectl apply -f app-deployment.yaml kubectl get pods
With Kubernetes, you can run many apps smoothly and safely, even as they grow or change.
A company uses Kubernetes to run their online store's many small services, so customers always get fast and reliable shopping, even during busy sales.
Manual app management is slow and error-prone.
Kubernetes automates running and fixing apps.
This makes apps more reliable and easier to update.
Practice
pod in Kubernetes?Solution
Step 1: Understand Kubernetes resource types
Kubernetes groups containers into pods to run them together on the same host.Step 2: Identify the role of a pod
A pod is the smallest deployable unit that can contain one or more containers sharing resources.Final Answer:
The smallest unit that runs one or more containers together -> Option BQuick Check:
Pod = smallest container group [OK]
- Confusing pods with kubectl tool
- Thinking pods are config files
- Mixing pods with network policies
Solution
Step 1: Recall kubectl commands for listing resources
The standard command to list pods iskubectl get pods.Step 2: Check other options for correctness
kubectl list podsandkubectl show podsare invalid commands;kubectl describe pods allis incorrect syntax.Final Answer:
kubectl get pods -> Option AQuick Check:
List pods = kubectl get pods [OK]
- Using 'list' or 'show' instead of 'get'
- Adding unnecessary arguments like 'all'
- Confusing describe with get
apiVersion: v1
kind: Pod
metadata:
name: myapp-pod
spec:
containers:
- name: myapp-container
image: nginx:latest
ports:
- containerPort: 80
What will kubectl get pods myapp-pod show after creation?Solution
Step 1: Understand pod creation from YAML
The YAML defines a pod with one container running nginx, exposing port 80.Step 2: Predict pod status after creation
Immediately after creation, the pod should be running with 1 container ready, so status is Running and READY is 1/1.Final Answer:
NAME READY STATUS RESTARTS AGE myapp-pod 1/1 Running 0 0s -> Option DQuick Check:
Pod created and running = READY 1/1 Running [OK]
- Expecting Pending status without reason
- Confusing Completed with Running
- Assuming pod not found immediately after creation
kubectl apply -f pod.yaml but get an error: "error: unable to recognize \"pod.yaml\": no matches for kind \"Pod\" in version \"v2\"". What is the likely fix?Solution
Step 1: Analyze the error message
The error says no matches for kind "Pod" in version "v2", meaning the apiVersion is invalid.Step 2: Correct the apiVersion in YAML
The correct apiVersion for Pod is "v1", so changing from "v2" to "v1" fixes the issue.Final Answer:
Change apiVersion from v2 to v1 in pod.yaml -> Option CQuick Check:
apiVersion must be valid (v1 for Pod) [OK]
- Changing file extension instead of apiVersion
- Running with sudo unnecessarily
- Deleting file without fixing content
nginx:1.19 to nginx:1.21 without downtime. Which Kubernetes resource and method should you use?Solution
Step 1: Understand pod immutability and updates
Pods are immutable; you cannot update container images directly on running pods without recreating them.Step 2: Use Deployment for zero downtime updates
Deployments manage pods and allow rolling updates to change images without downtime usingkubectl set image.Final Answer:
Create a Deployment and update its image withkubectl set image-> Option AQuick Check:
Use Deployment + set image for smooth updates [OK]
- Trying to edit pod image directly
- Deleting pod causes downtime
- Scaling pod is invalid command
