minikube
Istio 정복하기 #10 - Observability-1 메트릭 조회
Istio 정복하기 #10 - Observability-1 메트릭 조회
2025.04.04Observability는 시스템의 상태를 이해하고, 문제를 진단하며, 성능을 모니터링할 수 있는 능력을 의미한다. 즉 서비스의 상태, 성능, 오류 및 다른 지표들을 수집하고 분석이 필요하다. Istio는 이러한 Observability를 통해 마이크로서비스 구성 요소 간의 복잡한 상호 작용을 보다 쉽게 분석할 수 있도록 도와준다. Istio는 서비스 간 요청 경로 상에 위치하여, 요청을 중재하고 필요한 메트릭을 수집하는 역할을 한다. 이 과정에서 다음과 같은 기능을 제공한다. 1. 메트릭 수집2. 메트릭 추가3. 분산 추적 이제 하나씩 직접 해보면서 알아보자. 만약 에드온을 실행시켰다면 모두 지우자. Data Plane 메트릭Istio를 실행시켰기에 사이드카 프락시가 파드들에 부착된다. 컨테이너의 요..
Istio 정복하기 #9 - Circuit breaking
Istio 정복하기 #9 - Circuit breaking
2025.04.04연쇄적인 장애전파를 막기위한 방법으로 Unhealthy 시스템으로의 트래픽을 제한하는 방법이다. Istio 에 정확히 Circuit breaker 라는 이름의 설정은 없다. 하지만 Circuit breaker 로써 효율적으로 작동할 수 있는 두가지 방법을 제공한다. 1. 커넥션/요청 수 제한 - Fail Fast 전략2. 이상 동작 엔드포인트 제거 (Eviction) 하나씩 구현해보자. 커넥션/요청 수 제한 - Fail Fast 전략 구현응답 요청이 2초 이상 걸리는 서버를 임의로 구축한다. 그 후 DestinationRule을 추가해준다.apiVersion: networking.istio.io/v1beta1kind: DestinationRulemetadata: name: test-drspec: h..
Istio 정복하기 #8 - Timeouts and retries
Istio 정복하기 #8 - Timeouts and retries
2025.04.02타임 아웃과 리트라이에 대해서 알아보려고 한다. 타임 아웃은 서비스가 요청에 대해 응답하지 않고 기다리는 최대 시간을 의미한다.서비스 간의 통신에서 대기 시간이 길어져 사용자 경험이 저하되는 것을 방지하고, 시스템 자원을 적절히 관리하기 위해 필요하다.리트라이는 실패한 요청에 대해 자동으로 다시 시도하는 기능으로 일시적인 오류로 인해 요청이 실패하는 경우, 요청을 다시 시도함으로써 성공적인 응답을 받을 수 있는 가능성을 높여준다. 구현 자체는 간단하니 하나씩 살펴보자. Timeout 구현VirtualService에서 간단하게 설정해 주면 된다. apiVersion: networking.istio.io/v1alpha3kind: VirtualServicemetadata: name: test-virtual-..
Istio 정복하기 #7 - Locality-aware load balancing
Istio 정복하기 #7 - Locality-aware load balancing
2025.04.01Locality-aware Load Balancing은 요청을 처리할 때 지리상 가까운 인스턴스에 로드 밸런싱해서 응답 시간이 줄어드는 것을 기대할 수 있는 방법이다. Istio에서는 이 기능을 활용하여 다양한 지역의 트래픽을 효과적으로 관리할 수 있다. 물론 나는 Minikube이므로 정확한 환경을 셋티할 수 없지만 라벨링을 통해서 임시적으로 구성해보려고 한다. Locality-aware load balancing 구현구현 자체는 어렵지 않다. 먼저 Deployment에 라벨링을 수정해주자. apiVersion: apps/v1kind: Deploymentmetadata: labels: app: test name: testspec: replicas: 1 selector: matchLa..
Istio 정복하기 #6 - Client-side load balancing
Istio 정복하기 #6 - Client-side load balancing
2025.03.30Client-side load balancing는 클라이언트에게 endpoint들을 알려주고, 클라이언트가 LB 알고리즘을 선택하게 하도록 하는 방법이다. 이것으로 얻는 이점은 다음과 같다. 1. 중앙집중적인 load balancing을 피할 수 있음2. 불필요한 홉 없이 클라이언트가 직접 요청을 전달할 수 있음 (로드밸런서가 필요 없어짐.) 물론 단점으로는 헬스 체크, 알고리즘이 효율성, 엔드포인트 관리 등이 있지만, 장점도 있으니 알아보자. Client-side load balancing 구현DestinationRule로 구현을 할 수 있는데, Gateway와 VritualService부터 생성하자. apiVersion: networking.istio.io/v1alpha3kind: Gatewaymet..
Istio 정복하기 #5 - 트래픽 관리 - 하
Istio 정복하기 #5 - 트래픽 관리 - 하
2025.03.24하에서는 Mirroring과 Outbound Traffic Control을 알아보겠다. Mirroring미러링은 실시간 트래픽을 다른 서비스로 복제하여 보내는 기술이다. 즉 v1으로 트래픽이 왔을 때 v2로도 트래픽이 복제돼서 보내진다. 하는 방법은 어렵지 않고, VirtualService를 조금만 수정해 주면 된다.apiVersion: networking.istio.io/v1alpha3kind: VirtualServicemetadata: name: testspec: hosts: - "test.io" gateways: - test-gateway http: - route: - destination: host: test subset: version-v1 ..