Istio의 4가지 개념

박원균·2023년 7월 24일
0

Kubernetes

목록 보기
22/24

Istio 의 4 개념

Istio 문서 페이지에 들어가면 4가지의 개념을 가지고 이야기를 시작합니다.

1. 트래픽 관리

2. 보안

3. Observability(관측)

4. 확장성

여기서 큰 맥락을 이해하고 갈 수 있습니다. istio라는 것은 네트워크의 트래픽을 관리하면서 보안성을 증대시키고 관측을 진행하여 이상현상을 빠르게 파악할 수 있고 언제든지 확장이 가능하구나

맥락을 파악 했다면 이제 하나의 개념씩 익숙해져야겠지요?

1. 트래픽 관리

본래 K8s에서 네트워크 트래픽을 관리하고 라우팅 하는 기본 메커니즘은 다음과 같습니다.

Pod, Service, Ingress, Network Policies 이러한 기능들은 k8s에서 기본적으로 제공하는 네트워크 관리 기능이지만 이러한 기능만으로는 트래픽 라우팅, 복잡한 로드 밸런싱, 서비스 디스커버리, 트래픽 분할 등의 고급 기능을 구현하는데 한계가 있습니다. 그래서 이러한 복잡한 요구사항을 처리하기 위해 Istio와 같은 서비스 메시 솔류션을 사용하게 됩니다.

어떤 식으로 관리하는지 궁금하지는 않으신가요? 기존 Service와 Istio의 가상 서비스를 보면서 비교를 해보겠습니다.

k8s의 기본 서비스는 파드에서 실행중인 애플리케이션을 노출하는 추상화 방법으로 파드에게 고유한 ip 주소와 파드 집합에 대한 단일 DNS를 부여한다음 LB를 수행하는 친구입니다. 

그에 반해 Istio의 virtualService는 트래픽 관리를 유연하고 강력하게 만드는데 기능을 가지고 있다고 보시면 되겠습니다. virtualService는 워크로드에 트래픽을 전송하기 위한 다양한 트래픽 라우팅 규칙을 지정할 수 있는 다양한 방법도 가지고 있습니다.

그럼 Istio에서 네트워크 관리하는 개념은 무엇들이 있는가?

  • virtualService
  • Destination rules
  • Gateways
  • Service entries
  • Sidecars
  • Network resilience and testing

위 6개 개념으로 이뤄져있습니다. 자세한 부분은 나중에 천천히 같이 학습해가도록 하겠습니다.아래에는 트래픽 관리하는 기능들 입니다.

Request RoutingFault InjectionTraffic ShiftingTCP Traffic Shifting
Request TimeoutsCircuit BreakingMirroringLocality Load Balancing
IngressEgress  

2. 보안

모놀리식 애플리케이션을 원자 서비스로 세분화하면 민첩성 향상, 확장성 개선, 서비스 재사용 능력 향상 등 다양한 이점을 얻을 수 있습니다. 하지만 마이크로서비스에는 특별한 보안 요구 사항도 있습니다:

요구사항 
1. 중간자 공격을 방어하려면 트래픽 암호화가 필요합니다.
2. 유연한 서비스 접속 제어를 제공하려면 상호 TLS와 세분화된 접속 정책이 필요합니다.
3. 누가 언제 무엇을 했는지 확인하려면 감사 도구가 필요합니다.

Istio 보안은 이러한 문제를 해결할 수 있는 종합적인 보안 솔루션을 제공합니다. 이 페이지에서는 Istio 보안 기능을 사용하여 어디서든 서비스를 보호할 수 있는 방법에 대한 개요를 제공합니다. 특히 Istio 보안은 데이터, 엔드포인트, 커뮤니케이션 및 플랫폼에 대한 내부 및 외부 위협을 모두 완화합니다.

Istio의 보안 설명 부분을 가져와 조금의 수정을 가미했습니다. 

3. Observability (관측 가능성)

컨테이너 기반 오케스트레이션 프레임워크 즉, kubernets를 Grafana로 모니터링을 하면 바로 파드간의 트래픽, 노드의 상태 를 전부 알 수 있을까요?

기존 k8s에도 네트워크 트래픽와 네크워트 활동된 정보를 얻을 수 있습니다만 특정 서비스에서 다른 서비스로의 요청이 얼마나 걸리는지(소요 시간), 어떤 요청이 실패하는지, 특정 서비스가 얼마나 많은 트래픽을 처리하는지에 대한 정보는 얻기가 힘듭니다. 그래서 Istio를 도입하여 더욱 세밀한 메트릭, 로그, 추적 정보를 활용하는 것 입니다.

4. Extensibility (확장 가능성)

Istio는 Envoy 프록시를 기반을 작동합니다. 사용자는 Envoy 필터를 사용하여 각 Envoy 프록시의 도앚ㄱ을 확장하고 수정할 수 있습니다.

Isito를 확장하여 api 게이트웨이로 사용하거나, Api 키 유효성 겁사, Api 비율 제한, Api 버전 관리 등의 기능을 추가할 수 잇씁니다.

정책 및 보안 기능을 지원

위 와 같은 기능 및 기타 기능을 추가할 수 있어 istio는 매우 유연하게 사용자의 요구에 따라 다양한 방식으로 서비스 메시를 구성할 수 있습니다.

profile
함바라기

1개의 댓글

comment-user-thumbnail
2023년 7월 24일

이런 유용한 정보를 나눠주셔서 감사합니다.

답글 달기