Working with Kubernetes Endpoints and EndpointSlices
📖 Scenario: You are managing a Kubernetes cluster where you want to understand how services connect to pods. Kubernetes uses Endpoints and EndpointSlices to track which pods are behind a service.In this project, you will create a simple service and then explore its endpoints and endpoint slices to see how Kubernetes tracks pod IPs.
🎯 Goal: Learn how to list and inspect Kubernetes Endpoints and EndpointSlices for a service to understand pod connectivity.
📋 What You'll Learn
Use kubectl commands to create and inspect resources
Create a simple service and deployment
List endpoints and endpoint slices for the service
Understand the output showing pod IP addresses
💡 Why This Matters
🌍 Real World
Kubernetes uses Endpoints and EndpointSlices to keep track of which pods are available for a service. This helps route traffic correctly inside the cluster.
💼 Career
Understanding Endpoints and EndpointSlices is important for Kubernetes administrators and DevOps engineers to troubleshoot service connectivity and optimize cluster networking.
Progress0 / 4 steps
1
Create a Deployment with 2 Pods
Use kubectl create deployment to create a deployment named myapp with image nginx and scale it to 2 replicas using kubectl scale.
Kubernetes
Hint
First create the deployment, then scale it to 2 pods.
2
Create a Service to Expose the Deployment
Create a service named myapp-service of type ClusterIP that targets the deployment myapp on port 80 using kubectl expose deployment.
Kubernetes
Hint
Use kubectl expose deployment with the correct name, port, and type.
3
List Endpoints for the Service
Use kubectl get endpoints myapp-service to list the endpoints showing pod IPs behind the service.
Kubernetes
Hint
This command shows the IP addresses of pods behind the service.
4
List EndpointSlices for the Service
Use kubectl get endpointslices -l kubernetes.io/service-name=myapp-service to list the EndpointSlices associated with the service.
Kubernetes
Hint
Use the label selector to find EndpointSlices for the service.
Practice
(1/5)
1. What is the primary purpose of Kubernetes Endpoints?
easy
A. To list the IP addresses of pods behind a service
B. To store configuration data for pods
C. To manage persistent storage volumes
D. To schedule pods on nodes
Solution
Step 1: Understand the role of Endpoints in Kubernetes
Endpoints represent the IP addresses of pods that a service routes traffic to.
Step 2: Differentiate Endpoints from other Kubernetes objects
Endpoints do not manage storage, scheduling, or configuration; they only list pod IPs behind a service.
Final Answer:
To list the IP addresses of pods behind a service -> Option A
Quick Check:
Endpoints = Pod IP list [OK]
Hint: Endpoints show pod IPs for services [OK]
Common Mistakes:
Confusing Endpoints with ConfigMaps
Thinking Endpoints manage storage
Assuming Endpoints schedule pods
2. Which kubectl command correctly lists EndpointSlices in the default namespace?
easy
A. kubectl describe endpointslices
B. kubectl get endpointslices -n default
C. kubectl get endpointslices
D. kubectl get endpoints -n default
Solution
Step 1: Identify the correct resource name for EndpointSlices
The resource name is 'endpointslices' (all lowercase, plural).
Step 2: Use kubectl get with namespace option
To list EndpointSlices in the default namespace, use 'kubectl get endpointslices -n default'.
Final Answer:
kubectl get endpointslices -n default -> Option B
Quick Check:
Correct resource and namespace flag = kubectl get endpointslices -n default [OK]
Hint: Use 'kubectl get endpointslices -n default' to list EndpointSlices [OK]
Common Mistakes:
Omitting the namespace flag when needed
Using 'endpoints' instead of 'endpointslices'
Using describe instead of get for listing
3. Given the following command output, what does it indicate about the service 'webapp'?
kubectl get endpoints webapp
NAME ENDPOINTS AGE
webapp 10.1.2.3:80,10.1.2.4:80 5m
medium
A. The service 'webapp' is using EndpointSlices instead of Endpoints
B. The service 'webapp' is not connected to any pods
C. The service 'webapp' has pods but no ports exposed
D. The service 'webapp' has two pods with IPs 10.1.2.3 and 10.1.2.4 serving on port 80
Solution
Step 1: Analyze the 'kubectl get endpoints' output
The output shows two IP addresses with port 80 listed under ENDPOINTS for 'webapp'.
Step 2: Interpret the meaning of listed endpoints
This means the service routes traffic to two pods at IPs 10.1.2.3 and 10.1.2.4 on port 80.
Final Answer:
The service 'webapp' has two pods with IPs 10.1.2.3 and 10.1.2.4 serving on port 80 -> Option D
Quick Check:
Endpoints list pod IPs and ports = The service 'webapp' has two pods with IPs 10.1.2.3 and 10.1.2.4 serving on port 80 [OK]
Hint: Endpoints output shows pod IPs and ports behind service [OK]
Common Mistakes:
Assuming no pods are connected when endpoints are listed
Confusing EndpointSlices with Endpoints output
Ignoring port numbers in the output
4. You run kubectl get endpointslices but see no output, even though your service has pods running. What is a likely cause?
medium
A. Pods are not running on any node
B. EndpointSlices feature is disabled in the cluster
C. The service has no selector labels
D. kubectl command is misspelled
Solution
Step 1: Recall when EndpointSlices are created
EndpointSlices are created only for services with selectors that match ready pods, generating endpoints.
Step 2: Identify cause of empty output
No selector labels means no automatic endpoints/EndpointSlices, resulting in no output (empty list). Feature disabled would error, not empty list.
Final Answer:
The service has no selector labels -> Option C
Quick Check:
No service selector = no EndpointSlices [OK]
Hint: No EndpointSlices despite pods? Check service selector matches pod labels [OK]
Common Mistakes:
Assuming feature disabled (causes API error, not empty list)
Thinking pods not running (contradicts premise)
Blaming kubectl misspelling
5. How do EndpointSlices improve Kubernetes service scalability compared to Endpoints?
hard
A. By splitting endpoints into smaller groups to reduce load on the API server
B. By caching pod IPs locally on each node
C. By replacing services with direct pod IP access
D. By encrypting endpoint data for security
Solution
Step 1: Understand the limitation of Endpoints with many pods
Endpoints list all pod IPs in one object, which can become large and heavy to manage.
Step 2: Explain how EndpointSlices address this
EndpointSlices split the endpoints into smaller chunks, reducing load on the API server and improving performance.
Final Answer:
By splitting endpoints into smaller groups to reduce load on the API server -> Option A
Quick Check:
EndpointSlices split endpoints for scalability [OK]
Hint: EndpointSlices split endpoints to reduce API load [OK]
Common Mistakes:
Thinking EndpointSlices cache IPs locally
Believing EndpointSlices replace services
Assuming EndpointSlices encrypt data
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.