Skip to content

aks-helloworld-one, aks-helloworld-two 가 정상적으로 동작하지 않습니다. #1

@parkgang

Description

@parkgang

문제

아래의 object가 예상대로 동작하지 않습니다.

https-ingress-controller/test/aks-helloworld-one.yaml
https-ingress-controller/test/aks-helloworld-two.yaml

정상 시나리오

  1. https://{도메인}/ 으로 접속합니다.
    1. external-test-aks-helloworld-one 바인딩되어 아래의 화면이 출력되어야 합니다.
      image
  2. https://{도메인}/hello-world-one 으로 접속합니다.
    1. external-test-aks-helloworld-one 바인딩되어 아래의 화면이 출력되어야 합니다.
      image
  3. https://{도메인}/hello-world-two 으로 접속합니다.
    1. external-test-aks-helloworld-two 바인딩되어 아래의 화면이 출력되어야 합니다.
      image

테스트 시나리오

  1. https://{도메인}/ 으로 접속합니다.
    1. 정상 동작합니다.
  2. https://{도메인}/hello-world-one 으로 접속합니다.
    1. 아래의 화면이 렌더링 됩니다.
      image
  3. https://{도메인}/hello-world-two 으로 접속합니다.
    1. 아래의 화면이 렌더링 됩니다.
      image

예상되는 원인

https-ingress-controller/main-ingress.yamlmetadata.annotations.nginx.ingress.kubernetes.io/rewrite-target 를 활성화 하면 정상동작 합니다.

하지만, 이외의 object는 예상하지 못한 동작을 하게됩니다. 정의된 path 으로 히트되면 path 이외의 주소는 모두 자르기 때문입니다.

위에서 서술한 metadata 를 활성화 하면 path 에 히트되어 context가 / 으로 들어가기 때문에 service 입장에서는 / 에 대한 페이지를 렌더링 하기 때문에 문제가 없습니다.

즉, hello-world.test.e654a42ba97247c3a6cb.koreacentral.aksapp.io/hello-world-two 으로 요청하더라도 ingress에 히트되어 / 라는 context로 external-test-aks-helloworld-two service 에게 넘어가게 됩니다. 해당 service 에는 / 으로 요청온 것으로 알기 때문에 해당 페이지를 보여줍니다.

하지만 비활성화시 요청 그대로 service 에 넘어가기 때문에 /hello-world-two 경로의 리소스는 없다고 출력하고 있습니다.

test object 때문에 제품에 영향은 없지만 추후, 고도화를 위해서 필요한 작업입니다.

Metadata

Metadata

Assignees

Labels

bug뭔가 작동하지 않습니다

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions