Bird
Raised Fist0
Kubernetesdevops~20 mins

Ingress vs LoadBalancer Service decision in Kubernetes - Practice Questions

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Ingress vs LoadBalancer Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
2:00remaining
When to use Ingress over LoadBalancer Service?

You have a Kubernetes cluster hosting multiple web applications. You want to expose them externally with a single IP address and route traffic based on URL paths. Which option best explains when to use an Ingress instead of a LoadBalancer Service?

AUse LoadBalancer Service when you want to route traffic based on URL paths.
BUse LoadBalancer Service to expose multiple services under a single IP address.
CUse Ingress when you need a dedicated external IP per service without routing rules.
DUse Ingress when you want to expose multiple services under one IP with path-based routing.
Attempts:
2 left
💡 Hint

Think about how many IP addresses you want to manage and if you need routing rules.

💻 Command Output
intermediate
2:00remaining
Output of kubectl get svc with LoadBalancer type

You run kubectl get svc on a service defined as type LoadBalancer. What output will you see in the EXTERNAL-IP column once the cloud provider assigns an IP?

Kubernetes
kubectl get svc my-service
A
NAME         TYPE           CLUSTER-IP      EXTERNAL-IP      PORT(S)        AGE
my-service   LoadBalancer   10.0.0.1        <pending>        80:30080/TCP  5m
B
NAME         TYPE           CLUSTER-IP      EXTERNAL-IP      PORT(S)        AGE
my-service   LoadBalancer   10.0.0.1        34.68.123.45     80:30080/TCP  5m
C
NAME         TYPE           CLUSTER-IP      EXTERNAL-IP      PORT(S)        AGE
my-service   ClusterIP      10.0.0.1        <none>           80:30080/TCP  5m
D
NAME         TYPE           CLUSTER-IP      EXTERNAL-IP      PORT(S)        AGE
my-service   NodePort       10.0.0.1        <none>           80:30080/TCP  5m
Attempts:
2 left
💡 Hint

Check the service type and what EXTERNAL-IP shows when assigned.

🔀 Workflow
advanced
3:00remaining
Steps to expose multiple services with one external IP using Ingress

Arrange the steps in the correct order to expose multiple Kubernetes services externally using a single IP with Ingress.

A1,2,3,4
B2,1,3,4
C1,3,2,4
D2,3,1,4
Attempts:
2 left
💡 Hint

Think about creating services first, then the controller, then the rules.

❓ Troubleshoot
advanced
2:00remaining
Why is my LoadBalancer service stuck in <pending> state?

You created a LoadBalancer service in your Kubernetes cluster on a cloud provider, but the EXTERNAL-IP remains <pending> indefinitely. What is the most likely cause?

AThe cloud provider does not support automatic external IP provisioning for LoadBalancer services.
BThe service selector labels do not match any pods.
CThe Ingress controller is not deployed.
DThe service type should be ClusterIP instead of LoadBalancer.
Attempts:
2 left
💡 Hint

Consider cloud provider support for LoadBalancer services.

✅ Best Practice
expert
3:00remaining
Choosing between Ingress and LoadBalancer for cost and scalability

You manage a Kubernetes cluster on a cloud provider with limited IP addresses and want to minimize costs while exposing many services externally. Which approach is best?

ADeploy multiple Ingress controllers, each with its own external IP.
BCreate a LoadBalancer service for each application to isolate traffic and IPs.
CUse one Ingress controller with multiple Ingress resources to share a single external IP.
DUse NodePort services and expose nodes directly to save IPs.
Attempts:
2 left
💡 Hint

Think about IP address usage and cost efficiency.

Practice

(1/5)
1. Which Kubernetes service type should you choose if you want to expose a single application with its own external IP address?
easy
A. LoadBalancer Service
B. Ingress Controller
C. ClusterIP Service
D. NodePort Service

Solution

  1. Step 1: Understand service types

    LoadBalancer Service exposes an app with its own external IP, making it directly accessible.
  2. Step 2: Compare with Ingress

    Ingress routes multiple apps through one IP, so it's not for single app direct exposure.
  3. Final Answer:

    LoadBalancer Service -> Option A
  4. Quick Check:

    Single app direct IP = LoadBalancer Service [OK]
Hint: Single app direct IP? Use LoadBalancer Service [OK]
Common Mistakes:
  • Confusing Ingress with LoadBalancer for single app
  • Choosing ClusterIP which is internal only
  • Selecting NodePort which exposes on node ports, not external IP
