본문 바로가기

개발하자

Kubernetes 입력에서 라우팅 경로 제거

반응형

Kubernetes 입력에서 라우팅 경로 제거

나는 "test"라는 서비스를 쿠버네티스에 배치했다. 서비스 이름: 테스트 포트: 80

"/abc"라는 끝점이 있습니다

ingress.vmdkl

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: load-balancer

spec:
  rules:
  - http:
      paths:
      - path: /test/*
        backend:
          serviceName: test
          servicePort: 80

API 호출 " "에 404 오류가 발생했습니다. 그러나 끝점 "/test/abc"가 제대로 작동합니다.

라우팅할 때 "/test"를 건너뛰어야 합니다. 어떻게 하는지.




URL 다시 쓰기 기능을 찾고 있습니다. 현재 nginx 입력에서만 지원됩니다(GKE 입력은 지원되지 않습니다).

하지만 당신이 원한다면 GKE에 nginx-ingress 컨트롤러를 설치할 수 있으며, 그것을 하는 방법이 있다.




apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  annotations:
    nginx.ingress.kubernetes.io/use-regex: "true"
    nginx.ingress.kubernetes.io/rewrite-target: /$2
  name: rewrite
  namespace: default
spec:
  rules:
  - host: rewrite.bar.com
    http:
      paths:
      - backend:
          serviceName: http-svc
          servicePort: 80
        path: /something(/|$)(.*)

이 입력 정의에서 (.*)에 의해 캡처된 모든 문자는 자리 표시자 $2에 할당되며, 이는 다시 쓰기 대상 주석에서 매개 변수로 사용됩니다.

예:

  • 로 고쳐 쓰다

출처: .


반응형