Category: Istio

0

Istio Ambient Mesh - ztunnel과 HBONE 동작

목차 Istio Ambient Mesh Istio Ambient Mesh - ztunnel과 HBONE 동작 Istio 란? 개요Ambient Mesh를 볼 때 가장 헷갈리는 지점은 이것입니다. sidecar가 없는데 트래픽을 어떻게 메시에 태우는가 mTLS는 어디서 적용되는가 L4와 L7은 어디서 갈라지는가 핵심은 istio-cni, ztunnel, HBONE 세 가지를 같이 보는 것입니다. 전체 흐름Ambient 환경에서 기본 데이터 경로는 아래처럼 이해하면 됩니다. source pod -> source node ztunnel -> HBONE tunnel -> destination node ztunnel -> destination pod

0

Istio Ambient Mesh

목차 Istio Ambient Mesh Istio Ambient Mesh - ztunnel과 HBONE 동작 Istio - Istio 설치 및 addon 설치 Istio - Sidecar Injection Istio 란? Istio Ambient Mesh란Istio Ambient Mesh는 sidecar 없이 서비스 메시에 참여할 수 있게 만든 Istio의 데이터 플레인 모드입니다.기존 Istio가 Pod마다 Envoy sidecar를 주입하는 방식이었다면, Ambient Mesh는 노드 단위 L4 프록시(ztunnel) 와 필요할 때만 추가하는 L7 프록시(waypoint) 로 기능을 분리합니다. Istio 공식 기준으로 Ambient Mode는 2024-11-07 공개된 Istio 1.24에서 GA(General Availability) 상태가 되었고, 현재는 Istio의 정식 운영 옵션 중 하나로 보는 것이 맞습니다. 왜 Ambient Mesh가 나왔나기존 sidecar 방식은 강력하지만 운영 부담이 분명합니다. Pod마다 프록시가 하나씩 붙으므로 리소스 사용량이 커짐 애플리케이션 배포 시 sidecar injection과 재시작이 필요함 언어나 런타임, 초기화 방식에 따라 sidecar 호환성 이슈가 생길 수 있음 대규모 클러스터에서는 프록시 개수가 급격히 늘어나 운영 복잡도가 커짐 Ambient Mesh는 이런 문제를 줄이기 위해, “기본은 가볍게 L4 보안만 적용하고, 필요할 때만 L7 기능을 추가” 하는 구조를 선택했습니다.

0

Istio - Istio 설치 및 addon 설치

목차 Istio - Locality Load Balancing (지역 로드 밸런싱) Istio - Sidecar Injection Istio - istioctl Istio 란? 공식 홈페이지 https://istio.io/latest/docs/setup/getting-started/ istioctl 설치Mac 을 사용하는 경우 HomeBrew 를 이용해 istioctl 을 설치할 수 있습니다. brew install istioctl 다른 OS 를 사용하거나 특정 버전의 Istio 를 사용하고 싶은 경우 다음과 같이 Istio 버전을 Setting 한 후 해당 버전을 내려받아 사용할 수 있습니다. export ISTIO_VERSION=1.14.5curl -L https://istio.io/downloadIstio | ISTIO_VERSION=$ISTIO_VERSION TARGET_ARCH=x86_64 sh -

0

Circuit Breaker

Circuit Breaker분산 시스템에서 Circuit Breaker 는 일종의 예외 처리 메커니즘으로, 서비스 호출의 실패, 지연 등을 모니터링하고, 이를 감지하면 해당 서비스의 호출을 일시 중단시키는 역할을 합니다. 분산 시스템에서는 여러 대의 서버로 구성되어 있기 때문에, 서비스 간의 호출은 시스템의 다른 부분과 독립적으로 처리됩니다. 따라서, 서비스 호출 시에 실패가 발생하면 이를 처리하는 데 시간이 걸리고, 이를 무한정 대기하게 된다면 전체 시스템의 성능에 악영향을 미칠 수 있습니다. 이 때, Circuit Breaker는 이러한 지연을 방지하기 위해 호출을 일시 중단시킵니다. 이후, 일정 시간 동안 호출을 차단한 뒤, 정상적으로 작동하면 다시 호출을 허용합니다. Circuit Breaker 는 분산 시스템에서 안정성을 보장하기 위한 매우 중요한 요소 중 하나입니다. Circuit Breaker 가 없다면, 서비스 호출 실패와 지연에 대한 처리가 지연되어 시스템 전체의 성능에 영향을 미칠 가능성이 높습니다. Circuit Breaker 는 분산 시스템에서 발생할 수 있는 여러 가지 문제를 빠르게 감지하고, 시스템 전체의 안정성을 유지할 수 있도록 도와줍니다.

