Bird
Raised Fist0
Kubernetesdevops~20 mins

Pod definition in YAML in Kubernetes - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Pod YAML Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
💻 Command Output
intermediate
2:00remaining
Output of a simple Pod creation command
What is the output when you run kubectl apply -f pod.yaml with the following Pod definition?
Kubernetes
apiVersion: v1
kind: Pod
metadata:
  name: test-pod
spec:
  containers:
  - name: nginx
    image: nginx:latest
Apod/test-pod created
Bpod/test-pod configured
Cerror: unable to recognize "pod.yaml": no matches for kind "Pod" in version "v1"
Derror: unable to read file: pod.yaml not found
Attempts:
2 left
💡 Hint
Check the output message after applying a valid Pod YAML file.
🧠 Conceptual
intermediate
2:00remaining
Understanding Pod restart policy
Given this Pod YAML snippet, what is the effect of the restartPolicy: Never setting?
Kubernetes
apiVersion: v1
kind: Pod
metadata:
  name: example-pod
spec:
  restartPolicy: Never
  containers:
  - name: busybox
    image: busybox
    command: ['sleep', '3600']
AThe Pod will restart the container only on failure exit codes.
BThe Pod will never restart the container if it exits or crashes.
CThe Pod will restart the container only if manually triggered.
DThe Pod will always restart the container regardless of exit status.
Attempts:
2 left
💡 Hint
Think about what 'Never' means for restart behavior.
❓ Configuration
advanced
2:00remaining
Correct YAML for multiple containers in a Pod
Which YAML snippet correctly defines a Pod with two containers named app and sidecar?
A
apiVersion: v1
kind: Pod
metadata:
  name: multi-container-pod
spec:
  containers:
  - name: app
    image: app-image
  - name: sidecar
    image: sidecar-image
B
apiVersion: v1
kind: Pod
metadata:
  name: multi-container-pod
spec:
  container:
  - name: app
    image: app-image
  - name: sidecar
    image: sidecar-image
C
apiVersion: v1
kind: Pod
metadata:
  name: multi-container-pod
spec:
  containers:
    name: app
    image: app-image
    name: sidecar
    image: sidecar-image
D
apiVersion: v1
kind: Pod
metadata:
  name: multi-container-pod
spec:
  containers:
  - app
    image: app-image
  - sidecar
    image: sidecar-image
Attempts:
2 left
💡 Hint
Check the key name for the list of containers and the indentation.
❓ Troubleshoot
advanced
2:00remaining
Diagnosing Pod creation failure due to missing fields
You try to create a Pod with this YAML but get an error. What is the most likely cause?
Kubernetes
apiVersion: v1
kind: Pod
metadata:
  name: incomplete-pod
spec:
  containers:
  - image: nginx
AMissing kind field causes the error.
BMissing apiVersion causes the error.
CMissing container name under containers list causes validation error.
DMissing metadata name causes the error.
Attempts:
2 left
💡 Hint
Check the required fields inside each container definition.
✅ Best Practice
expert
2:00remaining
Best practice for labeling Pods in YAML
Which YAML snippet follows best practices for labeling a Pod to enable easy selection and management?
A
apiVersion: v1
kind: Pod
metadata:
  name: labeled-pod
  labels:
    app: myapp
spec:
  containers:
  - name: app
    image: myapp-image
B
apiVersion: v1
kind: Pod
metadata:
  name: labeled-pod
  labels:
    myapp: app
    prod: true
spec:
  containers:
  - name: app
    image: myapp-image
C
apiVersion: v1
kind: Pod
metadata:
  name: labeled-pod
spec:
  labels:
    app: myapp
    environment: production
  containers:
  - name: app
    image: myapp-image
D
apiVersion: v1
kind: Pod
metadata:
  name: labeled-pod
  labels:
    app: myapp
    environment: production
spec:
  containers:
  - name: app
    image: myapp-image
Attempts:
2 left
💡 Hint
Labels should be under metadata and use clear key names.

Practice

(1/5)
1. What is the purpose of the spec section in a Kubernetes Pod YAML definition?
easy
A. It declares the Kubernetes API version used
B. It defines the containers and their settings inside the Pod
C. It specifies the Pod's name and labels
D. It sets the namespace for the Pod

Solution

  1. Step 1: Understand the YAML structure

    The spec section in a Pod YAML defines the desired state, including containers and their configurations.
  2. Step 2: Identify the role of other sections

    metadata holds name and labels, apiVersion declares the API version, and namespace is set elsewhere.
  3. Final Answer:

    It defines the containers and their settings inside the Pod -> Option B
  4. Quick Check:

    Pod spec = container details [OK]
