-
[Istio] gateway 사용법인프라&운영체제/Istio 2022. 1. 29. 14:51
istio-ingressgateway는 아래에서 설명할 gateway와는 다른 개념이다.
istio-ingressgateway는 Cluster의 entry point가 된다.
쿠버네티스에서 nginx ingress controller와 동일하게 ingress controller 역할을 수행한다.
로드밸런서 역할을 수행하며 pod로서 동작한다.
istio 공식 사이트에 설명이 잘 나와있긴 하지만, 일단 정리해둔다.
istio에서는 gateway와 virtual service를 통해 트래픽을 컨트롤 한다.
virtual service로 패턴에 맞춰 어느 호스트 또는 서비스로 라우팅할지, 트래픽 비중(weight)을 어느정도로 할지 룰을 지정하고, gateway는 단어처럼 어느 호스트의 요청, 포트 등을 처리할지 gateway 역할을 수행한다.
virtual service는 자신이 사용할 gateway를 지정하여 사용한다.
gateway는 특별한 케이스가 없다면 기본인 istio-ingressgateway를 사용하면 된다.
아래는 gateway, virtual service를 예시.
book-gateway.yamlapiVersion: networking.istio.io/v1alpha3 kind: Gateway metadata: name: book-gateway namespace: book # 원하는 네임스페이스로 지정 spec: selector: istio: ingressgateway # use istio default controller servers: - port: number: 80 name: http protocol: HTTP hosts: - "book-store.zorba.com" - port: number: 443 name: https protocol: HTTPS tls: mode: SIMPLE # enables HTTPS on this port credentialName: zorba-com-credential # fetches certs from Kubernetes secret hosts: - "book-store.zorba.com"
해당 명령어로 gateway를 생성.
$ kubectl apply -f book-gateway.yaml
확인
$ kubectl get gateway -n book
gateway에 대해 더 많은 설정을 보고 싶다면, Click
gateway tls 설정방법은 여기를 참고.
아래는 virtual service 예시
book-virtualservice.yamlapiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: book-virtualservice namespace: book # 원하는 네임스페이스로 지정 spec: hosts: - "book-storm.zorba.com" gateways: - book/book-gateway # book 네임 스페이스 밑에 있는 book-gateway를 사용 http: - match: - uri: prefix: / route: - destination: host: book-store-svc # 라우팅할 서비스 port: number: 80
해당 명령어로 virtual service를 생성.
$ kubectl apply -f book-virtualservice.yaml
확인
$ kubectl get vs(또는 virtualservice) -n book
virtual service에 대해 더 많은 설정을 보고 싶다면, Click
등록한 호스트를 istio-ingressgateway에서 사용하는 LB의 IP를 연결해주고 curl 요청을 날려보면 확인이 가능하다.
$ curl -v book-store.zorba.com
tls를 사용해서 요청방법
$ curl -v book-store.zorba.com --cacert /etc/ssl/cert.pem "https://book-store.zorba.com"
'인프라&운영체제 > Istio' 카테고리의 다른 글
[Istio] 세분화된 url 라우팅을 위한 Virtual Service 작성방법 (0) 2022.02.23 [Istio] gateway tls 설정 방법 (0) 2022.01.29 [Istio] Istio란? (0) 2022.01.28