0

Istio - DestinationRule

목차 Istio - Locality Load Balancing (지역 로드 밸런싱) Istio - Sidecar Injection Istio - Istio 설치 및 addon 설치 Istio 란? 참고 https://istio.io/latest/docs/ops/deployment/architecture/ https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/ https://happycloud-lee.tistory.com/104 DestinationRule DestinationRule은 서비스 요청이 특정 서비스 버전 또는 인스턴스로 라우팅되도록 지정하는 규칙을 정의하는 리소스 DestinationRule은 Istio 서비스 메시에서 트래픽을 관리하는 중요한 요소 중 하나입니다. 이를 사용하여 서비스를 라우팅할 때 사용할 서비스 버전, 인스턴스 및 연결 방식을 지정할 수 있습니다. DestinationRule은 Istio의 다른 기능과 통합됩니다. 예를 들어, VirtualService와 함께 사용하여 특정 경로 및 트래픽 유형에 대한 규칙을 지정할 수 있습니다. 또한, 서비스 인스턴스의 로드 밸런싱 및 서킷 브레이커와 같은 기능도 DestinationRule을 사용하여 정의할 수 있습니다. 서비스 이름: 규칙을 적용할 대상 서비스의 이름을 지정합니다. 서비스 버전: 규칙을 적용할 대상 서비스의 버전을 지정합니다. 서비스 서브셋: 대상 서비스의 서브셋을 지정하여 트래픽을 특정 서브셋으로 라우팅할 수 있습니다. 연결 풀: 서비스 요청에 사용될 연결 풀을 정의합니다. 예를 들어, 서비스 인스턴스의 최대 연결 수 및 연결 유지 시간 등을 지정할 수 있습니다. 트래픽 정책: 대상 서비스의 트래픽을 제어하는 정책을 정의합니다. 예를 들어, 연결 시간 초과 및 연결 오류를 처리하는 방법 등을 정의할 수 있습니다.

0

Istio - Locality Load Balancing (지역 로드 밸런싱)

목차 Istio - Locality Load Balancing (지역 로드 밸런싱) Istio - Sidecar Injection Istio - Istio 설치 및 addon 설치 Istio 란? 참고 https://istio.io/latest/docs/ops/deployment/architecture/ https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/ https://happycloud-lee.tistory.com/104 http://itnp.kr/post/istio-circuit-break https://istiobyexample.dev/locality-load-balancing/ Istio - Locality Load Balancing Istio 의 Locality Load Balance 는 서비스 요청을 지역적으로 분산시키는 기능을 제공합니다. Locality Load Balance는 서비스 요청이 클러스터 내에서 발생할 때 해당 요청이 가장 가까운 지역의 서비스 인스턴스에 배정되도록 보장합니다. 이를 통해 클라이언트와 서비스 인스턴스 사이의 대기 시간을 줄이고, 네트워크 대역폭을 절약하며, 네트워크 병목 현상을 방지할 수 있습니다. Locality Load Balance는 Istio의 Envoy 프록시에서 구현됩니다. Envoy는 클러스터 내의 모든 서비스 인스턴스에 대한 위치 정보를 유지 관리하며, 클러스터의 지리적 분포를 파악하여 요청을 지역적으로 분산시킵니다. Locality Load Balance는 또한 Istio의 트래픽 관리 기능과 통합됩니다. Istio는 트래픽 관리 규칙을 정의하여 특정 서비스 인스턴스가 특정 지역에서만 처리되도록 할 수 있습니다. 이를 통해 서비스의 가용성을 높이고, 서비스 인스턴스 간의 부하를 균형있게 분산시킬 수 있습니다.

0

Istio - Sidecar Injection

