Cloud-native/Istio
-
Concept envoy xDS Sync는 Envoy 프록시가 동적으로 구성을 업데이트하고, 서비스 메시에서의 트래픽 관리를 최적화하는 과정을 의미한다. 여기서 xDS는 eXtensible Discovery Service의 약자로, Envoy 프록시와 구성 관리 시스템 간의 통신을 위한 일련의 프로토콜을 나타낸다. Envoy 프록시는 서비스 메시를 구성하는 요소로 마이크로서비스 간의 통신을 중개하고, 로드밸런싱, timeout, circuit breaker와 같은 기능을 제공한다. 이러한 기능을 수행하기 위해 Envoy 프록시는 자신의 구성 정보를 최신 상태로 유지해야한다. 여기서 xDS Sync는 다음과 같은 일련의 xDS 프로토콜을 통해 Envoy 프록시의 동적 구성을 가능하게 한다. LDS (Lis..
[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..
2023.05.06 -
Concept 이 작업에서는 여러 버전의 마이크로서비스에 대한 동적 요청 라우팅을 구성하는 방법을 보여 준다. reviews 마이크로서비스에는 세 가지 버전이 있으며, 동시에 실행 중이다. 이 중 도서 리뷰에 별점이 포함된 경우(v2,v3)와 포함되지 않은 경우(v1)가 번갈아가며 나타나고 있다. Istio는 명시적으로 라우팅할 기본 서비스 버전이 없기 때문에 가능한 모든 버전에 대한 요청을 라운드 로빈 방식으로 라우팅한다. 이 작업의 목표는 모든 트래픽을 마이크로서비스의 v1로 라우팅하는 규칙을 적용하는 것이다. AS-IS: v1, v2, v3이 RR 방식으로 라우팅 productpage를 통해 접속하면 아래와 같이 리뷰 부분이 v1,v2,v3으로 돌아가며 나온다. TO-BE: reviews-v1 서비..
[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 서비..
2023.05.06 -
Concept Istio의 트래픽 라우팅 규칙을 사용하면 서비스 간의 트래픽 및 API 호출 흐름을 쉽게 제어할 수 있다. Istio는 circuit breakers, timeouts, retries같은 서비스 수준의 구성을 간소화하며, A/B 테스트, 카나리 배포 및 퍼센트 기반 트래픽 분할과 같은 작업을 쉽게 설정할 수 있다. Istio의 트래픽 관리 모델은 서비스와 함께 배포되는 Envoy 프록시에 의존한다. 메시 서비스가 보내고 받는 모든 트래픽(data plane traffic)은 Envoy를 통해 프록시된다. 이를 통해 서비스를 변경하지 않고 메시 내에서 트래픽을 직접 제어하고 관리할 수 있다. 서비스 메쉬 성숙도 모델 아래 그림의 화살표 순으로 고도화된 서비스 메쉬를 완성해갈 수 있다. Ku..
[Istio]Traffic Management - OverviewConcept Istio의 트래픽 라우팅 규칙을 사용하면 서비스 간의 트래픽 및 API 호출 흐름을 쉽게 제어할 수 있다. Istio는 circuit breakers, timeouts, retries같은 서비스 수준의 구성을 간소화하며, A/B 테스트, 카나리 배포 및 퍼센트 기반 트래픽 분할과 같은 작업을 쉽게 설정할 수 있다. Istio의 트래픽 관리 모델은 서비스와 함께 배포되는 Envoy 프록시에 의존한다. 메시 서비스가 보내고 받는 모든 트래픽(data plane traffic)은 Envoy를 통해 프록시된다. 이를 통해 서비스를 변경하지 않고 메시 내에서 트래픽을 직접 제어하고 관리할 수 있다. 서비스 메쉬 성숙도 모델 아래 그림의 화살표 순으로 고도화된 서비스 메쉬를 완성해갈 수 있다. Ku..
2023.05.06 -
💡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]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..
2023.04.23 -
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..
[Istio]Install Istio with istioctlDownload 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..
2023.04.23 -
Istio란 무엇인가? Istio는 여러 서비스들을 서로 연결하고, 보호하며, 모니터링하는 기능을 제공하는 오픈소스 도구입니다. 간단하게 말하면, 여러 서비스들 사이에서 통신하는 방식을 효과적으로 관리해주는 도구입니다. Istio는 어떻게 동작하나요? Istio는 크게 두 가지 주요 부분으로 구성됩니다. 데이터 평면(Data Plane): 서비스들 간의 통신을 관리하는 부분입니다. 'Envoy'라는 특별한 프록시가 이 부분에서 활동하며, 이 Envoy는 서비스들 사이에서 데이터를 전송하는 도로와 같은 역할을 합니다. 또한, 이 데이터를 기록하고 분석해주기도 합니다. 제어 평면(Control Plane): Envoy 프록시를 제어하는 부분입니다. 어떤 서비스로 데이터를 보낼지, 어떻게 데이터를 보낼지 등을..
[Istio]What is Istio?Istio란 무엇인가? Istio는 여러 서비스들을 서로 연결하고, 보호하며, 모니터링하는 기능을 제공하는 오픈소스 도구입니다. 간단하게 말하면, 여러 서비스들 사이에서 통신하는 방식을 효과적으로 관리해주는 도구입니다. Istio는 어떻게 동작하나요? Istio는 크게 두 가지 주요 부분으로 구성됩니다. 데이터 평면(Data Plane): 서비스들 간의 통신을 관리하는 부분입니다. 'Envoy'라는 특별한 프록시가 이 부분에서 활동하며, 이 Envoy는 서비스들 사이에서 데이터를 전송하는 도로와 같은 역할을 합니다. 또한, 이 데이터를 기록하고 분석해주기도 합니다. 제어 평면(Control Plane): Envoy 프록시를 제어하는 부분입니다. 어떤 서비스로 데이터를 보낼지, 어떻게 데이터를 보낼지 등을..
2023.04.23