Bird
Raised Fist0
Kubernetesdevops~5 mins

Ingress controllers (Nginx, Traefik) in Kubernetes - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is an Ingress controller in Kubernetes?
An Ingress controller is a component that manages external access to services inside a Kubernetes cluster, usually HTTP and HTTPS traffic, by processing Ingress resource rules.
Click to reveal answer
beginner
Name two popular Ingress controllers used in Kubernetes.
Nginx and Traefik are two popular Ingress controllers used to route traffic into Kubernetes clusters.
Click to reveal answer
intermediate
How does Nginx Ingress controller handle traffic routing?
Nginx Ingress controller uses Nginx as a reverse proxy to route incoming requests based on host and path rules defined in Ingress resources.
Click to reveal answer
intermediate
What is a key feature of Traefik Ingress controller compared to Nginx?
Traefik supports dynamic configuration and automatic service discovery, making it easier to manage routes without restarting the controller.
Click to reveal answer
beginner
Why is an Ingress controller important for Kubernetes applications?
It provides a simple way to expose multiple services under the same IP address and domain, handling SSL termination and load balancing efficiently.
Click to reveal answer
What does an Ingress controller primarily manage in Kubernetes?
ACluster node health
BInternal pod communication
CExternal HTTP/HTTPS traffic routing
DStorage volumes
Which Ingress controller uses Nginx as its core proxy server?
ALinkerd
BTraefik
CIstio
DNginx Ingress controller
What feature makes Traefik Ingress controller easier to configure dynamically?
AAutomatic service discovery
BManual config reloads
CStatic configuration files
DNo SSL support
Which of these is NOT a function of an Ingress controller?
APod scheduling
BSSL termination
CLoad balancing
DPath-based routing
How does an Ingress controller help with exposing multiple services?
ABy assigning each service a unique IP
BBy routing traffic based on host and path rules
CBy creating new pods for each service
DBy managing storage volumes
Explain what an Ingress controller does in Kubernetes and why it is useful.
Think about how users access apps inside the cluster from outside.
You got /4 concepts.
    Compare Nginx and Traefik Ingress controllers in terms of configuration and features.
    Focus on how each controller updates routes and manages services.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main role of an Ingress controller like Nginx or Traefik in Kubernetes?
      easy
      A. To monitor pod resource usage
      B. To manage Kubernetes cluster nodes
      C. To store container images
      D. To route external traffic to internal Kubernetes services

      Solution

      1. Step 1: Understand Ingress controller purpose

        Ingress controllers manage how external users access services inside the Kubernetes cluster.
      2. Step 2: Identify correct function

        Nginx and Traefik route incoming traffic to the right service based on rules.
      3. Final Answer:

        To route external traffic to internal Kubernetes services -> Option D
      4. Quick Check:

        Ingress controller = traffic router [OK]
      Hint: Ingress controllers route external traffic inside Kubernetes [OK]
      Common Mistakes:
      • Confusing ingress controller with node management
      • Thinking ingress stores images
      • Mixing ingress with monitoring tools
      2. Which annotation correctly specifies the use of the Nginx ingress controller in a Kubernetes Ingress resource?
      easy
      A. kubernetes.io/ingress.class: "nginx"
      B. ingress.kubernetes.io/controller: "traefik"
      C. kubernetes.io/controller: "nginx"
      D. ingress.class: "nginx-controller"

      Solution

      1. Step 1: Recall correct annotation key for ingress class

        The standard annotation to specify ingress controller is kubernetes.io/ingress.class.
      2. Step 2: Match correct value for Nginx

        The value for Nginx ingress controller is "nginx".
      3. Final Answer:

        kubernetes.io/ingress.class: "nginx" -> Option A
      4. Quick Check:

        Annotation key = kubernetes.io/ingress.class [OK]
      Hint: Use kubernetes.io/ingress.class: "nginx" for Nginx [OK]
      Common Mistakes:
      • Using wrong annotation keys
      • Mixing Traefik and Nginx values
      • Omitting quotes around values
      3. Given this Ingress YAML snippet using Traefik:
      apiVersion: networking.k8s.io/v1
      kind: Ingress
      metadata:
        name: example-ingress
        annotations:
          kubernetes.io/ingress.class: "traefik"
      spec:
        rules:
        - host: example.com
          http:
            paths:
            - path: /app
              pathType: Prefix
              backend:
                service:
                  name: app-service
                  port:
                    number: 80
      
      What happens when a user visits http://example.com/app/page?
      medium
      A. Traffic goes to default backend ignoring /app path
      B. Traffic is blocked because pathType is incorrect
      C. Traffic is routed to the app-service on port 80
      D. Ingress controller returns 404 error

      Solution

      1. Step 1: Analyze ingress rule for host and path

        The rule matches host example.com and path prefix /app, so /app/page matches.
      2. Step 2: Check backend service and port

        Requests matching the path are sent to app-service on port 80.
      3. Final Answer:

        Traffic is routed to the app-service on port 80 -> Option C
      4. Quick Check:

        Path prefix match routes traffic correctly [OK]
      Hint: Path prefix routes all subpaths to backend service [OK]
      Common Mistakes:
      • Assuming pathType Prefix is invalid
      • Ignoring host match requirement
      • Thinking default backend handles matched paths
      4. You deployed an Nginx ingress controller but your Ingress resource is not routing traffic. Which fix is most likely correct?
      medium
      A. Add annotation kubernetes.io/ingress.class: "nginx" to the Ingress resource
      B. Change service port to 8080 in the Ingress backend
      C. Remove all annotations from the Ingress resource
      D. Restart the Kubernetes API server

      Solution

      1. Step 1: Identify cause of routing failure

        Ingress controller routes traffic only to Ingress resources with matching ingress.class annotation.
      2. Step 2: Apply correct annotation for Nginx

        Adding kubernetes.io/ingress.class: "nginx" tells Nginx controller to manage this Ingress.
      3. Final Answer:

        Add annotation kubernetes.io/ingress.class: "nginx" to the Ingress resource -> Option A
      4. Quick Check:

        Ingress class annotation enables controller routing [OK]
      Hint: Add ingress.class annotation matching controller [OK]
      Common Mistakes:
      • Changing service port without checking actual port
      • Removing annotations disables routing
      • Restarting API server does not fix ingress routing
      5. You want to expose two services, webapp and api, on the same domain using Traefik ingress. The webapp should respond on / and api on /api. Which Ingress configuration correctly achieves this?
      hard
      A. Create two Ingresses with same host but no annotations
      B. Use one Ingress with two paths: / to webapp and /api to api service, with annotation kubernetes.io/ingress.class: "traefik"
      C. Use one Ingress with only /api path to api service, and no path for webapp
      D. Create one Ingress with annotation kubernetes.io/ingress.class: "nginx" for Traefik

      Solution

      1. Step 1: Understand routing requirements

        Both services share the same domain; webapp on root path /, api on /api path.
      2. Step 2: Configure single Ingress with multiple paths and correct annotation

        One Ingress resource with two paths and annotation kubernetes.io/ingress.class: "traefik" directs traffic properly.
      3. Final Answer:

        Use one Ingress with two paths: / to webapp and /api to api service, with annotation kubernetes.io/ingress.class: "traefik" -> Option B
      4. Quick Check:

        Multiple paths in one Ingress with correct class [OK]
      Hint: One Ingress, multiple paths, correct ingress.class annotation [OK]
      Common Mistakes:
      • Using wrong ingress.class annotation for Traefik
      • Creating multiple Ingresses without annotations
      • Missing path for root service
      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