2. Which of the following is the correct way to define a LoadBalancer service in a Kubernetes YAML manifest?
easy
A. apiVersion: networking.k8s.io/v1\nkind: LoadBalancer\nmetadata:\n name: my-service\nspec:\n selector:\n app: my-app\n ports:\n - protocol: TCP\n port: 80\n targetPort: 8080
B. apiVersion: v1\nkind: Service\nmetadata:\n name: my-service\nspec:\n type: Ingress\n selector:\n app: my-app\n ports:\n - protocol: TCP\n port: 80\n targetPort: 8080
C. apiVersion: v1\nkind: Service\nmetadata:\n name: my-service\nspec:\n type: NodePort\n selector:\n app: my-app\n ports:\n - protocol: TCP\n port: 80\n targetPort: 8080
D. apiVersion: v1\nkind: Service\nmetadata:\n name: my-service\nspec:\n type: LoadBalancer\n selector:\n app: my-app\n ports:\n - protocol: TCP\n port: 80\n targetPort: 8080

Solution

  1. Step 1: Check apiVersion and kind

    Service resources use apiVersion: v1 and kind: Service.
  2. Step 2: Confirm service type

    LoadBalancer type is set under spec.type to expose external IP.
  3. Final Answer:

    YAML with kind Service and type LoadBalancer -> Option D
  4. Quick Check:

    LoadBalancer service YAML uses kind Service and type LoadBalancer [OK]
Hint: LoadBalancer service uses kind Service and type LoadBalancer [OK]
Common Mistakes:
  • Using kind LoadBalancer instead of Service
  • Setting type to Ingress which is invalid for Service
  • Confusing NodePort with LoadBalancer
3. Given this scenario: You have two apps, app1 and app2, and want to expose both externally using one IP with different paths. Which Kubernetes resource will handle this correctly?
medium
A. Two LoadBalancer Services, one for each app
B. One Ingress resource with path rules for app1 and app2
C. Two NodePort Services with different ports
D. One ClusterIP Service with multiple selectors

Solution

  1. Step 1: Understand routing multiple apps on one IP

    Ingress allows routing multiple apps through one IP using path or hostname rules.
  2. Step 2: Compare with LoadBalancer and others

    LoadBalancer exposes one app per IP; NodePort uses node ports, not one IP; ClusterIP is internal only.
  3. Final Answer:

    One Ingress resource with path rules -> Option B
  4. Quick Check:

    Multiple apps, one IP = Ingress with path rules [OK]
Hint: Multiple apps, one IP? Use Ingress with paths [OK]
Common Mistakes:
  • Using multiple LoadBalancers wasting IPs
  • Choosing NodePort which needs manual port management
  • Thinking ClusterIP exposes externally
4. You created a LoadBalancer service but it never gets an external IP assigned. What is the most likely cause?
medium
A. You forgot to set spec.type to ClusterIP
B. Ingress controller is missing
C. Your Kubernetes cluster is running on a platform without LoadBalancer support
D. You used NodePort instead of LoadBalancer

Solution

  1. Step 1: Check platform support for LoadBalancer

    Some clusters (like bare metal) do not support automatic external IP assignment for LoadBalancer services.
  2. Step 2: Verify service type and controller

    Spec.type must be LoadBalancer, not ClusterIP; Ingress controller is unrelated; NodePort is different service type.
  3. Final Answer:

    Platform lacks LoadBalancer support -> Option C
  4. Quick Check:

    No external IP = platform lacks LoadBalancer support [OK]
Hint: No external IP? Check platform LoadBalancer support [OK]
Common Mistakes:
  • Confusing ClusterIP with LoadBalancer type
  • Assuming Ingress controller assigns LoadBalancer IP
  • Mixing NodePort with LoadBalancer service
5. You want to minimize cloud costs while exposing 5 different apps externally. Which approach is best?
hard
A. Use one Ingress resource to route all 5 apps through a single LoadBalancer IP
B. Use ClusterIP services and expose each with a separate external IP
C. Use 5 NodePort services and expose nodes directly
D. Create 5 LoadBalancer services, one per app

Solution

  1. Step 1: Understand cost implications of LoadBalancer IPs

    Each LoadBalancer service usually gets a separate external IP, increasing cloud costs.
  2. Step 2: Use Ingress for cost efficiency

    Ingress lets multiple apps share one external IP with routing rules, saving costs.
  3. Final Answer:

    One Ingress resource with single LoadBalancer IP -> Option A
  4. Quick Check:

    Multiple apps, minimize cost = Ingress with one LoadBalancer IP [OK]
Hint: Multiple apps, one IP saves cost: use Ingress [OK]
Common Mistakes:
  • Creating multiple LoadBalancers wasting IPs and money
  • Using NodePort exposes nodes, less secure and complex
  • ClusterIP cannot expose apps externally
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