Bird
Raised Fist0
Kubernetesdevops~30 mins

Endpoints and endpoint slices in Kubernetes - Mini Project: Build & Apply

Choose your learning style10 modes available
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

  1. Step 1: Understand the role of Endpoints in Kubernetes

    Endpoints represent the IP addresses of pods that a service routes traffic to.
  2. Step 2: Differentiate Endpoints from other Kubernetes objects

    Endpoints do not manage storage, scheduling, or configuration; they only list pod IPs behind a service.
  3. Final Answer:

    To list the IP addresses of pods behind a service -> Option A
  4. 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

  1. Step 1: Identify the correct resource name for EndpointSlices

    The resource name is 'endpointslices' (all lowercase, plural).
  2. Step 2: Use kubectl get with namespace option

    To list EndpointSlices in the default namespace, use 'kubectl get endpointslices -n default'.
  3. Final Answer:

    kubectl get endpointslices -n default -> Option B
  4. 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

  1. Step 1: Analyze the 'kubectl get endpoints' output

    The output shows two IP addresses with port 80 listed under ENDPOINTS for 'webapp'.
  2. 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.
  3. 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
  4. 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

  1. Step 1: Recall when EndpointSlices are created

    EndpointSlices are created only for services with selectors that match ready pods, generating endpoints.
  2. 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.
  3. Final Answer:

    The service has no selector labels -> Option C
  4. 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

  1. 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.
  2. Step 2: Explain how EndpointSlices address this

    EndpointSlices split the endpoints into smaller chunks, reducing load on the API server and improving performance.
  3. Final Answer:

    By splitting endpoints into smaller groups to reduce load on the API server -> Option A
  4. 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 unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard