Bird
Raised Fist0
Kubernetesdevops~10 mins

kubectl exec for container access in Kubernetes - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the command to run a shell inside a pod named 'webapp'.

Kubernetes
kubectl exec -it webapp -- [1]
Drag options to blanks, or click blank then click option'
Abash
Bls
Cdocker
Dkubectl
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'ls' instead of a shell command
Trying to run 'docker' inside the pod
2fill in blank
medium

Complete the command to execute 'env' inside the pod named 'backend'.

Kubernetes
kubectl exec backend -- [1]
Drag options to blanks, or click blank then click option'
Abash
Benv
Ckubectl
Dsh
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'bash' or 'sh' when you want to run 'env' directly
3fill in blank
hard

Fix the error in the command to run a shell in the pod 'db' interactively.

Kubernetes
kubectl exec db [1] bash
Drag options to blanks, or click blank then click option'
A-it
B-i
C--it
D-ti
Attempts:
3 left
💡 Hint
Common Mistakes
Using only '-i' or '-ti' which may not work properly
Using '--it' which is invalid
4fill in blank
hard

Fill both blanks to run 'ls /var/log' inside the pod 'app' with interactive terminal.

Kubernetes
kubectl exec [1] app -- [2] /var/log
Drag options to blanks, or click blank then click option'
A-it
Bls
Ccat
D-i
Attempts:
3 left
💡 Hint
Common Mistakes
Using '-i' only or 'cat' instead of 'ls'
5fill in blank
hard

Fill all three blanks to run a shell in the container named 'nginx' inside pod 'webserver'.

Kubernetes
kubectl exec [1] webserver -c [2] -- [3]
Drag options to blanks, or click blank then click option'
A-it
Bnginx
Cbash
Dsh
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'sh' instead of 'bash', missing '-it' flags, or wrong container name

Practice

(1/5)
1. What does the kubectl exec command do in Kubernetes?
easy
A. Lists all running pods in the cluster
B. Deletes a pod from the cluster
C. Creates a new pod in the cluster
D. Runs a command inside a running container in a pod

Solution

  1. Step 1: Understand the purpose of kubectl exec

    The kubectl exec command is used to run commands inside a container that is already running inside a pod.
  2. Step 2: Compare with other kubectl commands

    Deleting pods uses kubectl delete pod, creating pods uses kubectl create, and listing pods uses kubectl get pods. These are different commands.
  3. Final Answer:

    Runs a command inside a running container in a pod -> Option D
  4. Quick Check:

    kubectl exec = run command inside container [OK]
Hint: kubectl exec runs commands inside containers [OK]
Common Mistakes:
  • Confusing exec with pod creation or deletion
  • Thinking exec lists pods
  • Using exec without specifying pod
2. Which of the following is the correct syntax to start an interactive shell inside a container named web in pod frontend-pod?
easy
A. kubectl exec -it frontend-pod -c web -- /bin/bash
B. kubectl exec frontend-pod -c web -it /bin/bash
C. kubectl exec -c web frontend-pod /bin/bash -it
D. kubectl exec frontend-pod /bin/bash -c web -it

Solution

  1. Step 1: Recall correct kubectl exec syntax

    The correct syntax for interactive shell is: kubectl exec -it POD_NAME -c CONTAINER_NAME -- /bin/bash. The -it flags come before the pod name, and -- separates command from options.
  2. Step 2: Analyze each option

    kubectl exec -it frontend-pod -c web -- /bin/bash matches the correct syntax exactly. The other options have misplaced flags or arguments causing syntax errors.
  3. Final Answer:

    kubectl exec -it frontend-pod -c web -- /bin/bash -> Option A
  4. Quick Check:

    Correct flag order and -- separator = kubectl exec -it frontend-pod -c web -- /bin/bash [OK]
Hint: Use -it before pod name and -- before command [OK]
Common Mistakes:
  • Placing -it after pod name
  • Omitting -- before command
  • Misordering container flag -c
3. What will be the output of this command if the pod db-pod has a container named mysql running and you execute:
kubectl exec db-pod -c mysql -- ls /var/lib/mysql?
medium
A. Lists files and directories inside /var/lib/mysql in the mysql container
B. Shows an error: container mysql not found
C. Lists files in the host machine's /var/lib/mysql directory
D. Starts an interactive shell inside the mysql container

Solution

  1. Step 1: Understand the command

    The command runs ls /var/lib/mysql inside the mysql container of the db-pod pod. It lists files in that directory inside the container.
  2. Step 2: Eliminate wrong options

    Shows an error: container mysql not found is wrong because the container exists. Lists files in the host machine's /var/lib/mysql directory is wrong because kubectl exec runs inside container, not host. Starts an interactive shell inside the mysql container is wrong because no shell is started; only ls runs.
  3. Final Answer:

    Lists files and directories inside /var/lib/mysql in the mysql container -> Option A
  4. Quick Check:

    kubectl exec runs command inside container = Lists files and directories inside /var/lib/mysql in the mysql container [OK]
Hint: kubectl exec runs command inside container, not host [OK]
Common Mistakes:
  • Thinking command runs on host machine
  • Confusing exec with shell start
  • Assuming container does not exist
4. You run kubectl exec -it mypod -- /bin/sh but get the error: error: a container name must be specified for pod mypod, choose one of: [app backend]. What is the fix?
medium
A. Restart the pod before running exec
B. Add -c app or -c backend to specify the container
C. Remove -it flags to fix the error
D. Use kubectl exec mypod /bin/sh without flags

Solution

  1. Step 1: Understand the error message

    The error says multiple containers exist in pod mypod, so you must specify which container to exec into using -c.
  2. Step 2: Apply the fix

    Add -c app or -c backend to the command to specify the container name explicitly.
  3. Final Answer:

    Add -c app or -c backend to specify the container -> Option B
  4. Quick Check:

    Multiple containers need -c flag = Add -c app or -c backend to specify the container [OK]
Hint: Specify container with -c when pod has multiple containers [OK]
Common Mistakes:
  • Ignoring container name when multiple containers exist
  • Removing -it flags unnecessarily
  • Restarting pod without reason
5. You want to run an interactive bash shell inside the container named worker in pod job-pod. The pod has two containers: worker and logger. Which command correctly achieves this?
hard
A. kubectl exec job-pod -c worker -it /bin/bash
B. kubectl exec -it job-pod /bin/bash -c worker
C. kubectl exec -it job-pod -c worker -- /bin/bash
D. kubectl exec job-pod -it -c worker /bin/bash

Solution

  1. Step 1: Recall correct syntax for interactive exec with container

    The correct syntax is kubectl exec -it POD_NAME -c CONTAINER_NAME -- /bin/bash. The -it flags come before pod name, -c specifies container, and -- separates command.
  2. Step 2: Check options for correct order and flags

    kubectl exec -it job-pod -c worker -- /bin/bash matches the correct syntax exactly. The other options have misplaced flags or missing --, causing errors.
  3. Final Answer:

    kubectl exec -it job-pod -c worker -- /bin/bash -> Option C
  4. Quick Check:

    Correct flag order and -- separator = kubectl exec -it job-pod -c worker -- /bin/bash [OK]
Hint: Use -it before pod, -c container, and -- before command [OK]
Common Mistakes:
  • Misordering flags -it and -c
  • Omitting -- before command
  • Not specifying container when multiple exist
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