Bird
Raised Fist0
Kubernetesdevops~10 mins

TLS termination with Ingress 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 TLS secret name in the Ingress resource.

Kubernetes
spec:
  tls:
  - hosts:
    - example.com
    secretName: [1]
Drag options to blanks, or click blank then click option'
Adefault-secret
Bingress-secret
Cmy-tls-secret
Dtls-cert
Attempts:
3 left
💡 Hint
Common Mistakes
Using a secret name that does not exist.
Leaving the secretName field empty.
2fill in blank
medium

Complete the Ingress rule to route traffic to the correct service port.

Kubernetes
spec:
  rules:
  - host: example.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: my-service
            port:
              number: [1]
Drag options to blanks, or click blank then click option'
A80
B443
C3000
D8080
Attempts:
3 left
💡 Hint
Common Mistakes
Using port 443 which is for HTTPS, but the service listens on HTTP port.
Using port 80 when the service listens on a different port.
3fill in blank
hard

Fix the error in the Ingress TLS configuration by completing the missing field.

Kubernetes
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: example-ingress
spec:
  tls:
  - hosts:
    - example.com
    [1]: my-tls-secret
Drag options to blanks, or click blank then click option'
AsecretName
Bcertificate
CtlsSecret
DkeyName
Attempts:
3 left
💡 Hint
Common Mistakes
Using incorrect field names like certificate or tlsSecret.
Omitting the secretName field.
4fill in blank
hard

Fill both blanks to complete the Ingress rule for TLS termination and backend service.

Kubernetes
spec:
  tls:
  - hosts:
    - [1]
    secretName: my-tls-secret
  rules:
  - host: [2]
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: my-service
            port:
              number: 8080
Drag options to blanks, or click blank then click option'
Aexample.com
Bmy-service
Ctest.com
Dbackend-service
Attempts:
3 left
💡 Hint
Common Mistakes
Using different host names in TLS and rules sections.
Using service names instead of host names.
5fill in blank
hard

Fill all three blanks to create a complete Ingress resource with TLS termination and backend service routing.

Kubernetes
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: [1]
spec:
  tls:
  - hosts:
    - [2]
    secretName: [3]
  rules:
  - host: [2]
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: my-service
            port:
              number: 8080
Drag options to blanks, or click blank then click option'
Aexample-ingress
Bexample.com
Cmy-tls-secret
Ddefault-ingress
Attempts:
3 left
💡 Hint
Common Mistakes
Using mismatched host names in TLS and rules.
Incorrect secret name that does not exist.
Using service name as Ingress name.

Practice

(1/5)
1. What is the main purpose of TLS termination in a Kubernetes Ingress?
easy
A. To monitor network traffic for security threats
B. To encrypt traffic between backend services
C. To generate TLS certificates automatically
D. To decrypt HTTPS traffic at the Ingress before forwarding to backend services

Solution

  1. Step 1: Understand TLS termination role

    TLS termination means decrypting encrypted HTTPS traffic at a central point.
  2. Step 2: Identify Ingress function

    Kubernetes Ingress can handle TLS termination by decrypting traffic before sending it to backend pods.
  3. Final Answer:

    To decrypt HTTPS traffic at the Ingress before forwarding to backend services -> Option D
  4. Quick Check:

    TLS termination = decrypt at Ingress [OK]
Hint: TLS termination means decrypting at Ingress, not backend [OK]
Common Mistakes:
  • Confusing TLS termination with encryption between services
  • Thinking Ingress generates certificates automatically
  • Assuming TLS termination monitors traffic
2. Which of the following is the correct way to specify TLS in a Kubernetes Ingress YAML?
easy
A. tls: - hosts: - example.com secret: tls-secret
B. tls: - hosts: - example.com secretName: tls-secret
C. tls: - host: example.com secret: tls-secret
D. tls: hosts: example.com secretName: tls-secret

