Amazon Elastic Kubernetes Service (EKS) is a managed service that makes it easy to run Kubernetes on AWS without needing to install and operate your own Kubernetes control plane.
Click to reveal answer
beginner
What is a Kubernetes pod in EKS?
A pod is the smallest deployable unit in Kubernetes. It represents one or more containers running together on the same host and sharing resources.
Click to reveal answer
beginner
Why do you need worker nodes in EKS?
Worker nodes are EC2 instances that run your containerized applications. They join the EKS cluster and execute the workloads defined in pods.
Click to reveal answer
intermediate
What is a deployment in Kubernetes on EKS?
A deployment manages a set of identical pods, ensuring the desired number of pods are running and updating them without downtime.
Click to reveal answer
intermediate
How do you update an application running on EKS without downtime?
You update the deployment with a new container image version. Kubernetes performs a rolling update, gradually replacing old pods with new ones to avoid downtime.
Click to reveal answer
What does EKS manage for you?
AYour application code
BThe Kubernetes control plane
CYour local development environment
DYour database backups
✗ Incorrect
EKS manages the Kubernetes control plane, so you don't have to set it up or maintain it yourself.
Which AWS resource runs your containers in an EKS cluster?
AS3 buckets
BLambda functions
CCloudFront distributions
DEC2 worker nodes
✗ Incorrect
EC2 worker nodes are the servers that run your container workloads in EKS.
What Kubernetes object ensures a specified number of pods are running?
ADeployment
BConfigMap
CService
DIngress
✗ Incorrect
A Deployment manages the desired number of pods and handles updates.
How does Kubernetes update pods to a new version without downtime?
ARolling update replacing pods gradually
BUpdates pods only when manually restarted
CPauses the cluster during update
DDeletes all pods and then creates new ones
✗ Incorrect
Kubernetes performs rolling updates to replace pods gradually, ensuring continuous availability.
Which file format is commonly used to define Kubernetes workloads for EKS?
AXML
BJSON
CYAML
DINI
✗ Incorrect
YAML files are commonly used to define Kubernetes objects like pods and deployments.
Explain the process of deploying a containerized application on Amazon EKS.
Think about the steps from cluster setup to running your app.
You got /5 concepts.
Describe how Kubernetes manages application updates in EKS to avoid downtime.
Focus on deployment updates and pod lifecycle.
You got /5 concepts.
Practice
(1/5)
1. What is the main purpose of Amazon EKS when deploying workloads?
easy
A. To run containerized applications using Kubernetes without managing servers
B. To store large amounts of data in the cloud
C. To create virtual machines for running applications
D. To manage user access and permissions
Solution
Step 1: Understand EKS functionality
Amazon EKS is a managed Kubernetes service that lets you run containers without managing the underlying servers.
Step 2: Compare options
Storing data relates to services like S3, creating VMs to EC2, and managing permissions to IAM--none of which is EKS's core purpose.
Final Answer:
To run containerized applications using Kubernetes without managing servers -> Option A
Quick Check:
EKS = Managed Kubernetes for containers [OK]
Hint: EKS = Kubernetes service for containers, not storage or VMs [OK]
Common Mistakes:
Confusing EKS with storage services like S3
Thinking EKS manages virtual machines directly
Mixing EKS with IAM user management
2. Which of the following is the correct command to deploy an application using a YAML file named app-deployment.yaml on EKS?
easy
A. kubectl run app-deployment.yaml
B. eksctl create app app-deployment.yaml
C. aws eks deploy app-deployment.yaml
D. kubectl apply -f app-deployment.yaml
Solution
Step 1: Identify the kubectl command for applying YAML
The correct command to deploy resources defined in a YAML file is kubectl apply -f filename.
Step 2: Evaluate other options
kubectl run app-deployment.yaml is for running individual pods, not applying YAML manifests. eksctl create app app-deployment.yaml misuses eksctl, which is primarily for EKS cluster creation. aws eks deploy app-deployment.yaml is not a valid AWS CLI command.
Final Answer:
kubectl apply -f app-deployment.yaml -> Option D
Quick Check:
Deploy YAML with kubectl apply -f [OK]
Hint: Use kubectl apply -f for YAML deployment files [OK]
Common Mistakes:
Using eksctl for direct YAML deployment
Confusing kubectl run with apply
Trying AWS CLI commands that don't exist
3. Given this YAML snippet for a Deployment on EKS:
What will be the number of running pods after applying this deployment?
medium
A. 1
B. 3
C. 0
D. Depends on the node capacity
Solution
Step 1: Read the replicas field in the Deployment spec
The YAML specifies replicas: 3, which means Kubernetes will create 3 pods for this deployment.
Step 2: Understand pod creation behavior
Unless there is a scheduling issue, Kubernetes will run 3 pods as requested.
Final Answer:
3 -> Option B
Quick Check:
replicas = number of pods running [OK]
Hint: replicas field sets pod count in Deployment spec [OK]
Common Mistakes:
Assuming only 1 pod runs by default
Thinking pods depend on node capacity without error
Confusing selector labels with pod count
4. You tried to deploy a workload on EKS using kubectl apply -f deployment.yaml, but got an error: error: unable to recognize "deployment.yaml": no matches for kind "Deploy". What is the likely cause?
medium
A. The cluster is not running
B. kubectl is not installed
C. The YAML file has a typo in the kind field; it should be 'Deployment' not 'Deploy'
D. The image name in the YAML is incorrect
Solution
Step 1: Analyze the error message
The error says no matches for kind "Deploy", which means Kubernetes does not recognize this resource kind.
Step 2: Check the YAML kind field
The correct kind for workload deployment is "Deployment", not "Deploy". This typo causes the error.
Final Answer:
The YAML file has a typo in the kind field; it should be 'Deployment' not 'Deploy' -> Option C
Quick Check:
Kind field must be exact Kubernetes resource name [OK]
Hint: Check resource kind spelling in YAML for errors [OK]
Common Mistakes:
Ignoring error details about resource kind
Assuming cluster or kubectl issues without checking YAML
Blaming image name for syntax errors
5. You want to deploy a stateless web app on EKS that automatically scales between 2 and 5 pods based on CPU usage. Which combination of Kubernetes resources should you define in your YAML files?
hard
A. A Deployment with replicas set to 2 and a Horizontal Pod Autoscaler targeting CPU usage with max replicas 5
B. A StatefulSet with replicas 5 and a LoadBalancer service
C. A DaemonSet to run pods on every node and a Cluster Autoscaler
D. A Deployment with replicas fixed at 5 and a NodePort service
Solution
Step 1: Identify resource for managing pod replicas with scaling
A Deployment manages stateless pods and can be combined with a Horizontal Pod Autoscaler (HPA) to scale pods based on CPU.
Step 2: Understand autoscaling setup
Set Deployment replicas to minimum 2, and HPA to scale up to max 5 pods based on CPU usage.
Step 3: Evaluate other options
StatefulSet is for stateful apps, DaemonSet runs pods on all nodes (not scaling pods), fixed replicas do not autoscale.
Final Answer:
A Deployment with replicas set to 2 and a Horizontal Pod Autoscaler targeting CPU usage with max replicas 5 -> Option A
Quick Check:
Deployment + HPA = autoscaling pods [OK]
Hint: Use Deployment + HPA for CPU-based pod autoscaling [OK]
Common Mistakes:
Using StatefulSet for stateless apps
Confusing DaemonSet with autoscaling pods
Setting fixed replicas without autoscaler
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.