Bird
Raised Fist0
Microservicessystem_design~5 mins

Kubernetes basics review in Microservices - Cheat Sheet & Quick Revision

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What is Kubernetes?
Kubernetes is a system that helps you run and manage many containers across many computers easily.
Click to reveal answer
beginner
What is a Pod in Kubernetes?
A Pod is the smallest unit in Kubernetes. It holds one or more containers that share storage and network.
Click to reveal answer
beginner
What does a Kubernetes Service do?
A Service lets you access a group of Pods as one, giving a stable way to reach them even if Pods change.
Click to reveal answer
intermediate
What is a Deployment in Kubernetes?
A Deployment manages Pods and makes sure the right number of them are running, updating them smoothly when needed.
Click to reveal answer
intermediate
Why use Kubernetes for microservices?
Kubernetes helps run many small services reliably, handles failures, and makes updating easy without stopping the whole app.
Click to reveal answer
What is the smallest deployable unit in Kubernetes?
APod
BService
CNode
DDeployment
Which Kubernetes object provides a stable IP and DNS name to access Pods?
APod
BConfigMap
CService
DNamespace
What does a Deployment help you do?
AStore data persistently
BManage and update Pods
CControl user access
DMonitor cluster health
How does Kubernetes help with microservices?
ABy managing many small services reliably
BBy combining all services into one container
CBy replacing containers with virtual machines
DBy removing the need for networking
What is a Node in Kubernetes?
AA storage volume
BA container inside a Pod
CA network service
DA machine that runs Pods
Explain what a Pod is and why it is important in Kubernetes.
Think of a Pod as a small box holding containers that work together.
You got /4 concepts.
    Describe how Kubernetes Services help in accessing microservices.
    Services act like a phone number that always reaches the right person.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is a pod in Kubernetes?
      easy
      A. A command-line tool to manage Kubernetes
      B. The smallest unit that runs one or more containers together
      C. A configuration file format used in Kubernetes
      D. A network policy to control traffic

      Solution

      1. Step 1: Understand Kubernetes resource types

        Kubernetes groups containers into pods to run them together on the same host.
      2. Step 2: Identify the role of a pod

        A pod is the smallest deployable unit that can contain one or more containers sharing resources.
      3. Final Answer:

        The smallest unit that runs one or more containers together -> Option B
      4. Quick Check:

        Pod = smallest container group [OK]
      Hint: Pods group containers; smallest deployable unit [OK]
      Common Mistakes:
      • Confusing pods with kubectl tool
      • Thinking pods are config files
      • Mixing pods with network policies
      2. Which command correctly lists all pods in the default namespace?
      easy
      A. kubectl get pods
      B. kubectl list pods
      C. kubectl show pods
      D. kubectl describe pods all

      Solution

      1. Step 1: Recall kubectl commands for listing resources

        The standard command to list pods is kubectl get pods.
      2. Step 2: Check other options for correctness

        kubectl list pods and kubectl show pods are invalid commands; kubectl describe pods all is incorrect syntax.
      3. Final Answer:

        kubectl get pods -> Option A
      4. Quick Check:

        List pods = kubectl get pods [OK]
      Hint: Use 'kubectl get pods' to list pods [OK]
      Common Mistakes:
      • Using 'list' or 'show' instead of 'get'
      • Adding unnecessary arguments like 'all'
      • Confusing describe with get
      3. Given this YAML snippet for a pod:
      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?
      medium
      A. NAME READY STATUS RESTARTS AGE myapp-pod 1/1 Completed 0 0s
      B. Error: pod not found
      C. NAME READY STATUS RESTARTS AGE myapp-pod 0/1 Pending 0 0s
      D. NAME READY STATUS RESTARTS AGE myapp-pod 1/1 Running 0 0s

      Solution

      1. Step 1: Understand pod creation from YAML

        The YAML defines a pod with one container running nginx, exposing port 80.
      2. 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.
      3. Final Answer:

        NAME READY STATUS RESTARTS AGE myapp-pod 1/1 Running 0 0s -> Option D
      4. Quick Check:

        Pod created and running = READY 1/1 Running [OK]
      Hint: New pod with valid image shows READY 1/1 Running [OK]
      Common Mistakes:
      • Expecting Pending status without reason
      • Confusing Completed with Running
      • Assuming pod not found immediately after creation
      4. You run 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?
      medium
      A. Delete the pod.yaml and recreate it
      B. Rename the file to pod.yml
      C. Change apiVersion from v2 to v1 in pod.yaml
      D. Run the command with sudo

      Solution

      1. Step 1: Analyze the error message

        The error says no matches for kind "Pod" in version "v2", meaning the apiVersion is invalid.
      2. Step 2: Correct the apiVersion in YAML

        The correct apiVersion for Pod is "v1", so changing from "v2" to "v1" fixes the issue.
      3. Final Answer:

        Change apiVersion from v2 to v1 in pod.yaml -> Option C
      4. Quick Check:

        apiVersion must be valid (v1 for Pod) [OK]
      Hint: Check apiVersion spelling and value in YAML [OK]
      Common Mistakes:
      • Changing file extension instead of apiVersion
      • Running with sudo unnecessarily
      • Deleting file without fixing content
      5. You want to update a running pod's container image from nginx:1.19 to nginx:1.21 without downtime. Which Kubernetes resource and method should you use?
      hard
      A. Create a Deployment and update its image with kubectl set image
      B. Directly edit the pod with kubectl edit pod to change the image
      C. Delete the pod and create a new one with the new image
      D. Use kubectl scale pod to increase replicas

      Solution

      1. Step 1: Understand pod immutability and updates

        Pods are immutable; you cannot update container images directly on running pods without recreating them.
      2. Step 2: Use Deployment for zero downtime updates

        Deployments manage pods and allow rolling updates to change images without downtime using kubectl set image.
      3. Final Answer:

        Create a Deployment and update its image with kubectl set image -> Option A
      4. Quick Check:

        Use Deployment + set image for smooth updates [OK]
      Hint: Use Deployment and set image for zero downtime update [OK]
      Common Mistakes:
      • Trying to edit pod image directly
      • Deleting pod causes downtime
      • Scaling pod is invalid command