0

GKE クラスタで ingress-nginx を使用してサービスを公開しています。2 つの異なる GKE クラスタ (v1.19.12-gke.2101) があり、どちらも ingress-nginx を使用しています (チャート v4.0.6)。

これらのクラスターでは、oauth-proxy を使用していくつかのサービスを公開しています。最初のクラスターでは完全に機能しますが、パス/test/に 404 がある 2 番目のクラスターでは機能しません。この問題の原因を突き止めることなく、長い間調査してきました。私が見つけた主な違いは、場所が異なるnginx.confファイルにあります。違いは次のとおりです。

最初のクラスター (動作中):

location ~* "^/test(/|$)(.*)/" {

2 番目のクラスター (機能していません):

location /test(/|$)(.*)/ {

この行に使用される入力は次のとおりです。

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    nginx.ingress.kubernetes.io/auth-url: "<auth-url>"
    nginx.ingress.kubernetes.io/auth-signin: "<auth-signin>"
    nginx.ingress.kubernetes.io/auth-realm: 'Authentication Required'
    kubernetes.io/tls-acme: 'true'
    ingress.kubernetes.io/force-ssl-redirect: 'true'
    nginx.ingress.kubernetes.io/proxy-body-size: 500m
    cert-manager.io/cluster-issuer: "letsencrypt-prod-dns01"
  name: service-oauth
  namespace: default
spec:
  rules:
  - host: "test.com"
    http:
      paths:
      - path: "/test(/|$)(.*)"
        pathType: ImplementationSpecific
        backend:
          service:
            name: test
            port:
              number: 1234
  ingressClassName: nginx
  tls:
  - secretName: test-tls
    hosts:
      - "test.com"

すべての構成ファイル (イングレス、サービス) を確認しましたが、違いは見つかりませんでした。問題の原因がどこにあるのか考えられる場合は、お知らせください。

ご協力いただきありがとうございます。

4

1 に答える 1