Bird
Raised Fist0
Kubernetesdevops~5 mins

Ingress annotations for customization in Kubernetes - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the purpose of annotations in a Kubernetes Ingress resource?
Annotations add extra settings or instructions to customize how the Ingress controller handles traffic, like enabling SSL or setting timeouts.
Click to reveal answer
beginner
How do you specify an annotation in a Kubernetes Ingress YAML file?
Under the metadata section, use the 'annotations' field with key-value pairs, for example:
metadata:
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
Click to reveal answer
beginner
Name one common annotation used to enable HTTPS redirect in NGINX Ingress.
The annotation 'nginx.ingress.kubernetes.io/ssl-redirect: "true"' forces HTTP requests to redirect to HTTPS.
Click to reveal answer
intermediate
What does the annotation 'nginx.ingress.kubernetes.io/proxy-read-timeout' control?
It sets how long the NGINX Ingress controller waits for a response from the backend service before timing out.
Click to reveal answer
advanced
Why might you use the annotation 'nginx.ingress.kubernetes.io/configuration-snippet'?
To add custom NGINX configuration snippets directly into the Ingress, allowing advanced tweaks not covered by standard annotations.
Click to reveal answer
Where do you place annotations in a Kubernetes Ingress manifest?
AUnder spec
BUnder status
CUnder metadata
DUnder containers
Which annotation enables HTTPS redirect in NGINX Ingress?
Anginx.ingress.kubernetes.io/proxy-read-timeout: "30"
Bnginx.ingress.kubernetes.io/rewrite-target: /
Cnginx.ingress.kubernetes.io/configuration-snippet
Dnginx.ingress.kubernetes.io/ssl-redirect: "true"
What does 'nginx.ingress.kubernetes.io/rewrite-target' do?
ASets the backend service port
BChanges the URL path before forwarding to backend
CDefines the TLS secret name
DSpecifies the Ingress class
If you want to increase the timeout waiting for backend response, which annotation is used?
Anginx.ingress.kubernetes.io/proxy-read-timeout
Bnginx.ingress.kubernetes.io/ssl-redirect
Cnginx.ingress.kubernetes.io/rewrite-target
Dnginx.ingress.kubernetes.io/configuration-snippet
Can annotations be used to add custom NGINX config snippets in Ingress?
AYes, using nginx.ingress.kubernetes.io/configuration-snippet
BNo, annotations cannot customize NGINX
COnly by editing the NGINX config file directly
DOnly through ConfigMaps
Explain how annotations customize the behavior of a Kubernetes Ingress controller.
Think about how you add special instructions to a recipe.
You got /4 concepts.
    List and describe three common NGINX Ingress annotations and their effects.
    Focus on security, URL handling, and timeout settings.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the main purpose of using annotations in a Kubernetes Ingress resource?
      easy
      A. To specify the IP address of the Ingress controller
      B. To define the backend services for routing traffic
      C. To customize the behavior of the Ingress controller without changing the main spec
      D. To set resource limits for the Ingress pod

      Solution

      1. Step 1: Understand the role of annotations in Kubernetes

        Annotations are key-value pairs used to add metadata or customize behavior without changing the main resource spec.
      2. Step 2: Apply this to Ingress resources

        In Ingress, annotations allow customization of controller behavior like SSL settings or rewrite rules without modifying the core routing rules.
      3. Final Answer:

        To customize the behavior of the Ingress controller without changing the main spec -> Option C
      4. Quick Check:

        Ingress annotations = customization without spec change [OK]
      Hint: Annotations customize Ingress behavior without touching main config [OK]
      Common Mistakes:
      • Confusing annotations with service definitions
      • Thinking annotations set IP addresses
      • Assuming annotations control pod resources
      2. Which of the following is the correct syntax to add an annotation for enabling SSL redirect in a Kubernetes Ingress YAML?
      easy
      A. metadata: annotations: nginx.ingress.kubernetes.io/ssl-redirect: "true"
      B. spec: annotations: ssl-redirect: true
      C. metadata: labels: nginx.ingress.kubernetes.io/ssl-redirect: true
      D. annotations: ssl-redirect: "true"

      Solution

      1. Step 1: Locate where annotations belong in Ingress YAML

        Annotations must be under metadata.annotations as key-value pairs.
      2. Step 2: Check correct key and value format

        The key for SSL redirect in nginx ingress is nginx.ingress.kubernetes.io/ssl-redirect and the value should be a string "true".
      3. Final Answer:

        metadata: annotations: nginx.ingress.kubernetes.io/ssl-redirect: "true" -> Option A
      4. Quick Check:

        Annotations under metadata.annotations with string values [OK]
      Hint: Annotations go under metadata.annotations as string key-values [OK]
      Common Mistakes:
      • Placing annotations under spec instead of metadata
      • Using labels instead of annotations
      • Using boolean true instead of string "true"
      3. Given this Ingress snippet with annotations:
      metadata:
        annotations:
          nginx.ingress.kubernetes.io/rewrite-target: "/"
          nginx.ingress.kubernetes.io/ssl-redirect: "false"
      What will be the effect on incoming HTTP requests?
      medium
      A. Requests will be redirected to HTTPS and paths rewritten to root
      B. Requests will not redirect to HTTPS and paths will be rewritten to root
      C. Requests will redirect to HTTPS but paths will not be rewritten
      D. Requests will neither redirect to HTTPS nor rewrite paths

      Solution

      1. Step 1: Analyze the ssl-redirect annotation

        The annotation nginx.ingress.kubernetes.io/ssl-redirect: "false" disables automatic HTTP to HTTPS redirection.
      2. Step 2: Analyze the rewrite-target annotation

        The annotation nginx.ingress.kubernetes.io/rewrite-target: "/" rewrites the path of incoming requests to root (/).
      3. Final Answer:

        Requests will not redirect to HTTPS and paths will be rewritten to root -> Option B
      4. Quick Check:

        ssl-redirect false disables HTTPS redirect; rewrite-target "/" rewrites paths [OK]
      Hint: ssl-redirect false disables HTTPS redirect; rewrite-target changes path [OK]
      Common Mistakes:
      • Assuming ssl-redirect false still redirects
      • Ignoring rewrite-target effect
      • Confusing rewrite-target with redirect
      4. You added this annotation to your Ingress:
      nginx.ingress.kubernetes.io/ssl-redirect: true
      But HTTPS redirection is not working. What is the most likely cause?
      medium
      A. The annotation value should be a string "true", not boolean true
      B. The annotation must be under spec.annotations, not metadata.annotations
      C. The Ingress controller does not support this annotation
      D. You need to restart the Ingress controller pod

      Solution

      1. Step 1: Check annotation value type

        Annotations require string values, so boolean true is invalid and ignored.
      2. Step 2: Confirm correct placement and support

        The annotation must be under metadata.annotations and nginx ingress supports this annotation.
      3. Final Answer:

        The annotation value should be a string "true", not boolean true -> Option A
      4. Quick Check:

        Annotation values must be strings, not booleans [OK]
      Hint: Annotation values must be strings, not booleans [OK]
      Common Mistakes:
      • Placing annotations under spec instead of metadata
      • Assuming controller restart fixes annotation issues
      • Ignoring controller support for annotation
      5. You want to customize your Ingress to add a custom header X-Frame-Options: DENY for security. Which annotation and value should you add to achieve this with nginx ingress controller?
      hard
      A. nginx.ingress.kubernetes.io/custom-header: "X-Frame-Options=DENY"
      B. nginx.ingress.kubernetes.io/add-headers: "X-Frame-Options: DENY"
      C. nginx.ingress.kubernetes.io/headers: "X-Frame-Options: DENY"
      D. nginx.ingress.kubernetes.io/configuration-snippet: "more_set_headers \"X-Frame-Options: DENY\";"

      Solution

      1. Step 1: Identify how to add custom headers in nginx ingress

        The nginx ingress controller supports adding custom headers via the configuration-snippet annotation using nginx directives.
      2. Step 2: Use the correct syntax for setting headers

        The directive more_set_headers "X-Frame-Options: DENY"; correctly adds the header.
      3. Final Answer:

        nginx.ingress.kubernetes.io/configuration-snippet: "more_set_headers \"X-Frame-Options: DENY\";" -> Option D
      4. Quick Check:

        Use configuration-snippet with more_set_headers for custom headers [OK]
      Hint: Use configuration-snippet with nginx directive for custom headers [OK]
      Common Mistakes:
      • Using non-existent annotation keys
      • Incorrect syntax for header setting
      • Confusing add-headers with configuration-snippet
      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