본문 바로가기

Develop/Kubernetes

Istio란?

 

https://cloud.google.com/learn/what-is-istio?hl=ko 

 

Istio란?  |  Google Cloud

Istio는 조직에서 분산형 마이크로서비스 기반 앱을 어디서나 실행할 수 있도록 지원하는 오픈소스 서비스 메시입니다. Istio의 이점에 대해 알아보세요.

cloud.google.com

 

istio란 무엇인가?

2017년 5월에 Google, Lyft, IBM에서 내놓은 서비스 메쉬(Service Mesh) 솔루션입니다. 서비스 메쉬는 마이크로서비스아키텍처(MSA) 구조에서 각 서비스들간의 트래픽을 제어하는 역할을 합니다. 주요 기능

arisu1000.tistory.com

Istio란?

Istio는 애플리케이션 네트워크 기능을 유연하고 쉽게 자동화할 수 있는 투명한 언어 독립적 방법을 제공하는 현대화된 서비스 네트워킹 레이어인 서비스 메시입니다. 클라우드 기반 애플리케이션을 구성하는 다양한 마이크로서비스를 관리하는 데 널리 사용되는 솔루션입니다. Istio 서비스 메시는 또한 이러한 마이크로서비스가 서로 통신하고 데이터를 공유하는 방법을 지원합니다.

조직이 클라우드로의 이동을 가속화하면서 필요에 따라 애플리케이션도 현대화하고 있습니다. 그러나 모놀리식 레거시 앱을 클라우드 기반 앱으로 전환하면 DevOps팀에 문제가 발생할 수 있습니다.

개발자는 클라우드에서 이동성을 보장하기 위해 느슨하게 결합된 마이크로서비스를 사용하여 앱을 어셈블하는 방법을 학습해야 합니다. 동시에 운영팀은 점점 더 커지는 하이브리드 및 멀티 클라우드 환경 내에서 새로운 클라우드 기반 앱을 관리해야 합니다. Istio를 사용하면 이러한 작업을 수행할 수 있습니다.

Istio의 정의

Istio는 조직에서 분산형 마이크로서비스 기반 앱을 어디서나 실행할 수 있도록 지원하는 오픈소스 서비스 메시입니다. 왜 Istio를 사용해야 하나요? Istio를 통해 조직은 마이크로서비스를 보호, 연결, 모니터링할 수 있으므로 엔터프라이즈 앱을 더욱 빠르고 안전하게 현대화할 수 있습니다.

Istio는 애플리케이션 코드를 변경할 필요 없이 서비스 간 트래픽 흐름을 관리하고 액세스 정책을 적용하며 원격 분석 데이터를 집계합니다. Istio는 기존의 분산형 애플리케이션에 투명하게 레이어링하여 배포 복잡성을 완화합니다.

Istio 서비스 메시의 이점

일관된 서비스 네트워킹 달성

 

네트워킹 운영자는 개발자 오버헤드를 추가하지 않고도 모든 서비스의 네트워킹을 일관성 있게 관리할 수 있습니다.

Istio 이점을 통한 서비스 보호

 

보안 운영자는 인증, 승인, 암호화를 비롯한 서비스 간 보안을 쉽게 구현할 수 있습니다.

애플리케이션 성능 향상

 

카나리아 롤아웃과 같은 권장사항을 구현하고 애플리케이션을 심도 있게 파악하여 성능을 개선하기 위해 집중해야 하는 부분을 파악할 수 있습니다.

Istio, Envoy, Kubernetes의 작동 방식

Istio와 Istio 아키텍처를 이해하기 위해서는 Envoy와 Kubernetes에 대해 알아야 합니다. Istio 대 Envoy 또는 Istio 대 Kubernetes의 문제가 아닙니다. 마이크로서비스 기반의 컨테이너화된 환경이 원활하게 작동하도록 이들을 함께 사용할 수 있습니다.

예를 들어 Istio 같은 서비스 메시는 제어 영역과 데이터 영역으로 구성됩니다. Istio는 Envoy의 확장된 버전을 데이터 영역으로 사용합니다. 그러면 Envoy가 Istio 서비스 메시의 모든 인바운드 트래픽과 아웃바운드 트래픽을 관리합니다.

반면 Kubernetes는 컨테이너화된 애플리케이션을 자동화하고 조정하여 이를 배포 및 확장하는 데 사용되는 많은 수동 프로세스를 제거하는 오픈소스 플랫폼입니다. Istio는 플랫폼에 독립적이지만, 개발자들은 Istio와 Kubernetes를 함께 사용하는 경우가 더 많습니다.

Istio는 플랫폼에 독립적이며 다양한 환경에서 실행되도록 설계되었습니다.

  • 클라우드
  • 온프레미스
  • Kubernetes
  • Mesos

Istio의 용도

