본문 바로가기
2. 기본 인프라 IaaS

Kubernetes Ingress vs. Istio Ingress Gateway

by texaspark 2022. 3. 2.

 

 

프로덕션 규모로 실행되는 모든 애플리케이션에는 외부 세계에 노출될 수 있는 "인그레스"가 있어야 합니다. Kubernetes는 이 목적을 위해 "Ingress" 리소스를 제공하지만 해당 기능은 사용 중인 Ingress 컨트롤러(일반적으로 nginx)의 종류에 따라 제한됩니다.

또는 애플리케이션 포드 자체가 순수하게 Kubernetes를 실행하지 않는 경우에도 Istio를 활용하고 기능이 더 풍부한 Ingress Gateway 리소스를 활용할 수 있습니다. Envoy 프록시를 게이트웨이로 사용하는 Istio의 기능인 Ingress Gateway(nginx와 반대)를 점진적으로 채택하여 그렇게 할 수 있습니다. Istio가 수신 트래픽을 관리하는데 어떻게 도움이 되는지 접근 방식을 살펴봅니다.

Kubernetes Architecture

 

 

 Etcd: key-value Store 데이터 베이스, 클러스터 상태정보 보관(하드웨어상태, 파트, 컨테이너상태 등등..)

 API Server: Client 요청을 받음(kubectl). Etcd 정보와 함께 scheduler에게 어느 node pod를 생성 할 지 문의. Controller에 불꽃감시 지시/보고받음

 Scheduler: API에서 받은 etcd 정보를 검토하여 배포 할 node/(pod)를 선택 및 보고

 Controller: Kublet  c-advisor(모니터링 기능) API 에게 보고하는 상태를 불꽃같은 눈으로 감시. (컨테이너 상태 체크, 네트워크, 노드 체크) -> 파드 개수 보장

 Kubelet: 모든 노드에서 실행 되는에이전트 (c-advisor), 콘테이너 실행

 Kube-proxy: Network guy, iptable rule 구성하여 Service Pod간의 통신

 Container Runtime: Docker 실행 엔진

Kubernetes way to expose your app (ServiceTypes)

• ClusterIP: 클러스터 내부 IP에 서비스를 노출합니다. 클러스터 내에서만 서비스에 연결할 수 있습니다.
• NodePort: 고정 포트(NodePort)에서 각 노드의 IP에 대한 서비스를 노출합니다. <NodeIP>:<NodePort>를 요청하여 클러스터 외부에서 NodePort 서비스에 연결할 수 있습니다.
• LoadBalancer: 클라우드 공급자의 부하 분산을 사용하여 서비스를 외부에 노출합니다.
• Ingress: 클러스터 외부에서 서비스로 HTTP 및 HTTPS 경로를 노출합니다. 트래픽 라우팅은 Ingress 리소스에 정의된 규칙에 의해 제어됩니다.

 

NodePort Limitations

Ingress Advantages

Ingress Limitations

 Limited observability toolsets

 No advanced traffic control / release strategies

 - Such as % based Canary release

 No service resiliency features

 - Such as Circuit breaking, Retry, Timeouts

​Istio Mesh Architecture Istio

• Pilot: Svc 검색, 수신 게이트웨이 푸시, 게이트웨이 정책, 가상 서비스, Envoy 프록시에 대한 대상 규칙
• Citadel: 키 쌍 생성, 키 검증
• Mixer: Envoy 프록시에서 원격 측정 데이터 수집(더 이상 믹서 없음, 파일럿은 v1.5부터 작동 중임)

Istio Ingress Gateway Advantages

공유하기
통계
글 요소
 

DESIGN BY TISTORY 관리자

댓글