istio

이스티오의 가상머신 지원Istio는 원래 쿠버네티스(Kubernetes) 환경에서 동작하도록 설계된 서비스 메시 프레임워크다. 그러나 현실의 인프라는 쿠버네티스로만 구성되어 있지 않다. 온프레미스에 존재하는 레거시 서버, 클라우드 상의 EC2와 같은 VM 인스턴스, 때로는 물리 서버까지 다양한 형태의 워크로드가 함께 운영되는 경우가 많다. 이런 하이브리드 환경에서도 일관된 트래픽 제어, 인증, 관측 기능을 제공하기 위해 Istio는 가상머신(VM) 지원 기능을 제공한다. 이를 통해 쿠버네티스 밖에 있는 VM 워크로드도 쿠버네티스 내부 Pod와 동일한 방식으로 제어 및 관찰할 수 있다. 가상머신을 Istio 메시(mesh)에 연결하면 다음과 같은 이점이 생긴다:서비스 간 mTLS 기반의 보안 통신정책 기..
개요Istio는 기본적으로 뛰어난 트래픽 제어 기능을 제공하지만, 현실 세계의 다양한 요구사항을 모두 충족하긴 어렵다. 예를 들어, 특정 조건에 따라 헤더를 동적으로 추가하거나, 외부 서비스를 호출해 요청 정보를 추가해야 하는 경우도 있다. 이런 시나리오에서는 Istio 내부 API만으로는 한계가 존재한다. 이때 Istio의 내부 구성 요소인 Envoy 프록시의 필터 체인을 직접 확장하면 데이터 플레인의 동작을 더욱 유연하게 제어할 수 있다. 이를 위한 핵심 도구가 바로 EnvoyFilter 리소스다. 단, EnvoyFilter는 잘못 구성하면 서비스 메쉬 전체에 영향을 줄 수 있어 신중한 접근이 필요하다. 일부 전문가들은 운영 환경에서는 가급적 사용을 최소화할 것을 권장하기도 한다. Envoy 필터 체..
1. 개요현대적인 클라우드 아키텍처에서는 여러 개의 쿠버네티스 클러스터를 운영하는 것이 점점 더 일반적인 선택이 되고 있다. 단일 클러스터로 모든 워크로드를 처리하려는 접근은 초기에는 단순하고 빠르게 시작할 수 있지만, 시간이 지날수록 확장성, 장애 복원력, 규정 준수, 팀 간 책임 분리 등 다양한 한계에 부딪히게 된다. Istio는 이러한 상황에 대응할 수 있도록 여러 클러스터를 하나의 서비스 메시로 통합할 수 있는 기능을 제공한다. 이를 통해 클러스터가 분리되어 있더라도 트래픽 제어, 보안 정책, 관찰 가능성(mTLS, 로그, 메트릭) 등의 기능을 일관되게 적용할 수 있으며, 운영자는 단일 메시처럼 관리할 수 있다.1.1 서비스 메시 확장 방식Istio는 여러 클러스터 환경에서 서비스 메시를 구성하는..
들어가며Istio는 서비스 메시의 강력한 기능을 제공하지만, 기본 설정만으로는 모든 환경에서 최적의 성능을 보장하지 않는다. 특히 대규모 트래픽, 빠르게 변화하는 마이크로서비스 환경, 복잡한 리소스 구조에서는 컨트롤 플레인과 데이터 플레인 모두에서 성능 병목이 발생할 수 있다. Istio의 성능을 튜닝한다는 것은 단순히 리소스를 늘리는 것이 아니라, 어떤 설정이 불필요하게 부하를 주고 있는지, 어디서 병목이 생기고 있는지를 정확히 진단하고, 이에 맞는 전략을 적용해야 한다. Istio 성능 저하의 주요 원인은 다음과 같다:컨트롤 플레인의 설정 생성 및 푸시 처리 병목모든 프록시에 과도하게 전달되는 설정필요 없는 네임스페이스나 워크로드까지 감지하는 디스커버리 범위짧은 간격으로 반복되는 설정 이벤트에 의한 ..
0. 들어가며Istio는 강력한 서비스 메시 기능을 제공하지만, 그만큼 구조가 복잡해 문제가 발생했을 때 원인을 파악하기 어렵다. 특히 네트워크 지연, 응답 실패, 잘못된 라우팅과 같은 문제들은 컨트롤 플레인과 데이터 플레인, 애플리케이션 간의 상호작용 속에서 발생하기 때문에 단순한 로그 확인만으로는 실마리를 찾기 어렵다. 이번 포스팅에서는 Istio에서 자주 발생하는 문제 상황을 재현하고, 이를 디버깅하고 해결하는 과정을 다룬다. VirtualService, DestinationRule 설정 오류부터, Envoy Proxy의 헬스 체크, 지연 응답, 그리고 Prometheus 쿼리 분석까지 운영에서 에서 마주칠 수 있는 다양한 트러블슈팅 방법을 단계별로 정리해 본다.실습 환경 구성: 설정 누락으로 50..
이전 포스팅에서는 트래픽이 Ingress Gateway를 거쳐 클러스터 내부로 들어오면, 요청 수준에서 트래픽을 조작하고 어디로 라우팅 할지 세밀하게 제어하는 방법을 다뤘다.하지만 라우팅을 아무리 잘 제어한다고 해도, 현실에서는 여전히 다음과 같은 문제가 항상 발생한다.애플리케이션 오류네트워크 장애예측할 수 없는 시스템 실패이러한 상황은 수작업으로 대응하기엔 너무 빠르고 복잡하다. 그래서 필요한 게 바로, 문제가 발생했을 때 자동으로 대응하는 회복탄력성(resilience) 이다. Istio를 사용하면, 이 모든 복원 기능을 애플리케이션 코드를 수정하지 않고 네트워크 레벨에서 쉽게 적용할 수 있다. 이번 포스팅에서는 Istio의 다양한 회복탄력성 기법들을 어떻게 설정하고 적용하는지 살펴본다클라이언트 측 ..
이전 포스팅에서는 외부 트래픽을 클러스터로 유입시키는 방법(Istio IngressGateway)과, 그 과정에서 고려해야 할 요소들을 살펴봤다. 이번 포스팅에는 클러스터 내부로 들어온 요청이 어떻게 적절한 서비스로 라우팅 되는지에 대해 알아본다. 클러스터 안에 있는 서비스들은 서로 어떻게 통신할까? 또, 클러스터 밖에 있는 다른 서비스와 통신하려면 어떤 경로를 거쳐야 할까?Istio는 VirtualService를 통해 트래픽이 어떤 방식으로 라우팅 될지 애플리케이션 간 트래픽을 개별 요청 단위까지 세밀하게 제어할 수 있다. Istio의 다양한 트래픽 관리 기법에 대해 알아보자. 요청 라우팅(Routing requests with Istio)새로운 코드 배포 리스크 위험 줄이기Blue/Green 배포는 ..
Istio Ingress Gateway 란?Istio에서 Ingress Gateway는 외부에서 들어오는 트래픽을 Mesh 내부로 유입시키는 진입점 역할을 한다.기존 Kubernetes의 Ingress와 비슷한 개념이지만, 더 세밀한 제어와 L7 기반의 트래픽 정책을 지원한다. Istio Ingress Gateway의 동작과 기능에 대해 알아보도록 하자. Istio API vs Kubernetes Gateway APIKubernetes도 최근 Gateway API를 정식 채택하면서, “Gateway”라는 용어가 Kubernetes와 Istio 양쪽에서 다르게 사용되며 혼동을 줄 수 있다. 게다가 게이트웨이의 구현체에 따라 구성 방식이 달라지기 때문에, 어떤 방식으로 정의하고 구성하느냐에 따라 사용 리소스..
장성필(hackjap)
'istio' 태그의 글 목록