Istio를 통해 조직은 분산형 애플리케이션을 대규모로 제공할 수 있습니다. 트래픽 관리, 승인, 암호화는 물론 감사 및 관측 가능성과 같은 서비스 간 네트워크 작업을 단순화합니다. 다음은 Istio의 이점을 제공하는 가장 일반적인 사용 사례입니다.

 

     안전한 클라우드 기반 앱

         강력한 ID 기반 인증, 승인, 암호화를 통해 애플리케이션 수준에서 보안을 강화할 수 있습니다.

 

     효율적인 트래픽 관리

         다양한 라우팅 규칙, 재시도, 장애 조치, 결함 주입으로 트래픽 동작을 세밀하게 제어할 수 있습니다.

 

     서비스 메시 모니터링

         Istio의 강력한 추적, 모니터링, 로깅 기능으로 서비스 성능이 업스트림에 미치는 영향을 자세히 파악할 수 있습니다.

 

     Kubernetes 및 가상 머신을 통한 간편한 배포

         Istio는 컨테이너 및 가상 머신을 포함한 기존 워크로드와 최신 워크로드 모두에 대해 가시성과 네트워크 제어를 제공합니다.

 

     고급 기능으로 부하 분산 간소화

         클라이언트 기반 라우팅, 카나리아 롤아웃과 같은 고급 기능과 함께 모든 트래픽에 자동화된 부하 분산을 사용할 수 있습니다.

 

     정책 시행

         액세스 제어, 비율 제한, 할당량을 지원하는 플러그인 가능한 정책 레이어 및 구성 API를 사용하여 정책을 시행할 수 있습니다.

 

 

https://arisu1000.tistory.com/27865

istio란 무엇인가?

 

istio란 무엇인가?

2017년 5월에 Google, Lyft, IBM에서 내놓은 서비스 메쉬(Service Mesh) 솔루션입니다. 서비스 메쉬는 마이크로서비스아키텍처(MSA) 구조에서 각 서비스들간의 트래픽을 제어하는 역할을 합니다. 주요 기능

arisu1000.tistory.com

2017년 5월에 Google, Lyft, IBM에서 내놓은 서비스 메쉬(Service Mesh) 솔루션입니다.

서비스 메쉬는 마이크로서비스아키텍처(MSA) 구조에서 각 서비스들간의 트래픽을 제어하는 역할을 합니다.

 

주요 기능

  • 서비스간의 트래픽이나 API 호출을 컨트롤
  • 통신사이의 트래픽을 암호화하고 인증과 권한제어가 가능함.
  • 트래픽 정책이나 자원 제어
  • 서비스들에 대한 tracing, monitoring, logging을 자동으로 수행

아키텍처

 

  • 이스티오의 구조는 논리적으로 data plane과 control plane 두 개의 영역으로 구분되어 있습니다.
  • data plane : 실제 데이터 트래픽이 돌아다니는 영역.
  • control plane : 트래픽 경로를 설정하고 관리하는 용도로 사용. Mixer의 정책을 설정하고 텔레메트리를 수집하는 용도로 사용.

 

주요 구성 요소

Envoy

lyft사에서 개발한 C++로 개발된 고성능 프록시. 이스티오에서는 엔보이의 확장판을 사용합니다.

이스티오를 사용해서 드나드는 모든 트래픽은 envoy를 거치게 됩니다. 이스티오는 엔보이의 다음 기능을 많이 활용합니다.

  • 동적 서비스 디스커버리
  • 로드밸런싱
  • TLS 인증서 처리
  • HTTP/2, gRPC 프록시
  • 서킷브레이커
  • 헬스체크
  • 트래픽을 스테이지 단계별로 나눠서 보내는 기능(Staged rollouts with %-based traffic split)
  • 실패 삽입
  • 풍부한 메트릭

쿠버네티스 pod에 사이드카 형태로 추가되어서 배포됩니다. 배포되고 나면 믹서(mixer)에서 활용가능한 다양한 통계 정보를 제공해 줍니다.

사이드카 형태이기 때문에 기존 컨테이너나 코드를 재작성할 필요없이 그대로 이용할 수 있습니다.

 

Mixer

Mixer는 플랫폼 독립적인 컴포넌트입니다. 전체 서비스메쉬에서 접근 정책을 관리하고 엔보이 프록시와 다른 서비스들에서 모니터링 데이터를 수집합니다.

 

Pilot

Pilot은 엔보이에 대한 서비스 디스커버리, 라우팅(A/B 테스트, 카나리 배포)용 트래픽 관리 기능, 타임아웃, 재시도, 서킷브레이커 같은 기능들을 제공합니다.

istio용 라우팅 설정을 엔보이 전용 설정으로 변경해서 넣고 실행중인 사이드카에 그걸 적용시키는 역할을 합니다. 

이렇게 envoy 설정하는걸 추상화 시켜놨기 때문에 istio는 하나의 설정으로 kubernetes, consol, nomad같은 다양한 환경에서 사용할 수 있습니다.

 

Citadel

citadel은 내장된 인증 관리를 이용해서 서비스간, 엔드유저간 인증을 강화하는 역할을 합니다.

citadel을 이용해서 누가 서비스에 접근할수 있는지를 제어할 수 있습니다.

 

Galley

istio의 설정을 validation, ingestion, processing, distribution 하는 역할을 합니다. 



출처: https://arisu1000.tistory.com/27865 [아리수]