Hint: Remember: spec section = container setup inside Pod [OK]
Common Mistakes:
  • Confusing metadata with spec
  • Thinking apiVersion defines containers
  • Mixing namespace with spec
2. Which of the following is the correct way to specify a container image in a Pod YAML?
easy
A. containers: - name: myapp image: myimage:latest
B. containers: - imageName: myimage:latest containerName: myapp
C. container: name: myapp image: myimage:latest
D. containers: - myapp: image: myimage:latest

Solution

  1. Step 1: Check correct YAML keys for containers

    The correct keys are containers (list), each with name and image.
  2. Step 2: Validate each option's syntax

    containers: - name: myapp image: myimage:latest uses correct keys and indentation. Others use wrong keys or structure.
  3. Final Answer:

    containers: - name: myapp image: myimage:latest -> Option A
  4. Quick Check:

    Container image key = image [OK]
Hint: Use 'name' and 'image' keys inside 'containers' list [OK]
Common Mistakes:
  • Using wrong keys like imageName or containerName
  • Incorrect indentation or singular 'container'
  • Nesting keys incorrectly under container name
3. Given this Pod YAML snippet, what will be the container's name and image?
spec:
  containers:
  - name: frontend
    image: nginx:1.21
medium
A. Container name is 'nginx' and image is 'frontend:1.21'
B. Container name is 'frontend' and image is 'nginx:latest'
C. Container name is 'frontend' and image is 'nginx:1.21'
D. Container name and image are not defined

Solution

  1. Step 1: Read the container name

    The YAML shows name: frontend, so container name is 'frontend'.
  2. Step 2: Read the container image

    The image is nginx:1.21, exactly as specified.
  3. Final Answer:

    Container name is 'frontend' and image is 'nginx:1.21' -> Option C
  4. Quick Check:

    Name and image match YAML exactly [OK]
Hint: Match keys 'name' and 'image' exactly as YAML shows [OK]
Common Mistakes:
  • Swapping name and image values
  • Assuming default image tag 'latest'
  • Ignoring YAML indentation and keys
4. Identify the error in this Pod YAML snippet:
apiVersion: v1
kind: Pod
metadata:
  name: test-pod
spec:
  containers:
  - name: app
    image: nginx
  - name: app
    image: redis
medium
A. Duplicate container names are not allowed in a Pod
B. Missing apiVersion field
C. Incorrect indentation under containers
D. Pod kind should be Deployment

Solution

  1. Step 1: Check container names uniqueness

    Both containers have the name 'app', which is not allowed because container names must be unique within a Pod.
  2. Step 2: Verify other fields

    apiVersion and kind are present and indentation is correct. Pod kind is valid.
  3. Final Answer:

    Duplicate container names are not allowed in a Pod -> Option A
  4. Quick Check:

    Unique container names required [OK]
Hint: Check container names are unique inside Pod spec [OK]
Common Mistakes:
  • Ignoring duplicate container names
  • Confusing Pod with Deployment kind
  • Misreading indentation as error
5. You want to create a Pod with two containers: one running nginx and another running redis. Which YAML snippet correctly defines this Pod?
hard
A. apiVersion: v1 kind: Pod metadata: name: multi-container-pod spec: containers: - nginx - redis
B. apiVersion: v1 kind: Pod metadata: name: multi-container-pod spec: container: - name: nginx image: nginx - name: redis image: redis
C. apiVersion: v1 kind: Pod metadata: name: multi-container-pod spec: containers: name: nginx image: nginx name: redis image: redis
D. apiVersion: v1 kind: Pod metadata: name: multi-container-pod spec: containers: - name: nginx-container image: nginx - name: redis-container image: redis

Solution

  1. Step 1: Verify correct key for multiple containers

    The key must be containers (plural) with a list of container objects.
  2. Step 2: Check each container has unique name and image

    apiVersion: v1 kind: Pod metadata: name: multi-container-pod spec: containers: - name: nginx-container image: nginx - name: redis-container image: redis correctly lists two containers with unique names and images. Other options have syntax errors or wrong keys.
  3. Final Answer:

    apiVersion: v1 kind: Pod metadata: name: multi-container-pod spec: containers: - name: nginx-container image: nginx - name: redis-container image: redis -> Option D
  4. Quick Check:

    Use 'containers' list with unique names [OK]
Hint: Use 'containers' plural with list of named containers [OK]
Common Mistakes:
  • Using singular 'container' instead of 'containers'
  • Not giving unique names to containers
  • Incorrect YAML list syntax
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