Bird
Raised Fist0
Kubernetesdevops~5 mins

Using labels for service routing in Kubernetes - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a label in Kubernetes?
A label is a key-value pair attached to Kubernetes objects like pods. It helps identify and organize resources for selection and routing.
Click to reveal answer
beginner
How do labels help with service routing in Kubernetes?
Labels allow services to select and route traffic only to pods with matching labels, enabling targeted communication between components.
Click to reveal answer
beginner
What is a selector in a Kubernetes Service?
A selector is a query that matches pods with specific labels. The service routes traffic to all pods matching this selector.
Click to reveal answer
beginner
Example: How to label a pod with app=frontend?
In the pod YAML, under metadata, add:
labels:
app: frontend
Click to reveal answer
beginner
How does a Kubernetes Service use labels to route traffic?
The service uses a selector to find pods with matching labels and sends network requests only to those pods.
Click to reveal answer
What does a Kubernetes Service selector do?
ACreates new pods automatically
BDeletes pods without labels
CMatches pods with specific labels to route traffic
DChanges pod labels dynamically
Which of these is a valid label format?
Aapp/frontend
Bapp frontend
Capp=frontend
Dapp:frontend
If a service selector is 'app=backend', which pods receive traffic?
AAll pods in the cluster
BPods labeled with app=backend
CPods without labels
DPods labeled with app=frontend
Can a pod have multiple labels?
AYes, pods can have many labels
BNo, only one label is allowed
COnly if the pod is running
DOnly for system pods
What happens if no pods match a service selector?
AThe service has no endpoints and traffic fails
BThe service routes traffic to all pods
CThe service creates new pods automatically
DThe service ignores the selector
Explain how labels and selectors work together to route traffic in Kubernetes services.
Think about how a service finds the right pods to send requests.
You got /4 concepts.
    Describe how you would label a pod and create a service to route traffic to it.
    Consider the YAML structure for both pod and service.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the main purpose of using labels in Kubernetes service routing?
      easy
      A. To connect services to the correct pods
      B. To store pod logs
      C. To define pod resource limits
      D. To schedule pods on specific nodes

      Solution

      1. Step 1: Understand labels role

        Labels are key-value pairs attached to pods to identify them.
      2. Step 2: Connect services using selectors

        Services use selectors to find pods with matching labels for routing traffic.
      3. Final Answer:

        To connect services to the correct pods -> Option A
      4. Quick Check:

        Labels link services and pods = D [OK]
      Hint: Labels identify pods for services to route traffic [OK]
      Common Mistakes:
      • Confusing labels with resource limits
      • Thinking labels store logs
      • Assuming labels control pod scheduling
      2. Which of the following is the correct syntax to select pods with label app=frontend in a Service YAML?
      easy
      A. selector: app: frontend
      B. selector: app = frontend
      C. selector: app: 'frontend' version: 'v1'
      D. selector: - app: frontend

      Solution

      1. Step 1: Check YAML selector syntax

        Selectors use key: value pairs without '=' sign or list format.
      2. Step 2: Validate options

        selector: app: frontend uses correct key: value syntax. selector: app = frontend uses '=' which is invalid. selector: app: 'frontend' version: 'v1' adds extra label, which is valid but not asked. selector: - app: frontend uses list format which is invalid for selector.
      3. Final Answer:

        selector: app: frontend -> Option A
      4. Quick Check:

        Selector uses key: value, no '=' or list [OK]
      Hint: Use key: value pairs for selectors, no '=' or lists [OK]
      Common Mistakes:
      • Using '=' instead of ':' in YAML
      • Writing selectors as lists
      • Adding extra labels not requested
      3. Given this Service YAML snippet:
      selector:
        app: backend
        tier: api

      Which pods will this Service route traffic to?
      medium
      A. Pods labeled only with app=backend
      B. Pods labeled with either app=backend or tier=api
      C. Pods labeled with both app=backend and tier=api
      D. Pods labeled only with tier=api

      Solution

      1. Step 1: Understand selector matching

        Selectors match pods that have all specified labels (AND logic).
      2. Step 2: Apply to given labels

        Pods must have both app=backend and tier=api labels to be selected.
      3. Final Answer:

        Pods labeled with both app=backend and tier=api -> Option C
      4. Quick Check:

        Selector matches all labels (AND) = A [OK]
      Hint: Selectors match pods with all labels, not just one [OK]
      Common Mistakes:
      • Assuming selector matches any label (OR logic)
      • Ignoring one of the labels in selector
      • Confusing selector with pod annotations
      4. You created a Service with selector:
      selector:
        app: web
        env: prod

      But traffic is not reaching pods. What is the most likely cause?
      medium
      A. Pods are not running on the same node
      B. Service type is not LoadBalancer
      C. Service port is missing
      D. Pods do not have both labels app=web and env=prod

      Solution

      1. Step 1: Check label matching

        Service routes only to pods matching all selector labels.
      2. Step 2: Identify common mismatch

        If pods lack either label, service finds no endpoints, so no traffic flows.
      3. Final Answer:

        Pods do not have both labels app=web and env=prod -> Option D
      4. Quick Check:

        Missing labels cause no pod selection = C [OK]
      Hint: Verify pods have all selector labels to receive traffic [OK]
      Common Mistakes:
      • Blaming service type instead of labels
      • Assuming node location affects routing
      • Ignoring missing service port errors
      5. You want to update your app without downtime. You have pods labeled app=frontend, version=v1. You deploy new pods with app=frontend, version=v2. How should you configure the Service selector to route traffic to both versions during rollout?
      hard
      A. Use selector: version=v2 only
      B. Use selector: app=frontend only
      C. Use selector: app=frontend and version=v2
      D. Use selector: app=frontend and version=v1

      Solution

      1. Step 1: Understand rolling update strategy

        To route traffic to both old and new pods, selector must match both versions.
      2. Step 2: Choose selector that matches both versions

        Selector with only app=frontend matches all pods regardless of version label.
      3. Step 3: Avoid version-specific selectors

        Selectors with version=v1 or version=v2 exclude the other version, causing downtime.
      4. Final Answer:

        Use selector: app=frontend only -> Option B
      5. Quick Check:

        Selector matches all versions for smooth rollout = B [OK]
      Hint: Use broad selector to include all versions during rollout [OK]
      Common Mistakes:
      • Selecting only new version pods causing downtime
      • Selecting only old version pods ignoring new pods
      • Using multiple selectors that exclude pods
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard