• Kiali, Jeager 등 외부 노출 하는법 & 내부 네트워크로만 사용하는 법

    2024. 2. 19.

    by. Daramu

    apiVersion: networking.istio.io/v1alpha3

    kind: Gateway

    metadata:

      name: kiali-gateway

      namespace: istio-system

    spec:

      selector:

        istio: ingressgateway

      servers:

      - port:

          number: 80

          name: http-kiali

          protocol: HTTP

        hosts:

        - "*"

     

    apiVersion: networking.istio.io/v1alpha3

    kind: VirtualService

    metadata:

      name: kiali-vs

      namespace: istio-system

    spec:

      hosts:

      - "*"

      gateways:

      - kiali-gateway

      http:

      - match:

        - uri:

            prefix: /kiali

        route:

        - destination:

            host: kiali

            port:

              number: 20001


    위의 Hosts는 해당하는 URI에 대한 요청에대해 응답하겠다는 것이다.

    현재는 모든 요청(*)에 응답하고, 해당 gateway는 Istio Gateway를 사용하는 중이니 Istio_Gateway/kiali로 접근한다면 Istio_Gateway가 IP인지 DNS인지 상관없이 무조건 연결시켜주겠다는 것이다.

     

    NCP 기준으로 Istio 설치시 UI에 자동으로 보이니 해당하는 공인 IP나 도메인 주소에 + /kiali를 입력하면 들어가질 것이다.

     

    하지만 실제 환경에서는 외부에서 노출이 되면 안되므로, 응답하는 요청을 내부 DNS 주소로 해야한다.

     

    이걸 테스트 하는 방법은 자신의 hosts 파일이다. PC는 DNS서버에 가기전에 자신의 hosts 파일을 들여다보니, hosts 파일을 아래와 같이 수정하고.

     

    system32/hosts

    private.test.com   1.1.1.1(lb의 공인IP)

     

    gateway 와 vs 의 hosts를 모두 아래와 같이 수정해준다.

     

    hosts:

        - "private.test.com"

     

    이렇게 설정한다면 외부에서는 private.test.com를 입력한다 하여도 ip값을 모르니 접근이 안된다. 사설 dns를 사용한다면 똑같은 원리로 외부에서는 접근이 불가능하고, 내부 dns를(여기서는 hosts파일)바라보는 내부 네트워크 내부의 사람만 private.test.com 으로 접근할 수 있게 된다.

     

     

    댓글