Bird
0
0

Which YAML snippet correctly achieves this?

hard📝 Workflow Q8 of 15
Kubernetes - Ingress
You want to configure Traefik Ingress to route traffic to two services, 'frontend' at path '/' and 'backend' at path '/api', on the same domain 'example.com'. Which YAML snippet correctly achieves this?
A<pre>apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: multi-service-ingress annotations: kubernetes.io/ingress.class: "traefik" spec: rules: - host: example.com http: paths: - path: / pathType: Prefix backend: service: name: frontend port: number: 80 - path: /api pathType: Prefix backend: service: name: backend port: number: 8080 </pre>
B<pre>apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: multi-service-ingress spec: rules: - host: example.com http: paths: - path: /api pathType: Prefix backend: service: name: backend port: number: 8080 - path: / pathType: Prefix backend: service: name: frontend port: number: 80 </pre>
C<pre>apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: multi-service-ingress annotations: kubernetes.io/ingress.class: "nginx" spec: rules: - host: example.com http: paths: - path: / pathType: Prefix backend: service: name: frontend port: number: 80 - path: /api pathType: Prefix backend: service: name: backend port: number: 8080 </pre>
D<pre>apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: multi-service-ingress annotations: kubernetes.io/ingress.class: "traefik" spec: rules: - host: example.com http: paths: - path: /api pathType: Prefix backend: service: name: backend port: number: 8080 </pre>
Step-by-Step Solution
Solution:
  1. Step 1: Confirm ingress class annotation

    Traefik requires annotation 'kubernetes.io/ingress.class: "traefik"'.
  2. Step 2: Verify both paths are defined under the same host

    Paths '/' and '/api' must be under the same host rule.
  3. Step 3: Check backend service names and ports

    Frontend uses port 80, backend uses port 8080 as specified.
  4. Step 4: Eliminate incorrect options

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: multi-service-ingress
    spec:
      rules:
      - host: example.com
        http:
          paths:
          - path: /api
            pathType: Prefix
            backend:
              service:
                name: backend
                port:
                  number: 8080
          - path: /
            pathType: Prefix
            backend:
              service:
                name: frontend
                port:
                  number: 80
    
    lacks annotation, order of paths is irrelevant but annotation missing;
    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: multi-service-ingress
      annotations:
        kubernetes.io/ingress.class: "nginx"
    spec:
      rules:
      - host: example.com
        http:
          paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: frontend
                port:
                  number: 80
          - path: /api
            pathType: Prefix
            backend:
              service:
                name: backend
                port:
                  number: 8080
    
    uses nginx annotation;
    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: multi-service-ingress
      annotations:
        kubernetes.io/ingress.class: "traefik"
    spec:
      rules:
      - host: example.com
        http:
          paths:
          - path: /api
            pathType: Prefix
            backend:
              service:
                name: backend
                port:
                  number: 8080
    
    misses frontend path.
  5. Final Answer:

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: multi-service-ingress
      annotations:
        kubernetes.io/ingress.class: "traefik"
    spec:
      rules:
      - host: example.com
        http:
          paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: frontend
                port:
                  number: 80
          - path: /api
            pathType: Prefix
            backend:
              service:
                name: backend
                port:
                  number: 8080
    
    correctly configures Traefik ingress for both services.
  6. Quick Check:

    Annotation and both paths under one host needed [OK]
Quick Trick: Use annotation and define all paths under one host [OK]
Common Mistakes:
  • Omitting ingress class annotation
  • Using wrong ingress class for Traefik
  • Defining only one service path
  • Splitting services into multiple Ingress without proper hosts

Want More Practice?

15+ quiz questions · All difficulty levels · Free

Free Signup - Practice All Questions
More Kubernetes Quizzes