목차 Istio - Locality Load Balancing (지역 로드 밸런싱) Istio - Sidecar Injection Istio - Istio 설치 및 addon 설치 Istio 란? 참고 https://istio.io/latest/docs/ops/deployment/architecture/ https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/ https://happycloud-lee.tistory.com/104 Sidecar injectionIstio는 Pod 안에 Envoy proxy container 를 Sidecar 패턴으로 생성하여 Service Mesh (discovery, connect, monitor) 를 합니다. Pod안에 Proxy container를 삽입하는것을 Sidecar Injection 이라고 부릅니다. Istio 에서 Sidecar Injection 은 Kubernetes 의 MutatingAdmissionWebhook 을 사용하여 구현됩니다. 이것은 Kubernetes의 API Server에 대한 요청 처리 중에 사용되며, 새로운 Pod가 생성될 때 Istio가 Sidecar Proxy 컨테이너를 자동으로 추가하는 것을 가능하게 합니다. Istio가 Sidecar를 주입하는 방식은 크게 두 가지 방법이 있습니다. 첫 번째는 자동 주입 방식으로, 이는 기존의 Kubernetes 오브젝트에 Istio의 Sidecar Proxy를 자동으로 추가합니다. 이를 위해서는 Istio의 설치 시 Kubernetes 리소스를 수정해야 합니다. 두 번째 방식은 수동 주입 방식으로, 이는 기존의 Kubernetes 오브젝트에 Istio의 Sidecar Proxy를 수동으로 추가해야 합니다. Sidecar 자동 주입 방식

0

Istio - istioctl

목차 Istio - Locality Load Balancing (지역 로드 밸런싱) Istio - Sidecar Injection Istio - istioctl Istio 란? 공식 홈페이지 https://istio.io/latest/docs/setup/getting-started/ Istioctl 설치brew install istioctl Istio Profile 확인istioctl profile list 특정 Profile 설치

0

Istio 란?

목차 Istio - Locality Load Balancing (지역 로드 밸런싱) Istio Ambient Mesh Istio Ambient Mesh - ztunnel과 HBONE 동작 Istio - Sidecar Injection Istio - Istio 설치 및 addon 설치 Istio 란? 공식 홈페이지 https://istio.io/latest/docs/setup/getting-started/ https://gruuuuu.github.io/cloud/service-mesh-istio/ Istio 란? Istio는 서비스 매쉬 (Service Mesh) 를 구현하기 위한 오픈소스 플랫폼 서비스 매쉬는 마이크로서비스 아키텍처에서 많은 서비스 인스턴스들이 동작하는 환경에서, 서비스들 간의 통신을 관리하고 모니터링할 수 있도록 해주는 기술 입니다. Istio는 Kubernetes 환경에서 동작하며, 다양한 기능을 제공합니다. 예를 들어, 서비스 간의 통신 보안, 트래픽 라우팅, 부하 분산, 서비스 간의 장애 처리 등을 제공합니다. 이러한 기능을 통해 서비스 매쉬를 쉽게 구현할 수 있고, 서비스들 간의 통신 관리를 간편하게 할 수 있습니다. Istio Architecture

0

Service Mesh

목차 Istio - Locality Load Balancing (지역 로드 밸런싱) Istio - Sidecar Injection Istio - Istio 설치 및 addon 설치 Istio 란? 공식 홈페이지 https://istio.io/latest/docs/setup/getting-started/ https://gruuuuu.github.io/cloud/service-mesh-istio/ 서비스 메쉬란?서비스 메쉬는 애플리케이션의 서비스 간 모든 통신을 처리하는 소프트웨어 계층 입니다. 기존의 모놀리스 서비스의 경우 서비스 복잡도가 높지 않았지만, 서비스들이 여러개로 나뉘어진 마이크로 서비스 아키텍처가 도입되면서 서비스간의 통신이 많아지고 복잡도가 증가 했습니다. 서비스 메쉬는 각 서비스에 프록시를 붙여서 서비스간의 통신을 프록시를 이용해 처리합니다. 덕분에, 서비스간의 통신을 쉽게 모니터링할 수 있고 보안과 같은 통신정책을 일괄적으로 적용할 수 있게 됐습니다. 서비스 메쉬란?