Bird
Raised Fist0
Kubernetesdevops~10 mins

Ingress controllers (Nginx, Traefik) in Kubernetes - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to specify the kind of resource for an Ingress in Kubernetes.

Kubernetes
apiVersion: networking.k8s.io/v1
kind: [1]
metadata:
  name: example-ingress
Drag options to blanks, or click blank then click option'
AIngress
BService
CPod
DDeployment
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'Service' or 'Deployment' instead of 'Ingress' for the kind field.
2fill in blank
medium

Complete the code to specify the backend service name in an Ingress rule.

Kubernetes
spec:
  rules:
  - http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: [1]
            port:
              number: 80
Drag options to blanks, or click blank then click option'
Amy-app
Bfrontend
Cbackend-pod
Dnginx-service
Attempts:
3 left
💡 Hint
Common Mistakes
Using Pod or Deployment names instead of Service names.
3fill in blank
hard

Fix the error in the annotation to enable the NGINX ingress controller to rewrite the target URL.

Kubernetes
metadata:
  annotations:
    nginx.ingress.kubernetes.io/[1]: "/newpath"
Drag options to blanks, or click blank then click option'
Arewrite_path
Brewrite-target
CrewriteTarget
Drewrite-url
Attempts:
3 left
💡 Hint
Common Mistakes
Using underscores or camelCase in annotation keys.
4fill in blank
hard

Fill both blanks to define a Traefik IngressRoute with a rule matching the host and forwarding to a service.

Kubernetes
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
  name: example-ingressroute
spec:
  entryPoints:
    - web
  routes:
  - match: Host(`[1]`)
    kind: Rule
    services:
    - name: [2]
      port: 80
Drag options to blanks, or click blank then click option'
Aexample.com
Bmy-service
Cbackend-service
Dtest.com
Attempts:
3 left
💡 Hint
Common Mistakes
Mixing up host names and service names.
5fill in blank
hard

Fill all three blanks to create an NGINX ingress rule that routes traffic to a service on a specific path with TLS enabled.

Kubernetes
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: secure-ingress
  annotations:
    nginx.ingress.kubernetes.io/[1]: "true"
spec:
  tls:
  - hosts:
    - [2]
    secretName: tls-secret
  rules:
  - host: [3]
    http:
      paths:
      - path: /secure
        pathType: Prefix
        backend:
          service:
            name: secure-service
            port:
              number: 443
Drag options to blanks, or click blank then click option'
Assl-redirect
Bsecure.example.com
Denable-tls
Attempts:
3 left
💡 Hint
Common Mistakes
Using wrong annotation keys or mismatched host names.

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