티스토리 뷰

Istio 작동방식은?

1. 클라이언트가 특정 포트로 요청을 보낸다.
2. K8s LoadBalancer 가 그 포트에서 요청을 받아서 해당 클러스터의 worker에게 전달한다.
3. 클러스터안에서 해당 요청은 Istio IngressGateway Service (LB의 전달을 기다리고 있음) 로 라우트된다.
4. Istio IngressGateway Service (K8s service) 는 해당 요청을 Istio IngressGateway Pod (K8s deployment)으로 전달한다.
5. Istio IngressGateway Pod은 해당 요청을 해당 어플리케이션(k8s pod)의 서비스(k8s service)로 라우팅한다.
6. 마지막으로 해당 어플리케이션의 서비스는 해당 요청을 해당 어플리케이션으로 라우팅한다.

Istio IngressGateway Service란?

  • LoadBalancer나 NodePort에 설정된 포트로부터 트래픽을 전달받아, IngressGateway Pod으로 보내는 역할을 한다.
  • 그래서 이때 kube-proxy는 필요하지 않다.
  • 왜냐하면 k8s의 모든 서비스타입은 실제 서비스가 아니기 때문에 kube-proxy를 통해서 해당 pod가 있는 node에 전달되어 처리된다. 그리고는 해당 node의 iptables 를 통해 적절한 pod로 요청이 간다.

 

Istio IngressGateway Pod 란?

  • Istio IngressGateway Pod: Gateway와 VirtualService에 의해 설정된다.
  • Gateway: 포트, 프로토콜, 인증서 셋팅
  • VirtualService: 정확한 서비스(어플리케이션의 서비스)를 찾도록 라우팅 정보 셋팅 -> 지능형 라우팅
  • Deployment로 관리된다
  • 실제로 Envoy Proxy를 감싼 wrapper이다.
  • service mesh의 사이드카와 같은 형식으로 구성되어 있다.
  • Gateway나 VirtualService를 설정하거나 변경하면, Istio Pilot이 이를 감지하고, Envoy설정으로 변환시킨 후, 연관된 proxy들에 전달한다.
  •  


Reference

https://blog.jayway.com/2018/10/22/understanding-istio-ingress-gateway-in-kubernetes/

 

Understanding Istio Ingress Gateway in Kubernetes - blog.

Traditionally, Kubernetes has used an Ingress controller to handle the traffic that enters the cluster from the outside. When using Istio, this is no longer the case. Istio has replaced the familiar Ingress resource with new Gateway and VirtualServices res

blog.jayway.com

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함