개발하자

클러스터 IP 서비스가 있고 기본 nginx가 있는 kubernetes 수신 컨트롤러가 예상대로 작동하지 않음

Cuire 2023. 6. 26. 16:14
반응형

클러스터 IP 서비스가 있고 기본 nginx가 있는 kubernetes 수신 컨트롤러가 예상대로 작동하지 않음

7개의 노드를 가진 쿠버네티스 베어 메탈 클러스터가 있다. 조타 장치 설치 및 조타 장치 추가

  • ingress-nginx 내 랜에서 내 랜에서 해결 가능한 DNS A 레코드를 만들었다.

효과적인 기능:

나는 이전에 언급한 dns A 레코드의 사과와 바나나 위치에 접근할 수 있다.

포트 80과 cluster-ip 유형의 서비스를 사용하여 기본 nginx 이미지를 배포하는 경우 다음 nginx-ingress 리소스가 작동하지 않음

kubectl run nginx --image=nginx ; kubectl exposed pod nginx --port=80 
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress-test
  annotations:
    ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - host: kubernetes.somename.lan
    http:
      paths:
        - path: /test
          pathType: Prefix
          backend:
            serviceName: nginx
            servicePort: 80

나는 로그에서 파일이 nginx-ingress 이미지에 배포되고 있는 것을 보고 있는데, 사과와 바나나 입력 항목과 비교했을 때 이상한 것은 보이지 않는다. 내가 생각할 수 있는 유일한 차이점은 입력 컨트롤러와 nginx 이미지가 포트 80을 사용한다는 것이다

그래서 내가 필요한 것은 내가 접속할 때, 나는 nginx 서버의 자리 표시자(nginx 서비스로 접속할 수 있음)에 도달할 것이다


경로/테스트에서 A dns 레코드의 nginx에 액세스하려면 어떻게 해야 합니까?




포드가 경로를 구분하지 않으므로 제공된 사과/바나나 예제가 작동하고 있습니다. 경로 변경에 반응하지 않습니다(경로 무시). 반면에 그것은 정반대이다.

블로그에 주석이 잘못되어 접두사가 누락되었습니다. 이것은 당신이 사용한 것입니다:

ingress.kubernetes.io/rewrite-target

그리고 이것은 정확한 것이다:

nginx.ingress.kubernetes.io/rewrite-target



좋아요, 조사한 후에 저는 이것을 해결하는 방법을 알아냈어요. 이것이 누구에게 도움이 되기를 바란다

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress-precious
  annotations:
    nginx.org/rewrites: "serviceName=nginx-ingress rewrite=/;"
spec:
  rules:
  - host: kubernetes.somelan.lan
    http:
      paths:
      - path: /test1
        backend:
          serviceName: nginx-ingress
          servicePort: 80

반응형