Azure Kubernetes Service에 대한 Istio 기반 서비스 메시 추가 기능
Istio는 분산 또는 마이크로 서비스 아키텍처로 개발자와 운영자가 직면한 문제를 해결합니다. Istio 기반 서비스 메시 추가 기능은 AKS(Azure Kubernetes Service)에 대해 공식적으로 지원되고 테스트된 통합을 제공합니다.
서비스 메시란?
최신 응용 프로그램은 일반적으로 마이크로 서비스의 분산 컬렉션으로 설계되며, 각 마이크로 서비스 컬렉션은 몇 가지 개별 비즈니스 기능을 수행합니다. 서비스 메시는 응용 프로그램에 추가할 수 있는 전용 인프라 계층입니다. 이를 통해 사용자 고유의 코드에 추가하지 않고도 가시성, 트래픽 관리 및 보안과 같은 기능을 투명하게 추가할 수 있습니다. 서비스 메시라는 용어는 이 패턴을 구현하는 데 사용하는 소프트웨어 유형과 해당 소프트웨어를 사용할 때 생성되는 보안 또는 네트워크 도메인을 모두 설명합니다.
Kubernetes 기반 시스템과 같은 분산 서비스의 배포가 크기 및 복잡성이 증가함에 따라 이해하고 관리하기가 더 어려워질 수 있습니다. 검색, 부하 분산, 오류 복구, 메트릭 및 모니터링과 같은 기능을 구현해야 할 수 있습니다. 또한 서비스 메시는 A/B 테스트, 카나리아 배포, 속도 제한, 액세스 제어, 암호화 및 엔드 투 엔드 인증과 같은 보다 복잡한 운영 요구 사항을 해결할 수 있습니다.
서비스 간 통신은 분산 응용 프로그램을 가능하게 합니다. 서비스 수가 증가함에 따라 응용 프로그램 클러스터 내에서와 전체에서 이 통신을 라우팅하는 것이 점점 더 복잡해집니다. Istio는 개발 팀의 부담을 줄이면서 이러한 복잡성을 줄이는 데 도움이 됩니다.
Istio란?
Istio는 기존 분산 애플리케이션에 투명하게 계층화되는 오픈 소스 서비스 메시입니다. Istio의 강력한 기능은 서비스를 보호, 연결, 모니터링하는 균일하고 효율적인 방법을 제공합니다. Istio를 사용하면 서비스 코드를 거의 또는 전혀 변경하지 않고 부하 분산, 서비스 간 인증 및 모니터링을 수행할 수 있습니다. 강력한 컨트롤 플레인은 다음을 비롯한 중요한 기능을 제공합니다.
- TLS(전송 계층 보안) 암호화, 강력한 ID 기반 인증 및 권한 부여를 사용하여 클러스터에서 서비스 간 통신을 보호합니다.
- HTTP, gRPC, WebSocket 및 TCP 트래픽에 대한 자동 부하 분산.
- 풍부한 라우팅 규칙, 다시 시도, 장애 조치(failover) 및 오류 주입을 통해 트래픽 동작을 세밀하게 제어합니다.
- 액세스 제어, 속도 제한 및 할당량을 지원하는 플러그형 정책 계층 및 구성 API입니다.
- 클러스터 수신 및 송신을 포함하여 클러스터 내의 모든 트래픽에 대한 자동 메트릭, 로그 및 추적.
추가 기능은 오픈 소스 Istio와 어떻게 다른가요?
이 서비스 메시 추가 기능은 오픈 소스 Istio를 기반으로 사용하고 빌드합니다. 추가 기능 버전은 다음과 같은 추가 이점을 제공합니다.
- Istio 버전은 지원되는 Azure Kubernetes Service 버전과 호환되도록 테스트되고 확인됩니다.
- Microsoft에서 Istio 컨트롤 플레인의 크기 조정과 구성을 처리합니다.
- Microsoft는 Istio를 사용하는 경우
coredns
와 같은 AKS 구성 요소의 크기를 조정합니다. - Microsoft는 사용자가 트리거할 때 Istio 구성 요소에 대해 관리되는 수명 주기(업그레이드)를 제공합니다.
- 외부 및 내부 수신 설정이 확인되었습니다.
- Azure Monitor Prometheus용 관리 서비스 및 Azure Managed Grafana와 함께 작동하는 것으로 확인되었습니다.
- 추가 기능에 대한 공식 Azure 지원이 제공됩니다.
제한 사항
AKS용 Istio 기반 서비스 메시 추가 기능에는 다음과 같은 제한 사항이 있습니다.
추가 기능은 AKS용 Open Service Mesh 추가 기능을 사용하는 AKS 클러스터에서 작동하지 않습니다.
추가 기능은 Istio의 자체 관리형 설치가 있는 AKS 클러스터에서 작동하지 않습니다.
추가 기능은 메시 아래에 추가할 가상 노드와 연결된 Pod 추가를 지원하지 않습니다.
추가 기능은 아웃바운드 트래픽 제어에 대한 송신 게이트웨이를 아직 지원하지 않습니다.
추가 기능은 사이드카 없는 앰비언트 모드를 아직 지원하지 않습니다. Microsoft는 현재 Istio 오픈 소스에서 앰비언트 작업 스트림에 기여하고 있습니다. 앰비언트 모드에 대한 제품 통합은 로드맵에 있으며 앰비언트 작업 흐름이 발전함에 따라 지속적으로 평가되고 있습니다.
추가 기능은 아직 다중 클러스터 배포를 지원하지 않습니다.
추가 기능은 아직 Windows Server 컨테이너를 지원하지 않습니다. Windows Server 컨테이너는 현재 오픈 소스 Istio에서 아직 지원되지 않습니다. 이 기능 질문 추적 문제는 여기에서 찾을 수 있습니다.
다음 사용자 지정 리소스를 통한 메시 사용자 지정은 현재 차단됩니다.
ProxyConfig, WorkloadEntry, WorkloadGroup, IstioOperator, WasmPlugin
추가 기능을 사용하면 다른 필터 형식이 차단된 다음
EnvoyFilter
필터 형식을 사용할 수 있습니다.- 루아 (
type.googleapis.com/envoy.extensions.filters.http.lua.v3.Lua
). - 압축기(
type.googleapis.com/envoy.extensions.filters.http.compressor.v3.Compressor
) - 로컬 속도 제한(
type.googleapis.com/envoy.extensions.filters.http.local_ratelimit.v3.LocalRateLimit
)
참고 항목
이러한
EnvoyFilter
문제는 허용되지만 이러한 문제(예: Lua scipt 또는 압축 라이브러리에서 발생)는 Istio 추가 기능의 지원 범위를 벗어날 수 있습니다. Istio 추가 기능 및 구성 옵션에 대한 지원 범주에 대한 자세한 내용은 지원 정책 문서를 참조하세요.- 루아 (
Istio 수신 게이트웨이 또는 GAMMA(메시 트래픽) 관리에 대한 게이트웨이 API는 현재 Istio 추가 기능에서 아직 지원되지 않습니다. 그러나 Istio 수신 트래픽 관리를 위한 게이트웨이 API는 현재 추가 기능에 대해 활성 개발 중입니다. 추가 기능은 IP 주소 및 서비스 태그에 대한 Istio 수신 게이트웨이에 대한 주석 사용자 지정을 지원하지만 포트 또는 프로토콜 구성은 현재 지원되지 않습니다.
피드백 및 기능 질문
AKS GitHub 리포지토리에서 레이블 'service-mesh'에 문제를 만들어 Istio 추가 기능에 대한 피드백 및 기능 요청을 제공할 수 있습니다.
다음 단계
Azure Kubernetes Service