Cloud-native/Istio (9) 썸네일형 리스트형 [Istio]Configuring istio-ingressgateway with AWS NLB AWS Load Balancer Controller AnnotationsAWS EKS Network Load BalancingIstio Ingress Gateway using Network Load Balancer on EKS개요목표: istio-ingressgateway의 로드밸런서를 CLB에서 NLB로 변경배경: Istio Helm Chart 설치 시 기본적으로 istio-ingressgateway는 AWS CLB로 설정됨주의사항교차 영역 로드밸런싱을 활성화해야 함AWS NLB는 Kubernetes에서 Alpha 기능으로, 프로덕션 환경에서 사용 시 주의 필요Kubernetes Bug #69264로 인해, 동일한 영역에서 Istio를 실행하는 두 개 이상의 Kubernetes 클러스터에서 AWS NL.. [Istio]Configuring istio-ingressgateway with AWS ALB 개요이 설정은 AWS EKS(Elastic Kubernetes Service)에서 Istio의 인그레스 게이트웨이를 AWS Application Load Balancer(ALB)와 함께 사용하는 방법을 설명합니다. 이를 통해 AWS WAF 같은 ALB 전용 서비스를 활용할 수 있습니다.전제 조건AWS LoadBalancer Controller가 클러스터에 설치되어 있어야 합니다.설정 단계1. Service Type 변경기본적으로 Istio Ingress Gateway는 LoadBalancer 타입의 서비스로 설정되어 있어 Classic Load Balancer(CLB)가 자동으로 생성됩니다. ALB를 사용하기 위해 서비스 타입을 NodePort로 변경해야 합니다.istio-gateway Helm 차트의 .. [Istio]Install istio(istio-base, istio-gateway, istiod) with helm charts 💡아래에서는 istio 설치의 기본적인 내용을 다루고 있습니다. values.yaml 내용을 살펴보고 필요한 내용은 수정하여 사용 부탁드립니다.개요istio-base:역할: Istio의 기본 설정과 CRD(Custom Resource Definitions)를 설치합니다.특징:Istio의 핵심 구성요소를 위한 기반을 제공합니다.CRD를 관리하여 Istio의 커스텀 리소스를 Kubernetes에 등록합니다.istio-gateway:역할: Istio의 ingress gateway를 설정하고 배포합니다.특징:외부 트래픽을 Istio 서비스 메시로 라우팅합니다.로드 밸런서 설정, SSL 종료, 프로토콜 변환 등을 처리합니다.istiod:역할: Istio의 컨트롤 플레인을 배포합니다.특징:서비스 디스커버리, 구성.. [Istio]Traffic Management - 무슨 일이 발생하는 건가?(envoy xDS Sync 이해하기) Concept envoy xDS Sync는 Envoy 프록시가 동적으로 구성을 업데이트하고, 서비스 메시에서의 트래픽 관리를 최적화하는 과정을 의미한다. 여기서 xDS는 eXtensible Discovery Service의 약자로, Envoy 프록시와 구성 관리 시스템 간의 통신을 위한 일련의 프로토콜을 나타낸다. Envoy 프록시는 서비스 메시를 구성하는 요소로 마이크로서비스 간의 통신을 중개하고, 로드밸런싱, timeout, circuit breaker와 같은 기능을 제공한다. 이러한 기능을 수행하기 위해 Envoy 프록시는 자신의 구성 정보를 최신 상태로 유지해야한다. 여기서 xDS Sync는 다음과 같은 일련의 xDS 프로토콜을 통해 Envoy 프록시의 동적 구성을 가능하게 한다. LDS (Lis.. [Istio]Traffic Management - Request Routing(동적 요청 라우팅 구성하기) Concept 이 작업에서는 여러 버전의 마이크로서비스에 대한 동적 요청 라우팅을 구성하는 방법을 보여 준다. reviews 마이크로서비스에는 세 가지 버전이 있으며, 동시에 실행 중이다. 이 중 도서 리뷰에 별점이 포함된 경우(v2,v3)와 포함되지 않은 경우(v1)가 번갈아가며 나타나고 있다. Istio는 명시적으로 라우팅할 기본 서비스 버전이 없기 때문에 가능한 모든 버전에 대한 요청을 라운드 로빈 방식으로 라우팅한다. 이 작업의 목표는 모든 트래픽을 마이크로서비스의 v1로 라우팅하는 규칙을 적용하는 것이다. AS-IS: v1, v2, v3이 RR 방식으로 라우팅 productpage를 통해 접속하면 아래와 같이 리뷰 부분이 v1,v2,v3으로 돌아가며 나온다. TO-BE: reviews-v1 서비.. [Istio]Traffic Management - Overview Concept Istio의 트래픽 라우팅 규칙을 사용하면 서비스 간의 트래픽 및 API 호출 흐름을 쉽게 제어할 수 있다. Istio는 circuit breakers, timeouts, retries같은 서비스 수준의 구성을 간소화하며, A/B 테스트, 카나리 배포 및 퍼센트 기반 트래픽 분할과 같은 작업을 쉽게 설정할 수 있다. Istio의 트래픽 관리 모델은 서비스와 함께 배포되는 Envoy 프록시에 의존한다. 메시 서비스가 보내고 받는 모든 트래픽(data plane traffic)은 Envoy를 통해 프록시된다. 이를 통해 서비스를 변경하지 않고 메시 내에서 트래픽을 직접 제어하고 관리할 수 있다. 서비스 메쉬 성숙도 모델 아래 그림의 화살표 순으로 고도화된 서비스 메쉬를 완성해갈 수 있다. Ku.. [Istio]Deploy bookinfo sample application to demonstrate various Istio features 💡Environment Client Version: v1.24.0 Kustomize Version: v4.5.4 Server Version: v1.24.12-eks-ec5523e Namespace: bookinfo으로 변경 후 진행 Deploy sample application # inject envoy proxy kubectl label namespace bookinfo istio-injection=enabled # apply bookinfo application kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml -n bookinfo # veryfy deploy ➜ kubectl exec "$(kubectl get pod -l app=rati.. [Istio]Install Istio with istioctl Download istio version 1.17 아래에서 kubernetes 와 호환 버전 확인하고 설치를 진행한다 https://istio.io/latest/docs/releases/supported-releases/#support-status-of-istio-releases 💡Environment Client Version: v1.24.0 Kustomize Version: v4.5.4 Server Version: v1.24.12-eks-ec5523e # download curl -L https://istio.io/downloadIstio | > ISTIO_VERSION=1.17 sh - # symbolic link cd istio-1.17.2 ln -s istio-1.17.2 istio # path.. 이전 1 2 다음