0

I'm not sure why only the 500 error is not being redirected to the custom error pages while other errors are working fine.

test address: test.example.com

#1. [ request ] GET / HTTP/1.1 Host: test.example.com

[ result ] 200 OK succeed(No Error)

#2. [ request ] GET / HTTP/1.1 Host: test.example.com/whatatest

[ result ] succeed(redirected to custom-error-page)

#3. [ request ] GET HTTP/1.1 Host: test.example.com/whatatest

[ result ] 503 Internal Server Error Fail, Not redirected

Here is my pod(nginx-errors) and service manifests

---
apiVersion: v1
kind: Service
metadata:
  name: nginx-errors
  namespace: ingress-nginx
  labels:
    app.kubernetes.io/name: nginx-errors
    app.kubernetes.io/part-of: ingress-nginx
spec:
  selector:
    app.kubernetes.io/name: nginx-errors
    app.kubernetes.io/part-of: ingress-nginx
  ports:
  - port: 80
    targetPort: 8080
    name: http
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-errors
  namespace: ingress-nginx
  labels:
    app.kubernetes.io/name: nginx-errors
    app.kubernetes.io/part-of: ingress-nginx
spec:
  replicas: 1
  selector:
    matchLabels:
      app.kubernetes.io/name: nginx-errors
      app.kubernetes.io/part-of: ingress-nginx
  template:
    metadata:
      labels:
        app.kubernetes.io/name: nginx-errors
        app.kubernetes.io/part-of: ingress-nginx
    spec:
      containers:
      - name: nginx-error-server
        image: nginx-errors
        ports:
        - containerPort: 8080
        volumeMounts:
        - name: custom-error-pages
          mountPath: /www
      volumes:
      - name: custom-error-pages
        configMap:
          name: custom-error-pages
          items:
          - key: "400"
            path: "400.html"
          - key: "401"
            path: "401.html"
          - key: "402"
            path: "402.html"
          - key: "403"
            path: "403.html"
          - key: "404"
            path: "404.html"
          - key: "405"
            path: "405.html"
          - key: "406"
            path: "406.html"
          - key: "500"
            path: "500.html"
          - key: "501"
            path: "501.html"
          - key: "502"
            path: "502.html"
          - key: "503"
            path: "503.html"

and this is my configmap for ingress-nginx-controller

apiVersion: v1
data:
  allow-snippet-annotations: "true"
  custom-http-errors: 400,401,402,403,404,405,406,500,501,502,503
  proxy-hide-header: Server
  server-tokens: "false"
  default-backend: nginx-errors
kind: ConfigMap
metadata:
  annotations:
    kubectl.kubernetes.io/last-applied-configuration: |
      {"apiVersion":"v1","data":{"allow-snippet-annotations":"true","proxy-hide-header":"Server","server-tokens":"false"},"kind":"ConfigMap","metadata":{"annotations":{"meta.helm.sh/release-name":"ingress-nginx","meta.helm.sh/release-namespace":"ingress-nginx"},"creationTimestamp":"2023-05-25T10:32:52Z","labels":{"app.kubernetes.io/component":"controller","app.kubernetes.io/instance":"ingress-nginx","app.kubernetes.io/managed-by":"Helm","app.kubernetes.io/name":"ingress-nginx","app.kubernetes.io/part-of":"ingress-nginx","app.kubernetes.io/version":"1.8.0","helm.sh/chart":"ingress-nginx-4.7.0"},"name":"ingress-nginx-controller","namespace":"ingress-nginx","resourceVersion":"144407","uid":"5f52c4c7-ab9a-4eae-b374-e632e3b77889"}}

and here is ingress-nginx-controller's configuration

apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: "2023-07-05T08:08:00Z"
  generateName: ingress-nginx-controller-747b85557-
  labels:
    app.kubernetes.io/component: controller
    app.kubernetes.io/instance: ingress-nginx
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx
    app.kubernetes.io/version: 1.8.0
    helm.sh/chart: ingress-nginx-4.7.0
    pod-template-hash: 747b85557
  name: ingress-nginx-controller-747b85557-4x5x5
  namespace: ingress-nginx
  ownerReferences:
  - apiVersion: apps/v1
    blockOwnerDeletion: true
    controller: true
    kind: ReplicaSet
    name: ingress-nginx-controller-747b85557
    uid: ff05b43d-f79d-4647-81d4-b8107913e412
  resourceVersion: "355109"
  uid: 92b49816-3cda-4160-9fec-492538c63cb5
spec:
  containers:
  - args:
    - /nginx-ingress-controller
    - --publish-service=$(POD_NAMESPACE)/ingress-nginx-controller
    - --default-backend-service=$(POD_NAMESPACE)/nginx-errors
    - --election-id=ingress-nginx-leader
    - --controller-class=k8s.io/ingress-nginx
    - --ingress-class=nginx
    - --configmap=$(POD_NAMESPACE)/ingress-nginx-controller
    - --validating-webhook=:8443
    - --validating-webhook-certificate=/usr/local/certificates/cert
    - --validating-webhook-key=/usr/local/certificates/key
...
Sil
  • 1
  • 1

0 Answers0