Solution

  1. Step 1: Review TLS section syntax

    The correct syntax uses a list under tls with hosts as a list and secretName key.
  2. Step 2: Compare options

    tls: - hosts: - example.com secretName: tls-secret matches the correct YAML structure with 'secretName' and hosts list.
  3. Final Answer:

    tls: - hosts: - example.com secretName: tls-secret -> Option B
  4. Quick Check:

    Correct TLS YAML uses secretName and hosts list [OK]
Hint: Use 'secretName' and list under 'hosts' in tls section [OK]
Common Mistakes:
  • Using 'secret' instead of 'secretName'
  • Not using a list for hosts
  • Incorrect indentation or missing dash
3. Given this Ingress snippet:
tls:
  - hosts:
    - myapp.example.com
    secretName: myapp-tls

rules:
  - host: myapp.example.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: myapp-service
            port:
              number: 80
What happens when a user accesses https://myapp.example.com?
medium
A. The Ingress decrypts TLS and forwards HTTP traffic to myapp-service on port 80
B. The Ingress forwards encrypted TLS traffic directly to myapp-service
C. The Ingress rejects the connection because backend port is 80
D. The Ingress terminates TLS but forwards HTTPS traffic to backend

Solution

  1. Step 1: Understand TLS termination in Ingress

    The Ingress uses the secret to decrypt HTTPS traffic for the host.
  2. Step 2: Check backend service port and protocol

    The backend service listens on port 80 (HTTP), so decrypted HTTP traffic is forwarded.
  3. Final Answer:

    The Ingress decrypts TLS and forwards HTTP traffic to myapp-service on port 80 -> Option A
  4. Quick Check:

    Ingress decrypts TLS, backend gets HTTP [OK]
Hint: Ingress decrypts TLS, backend usually gets HTTP on port 80 [OK]
Common Mistakes:
  • Assuming backend receives encrypted traffic
  • Thinking backend must use HTTPS port
  • Confusing TLS termination with passthrough
4. You configured TLS in your Ingress but HTTPS requests fail with a certificate error. What is the most likely cause?
medium
A. The secret referenced in tls section does not contain a valid TLS certificate
B. The backend service is not listening on port 443
C. The Ingress controller does not support TLS termination
D. The Ingress resource is missing the rules section

Solution

  1. Step 1: Check TLS secret validity

    If the secret does not have a valid TLS cert and key, HTTPS will fail with certificate errors.
  2. Step 2: Verify other options

    Backend port or missing rules do not cause cert errors; controller usually supports TLS.
  3. Final Answer:

    The secret referenced in tls section does not contain a valid TLS certificate -> Option A
  4. Quick Check:

    Invalid TLS secret = cert error [OK]
Hint: Check TLS secret contents first for certificate errors [OK]
Common Mistakes:
  • Blaming backend port for TLS cert errors
  • Assuming Ingress controller lacks TLS support
  • Ignoring TLS secret correctness
5. You want to secure multiple domains with TLS termination using a single Ingress resource. Which approach is correct?
hard
A. Use one tls entry with multiple hosts but different secrets for each host
B. Create separate Ingress resources for each domain with their own TLS secrets
C. Add multiple entries under the tls section with hosts and a single secret containing SAN certificates
D. Configure TLS only on backend services, not on Ingress

Solution

  1. Step 1: Understand TLS with multiple hosts

    A single secret can contain a certificate with multiple Subject Alternative Names (SANs) for multiple domains.
  2. Step 2: Configure Ingress tls section

    The tls field is a list, so add multiple entries under tls, each with a hosts list and referencing the same secretName containing the SAN cert.
  3. Final Answer:

    Add multiple entries under the tls section with hosts and a single secret containing SAN certificates -> Option C
  4. Quick Check:

    Multiple tls entries share SAN secret [OK]
Hint: Multiple tls entries can share one SAN cert secret [OK]
Common Mistakes:
  • Trying different secrets for each host in one tls entry
  • Creating many Ingress resources unnecessarily
  • Not using SAN certificates for multiple domains
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