Istio - istio ingress gateway

우야·2021년 4월 21일
1

전통적으로 Kubernetes는 Ingress외부에서 클러스터로 들어오는 트래픽을 처리하기 위해 컨트롤러를 사용했습니다.

Istio를 사용하면, Ingress를 대체하고 트래픽을 메시로 라우팅하기 위해 Gateway 및 VirtualServices로 함께 작동합니다.
Mesh 내에서는 Cluster local service 이름으로 서로 액세스 할 수 있으므로 Gateway서비스가 필요하지 않습니다.

Application에 도달하는 시나리오
1. Client는 특정 포트에서 요청을합니다.
2. Load Balancer는 이 포트를 수신하고 클러스터의 worker 중 하나에 요청을 전달합니다.
3. 클러스터 내에서 요청은 Load Balancer가 전달하는 포트에서 수신 대기하는 Istio IngressGateway Service로 라우팅됩니다.
4. Istio IngressGateway ServiceIstio IngressGateway Pod로 요청을 전달합니다.
5. IngressGateway PodGatewayVirtualService의 설정값을 알고 있다.
6. Gateway는 포트, 프로토콜 및 인증서가 설정되어 있다.
7. VirtualServiceApplication Service를 찾기위한 라우팅 정보가 있다.
8. Istio IngressGateway Pod은 요청해야하는 Application Service로 라우팅(Gateway, Virtual Service를 활용하여)한다.
9. 마지막으로 Application ServiceApplication Pod로 요청을 라우팅한다.

Istio를 사용하는 Application 추가

  • Istio를 사용하는 Application을 생성시 Gateway, Virtual Service, Application Pod안에 sidecar로 istio proxy(Envoy)가 배포되어야 한다.

  • 이 관계 정보는 istio pilot에 저장 되며,
    Ingressgateway pod에서는 gateway에서 설정되는 인증서가 마운트되고, virtural service 정보로 Application service로 요청을 보내게 된다.

또 다른 방법 : https://journes.tistory.com/60

profile
Fullstack developer

0개의 댓글