본문 바로가기
728x90

DevOps47

istio 버전 업그레이드 이번 시간에는 istio 버전을 업그레이드 하는 방법에 대해 알아보자. istio 공식 문서를 보면 업그레이드 방식은 in-place와 canary로 총 두 가지가 있으며 권장되는 방식인 canary 업그레이드에 대해 자세히 알아보자. in-placein-place는 istiod와 gateway를 업그레이드하고 sidecar를 업그레이드 하는 방식이다. 공식문서에서는 in-place 업그레이드 방식을 사용하면 업그레이드 중에 트래픽 중단이 발생할 수 있다고 한다. 중단을 최소화 하기 위해서 istiod의 레플리카를 최소 두 개 이상으로 설정하는 것이 좋다고 한다. 그리고 --revision 플래그로 설치를 한 것과 호환이 되지 않는다고 한다. in-place 방식보다는 canary 방식이 권장되는 방식이.. 2025. 3. 3.
istio EnvoyFilter에 대해 알아보자. EnvoyFilter는 istiod에 의해 생성된 envoy 구성을 커스터마이징할 때 사용한다. EnvoyFilter를 사용하면 특정 필드의 값을 변경하거나 특정 필터를 추가하거나 새로운 리스너나 클러스터를 추가할 수 있다. 보통 istio에서는 Envoy 구성을 Gateway, VirtualService, DestionationRule 등을 사용하여 Envoy의 지식이 없어도 트래픽 정책에 대한 제한된 구성을 쉽게 구성할 수 있다면 EnvoyFilter를 사용하면 istio에서 제공하는 Custom Resource에 대한 기능 외에도 다양한 Envoy 기능을 자유롭게 사용할 수 있다. 그래서 istio Custom Resource에서 제공하고 있지는 않지만 Envoy에서 제공하는 기능을 사용해야 할 때.. 2025. 3. 3.
istio와 envoy proxy 세부적으로 파악해보기 istio를 다루다보면 envoy proxy에 대한 내용도 이해해야 하고, EnvoyFilter를 사용하여 라우팅룰을 조금 더 자유롭게 구성하기 위해서 envoy proxy에 대한 내용을 잘 알아야 한다. 특히 EnvoyFilter의 필드는 envoy proxy에 대한 스펙을 다루기 때문이다. 그래서 이번 시간에는 istio와 envoy proxy와의 관계와 istio를 다루기 위해 필요한 envoy proxy의 기초 지식에 대해 알아보는 시간을 가지도록 하겠다.envoy proxy란?envoy는 대규모 현대 서비스 지향 아키텍처를 위해 설계된 L7 proxy 및 통신 버스이다. Envoy는 다음과 같은 철학을 가지고 개발하였다.네트워크는 애플리케이션에 투명해야 하며, 네트워크 또는 애플리케이션에서 문제.. 2025. 2. 20.
ArgoCD App of Apps 패턴 App of Apps은 ArgoCD에서 제안하는 ArgoCD Application 관리 방식이다. 여러개의 클러스터를 가지고 있으며 클러스터에 많은 Application을 설치하려는 운영자를 대상으로 소개하는 패턴이다. 개념ArgoCD Application은 Git에 있는 매니페스트를 주기적으로 확인하여 변경사항이 발생한다면 지정된 쿠버네티스 클러스터에 반영한다.Git에 저장된 매니페스트는 쿠버네티스 리소스를 나타내는 yaml 파일이며, 여기에는 Deployment, Service, CronJob 등 클러스터에 지원하는 쿠버네티스 API는 모두 될 수 있다. 마찬가지로 ArgoCD Application도 커스텀 리소스이기 때문에 쿠버네티스 API 중에 하나이다. 이 특성을 잘 이해한다면 ArgoCD Ap.. 2025. 1. 26.
쿠버네티스에서의 고가용성 (High Availability) High Availability고가용성(High Availability) 은 시스템 내의 어떤 구성 요소에 장애가 발생하더라도 실패나 다운타임 없이 시스템을 지속적으로 운영할 수 있는 능력을 의미한다. 보통 고가용성을 99%, 99.9% 와 같은 비율로 표현하는데 99.999%의 매우 높은 가용성을 의미하는 fine-nines availability 라는 가용성 표준이 있으며, 이 가용성을 유지하려면 1년에 약 5분 15초 이하의 다운타임을 유지해야 한다. 고가용성 시스템을 잘 구축하려면 시스템을 잘 설계해야 하며 철저한 테스트를 거쳐야 한다. 시스템의 구성 요소가 서비스 중단 발생 시에도 시스템이 지정된 가용성 표준을 유지할 수 있도록 설계해야 한다. 고가용성은 어떻게 작동하나?시스템을 항상 100%로.. 2025. 1. 26.
istio traffic 관리 (3) [Egress Gateway] 이전 시간에는 ingress gateway를 위주로 알아봤었는데 이번 시간에는 egress gateway를 위주로 알아보자. ingress gateway가 외부에서 mesh에 대한 인바운드 트래픽을 관리하는 것이라면 mesh에서 바깥으로 나가는 트래픽을 관리하기 위해서 사용하는 것이 egress gateway이다. 사용하는 이유mesh에서 바깥으로 나가는 트래픽을 관리하기 위해 egressgateway를 사용하는 이유는 매우 다양하다. 1. ACL 관리특정 기능을 제공하기 위해 외부 서비스의 기능을 사용하는 경우, 외부 서비스에서는 특정 IP만 해당 서버와 요청할 수 있도록 ACL 제한을 두는 경우가 있다. 하지만 모든 쿠버네티스 워커노드에 공인 IP가 있는 것은 아닐 것이다. 워커노드에서 인터넷이 되는.. 2025. 1. 18.
istio traffic 관리 (2) [Gateway] istio에서 mesh에 대한 인바운드/아웃바운드 트래픽을 관리하기 위해 Gateway를 사용하며, 어떤 트래픽이 mesh에 들어오거나 나갈지를 지정할 수 있다. Gateway의 구성은 애플케이션과 함께 실행되는 사이드카의 envoy proxy가 아닌 mesh의 엣지에서 실행되는 독립적인 envoy proxy에 적용된다. 쿠버네티스의 ingress API와 같이 시스템으로 들어오는 트래픽을 관리하는 메커니즘과 다르게, istio gateway를 사용하면 강력하고 유연한 트래픽 라우팅 기능을 사용할 수 있다. istio의 Gateway를 사용하면 노출시킬 포트, TLS 설정 등과 같은 L4~L6 로드밸런싱 속성을 구성할 수 있기 때문이다. 그리고 L7 트래픽 라우팅 룰은 Gateway에 직접 추가하지 않고.. 2025. 1. 13.
istio traffic 관리 (1) [VirtualService & DestinationRule] istio의 트래픽 라우팅 룰은 서비스 간 트래픽과 API 흐름을 쉽게 제어할 수 있게 한다. istio는 서킷 브레이커, 타임아웃, retry와 같은 서비스 레벨 수준의 기능 구성을 간단하게 하고, 비율 기반 트래픽 분할을 활용하여 A/B 테스팅, Canary rollout 등을 쉽게 할 수 있다. 또한, 종속 서비스나 네트워크의 오류에 대해 애플리케이션을 보다 강력하게 만드는 데 도움이 되는 out-of-box failure recovery 기능을 제공한다. istio의 트래픽 관리 모델은 서비스와 함께 배포되는 envoy-proxy에 의존한다. 메쉬에서 주고받은 모든 트래픽은 envoy를 거치기 때문에 서비스를 변경하지 않고도 메쉬간 트래픽을 쉽게 전달하고 제어할 수 있다. istio에서 제공하는 .. 2025. 1. 12.
istio 소개 및 설치 istio는 기존 분산 애플리케이션에 투명하게 레이어링되는 오픈소스 서비스 메쉬이다. istio의 강력한 기능은 서비스를 보호하고 연결하고 모니터링하는 균일하고 효율적인 방법을 제공한다. istio를 사용하면 애플리케이션 코드를 거의 변경하지 않아도 아래 기능들을 사용할 수 있다.mTLS, 강력한 ID 기반 인증 및 권한 부여를 통해 클러스터에서 안전한 서비스간 통신을 제공한다.HTTP, gRPC, WebSocket, TCP 트래픽에 대한 로드밸런싱 기능 제공풍부한 라우팅 규칙, retry, failover, fault injection 을 통한 트래픽 세부 제어접근 제어, 속도 제한, rate limits을 지원하는 플러그형 정책을 구성할 수 있다.클러스터를 오가는 모든 트래픽에 대한 자동 메트릭, 로.. 2025. 1. 12.
728x90