Istio의 네트워크의 기본과 네트워크 트래픽 관리 - 2 (Destination rules, Gateways)

박원균·2023년 8월 1일
0

Kubernetes

목록 보기
24/24

Destination rules

desination rule은 트래픽을 특정 서비스에 대한 목적지로 라우팅 하는 방법에 대한 정책을 정의하는 데 사용됩니다.

주요 컴포넌트

1. Host

목적지 규칙이 적용되는 서비스의 이름

2. Traffic Policy (Load balancing, Connection pooling, Outlier detection)

서비스에 대한 기본적인 트래픽을 정의

3. Subsets

동일한 서비스의 서로 다른 버전을 정의하는데 사용됩니다.

apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  name: my-destination-rule
spec:
  host: my-svc 		# 서비스가 등록된 k8s 서비스의 DNS이름이거나 istio의 서비스 등록에 추가된 이름
  trafficPolicy:	# 로드 밸런싱, 연결 풀 설정, 아웃라이어 탐지 설정이 가능합니다.			
    loadBalancer:
      simple: RANDOM
  subsets:			# 레이블을 통해 식별되며, Pod의 레이블에 매핑됩니다. 
  - name: v1		# - 자체 트래픽 정책을 가질 수 있으며 기본 정책을 오버라이드 할 수 있습니다.
    labels:
      version: v1
  - name: v2
    labels:
      version: v2
    trafficPolicy:
      loadBalancer:
        simple: ROUND_ROBIN
  - name: v3
    labels:
      version: v3

Gateways 

게이트웨이를 사용하여 메시의 인바운드 및 아웃바운드 트래픽을 관리하면 메시로 들어오거나 나갈 트래픽을 지정할 수 있습니다. 게이트웨이 구성은 서비스 워크로드와 함께 실행되는 사이드카 Envoy 프록시가 아니라 메시의 엣지에서 실행되는 독립 실행형 Envoy 프록시에 적용됩니다.

Kubernetes 인그레스 API와 같이 시스템에 들어오는 트래픽을 제어하는 다른 메커니즘과 달리, Istio 게이트웨이를 사용하면 Istio 트래픽 라우팅의 모든 성능과 유연성을 사용할 수 있습니다. Istio의 게이트웨이 리소스를 통해 노출할 포트, TLS 설정 등과 같은 레이어 4-6 로드 밸런싱 속성을 구성하기만 하면 되기 때문입니다.. 그런 다음 동일한 API 리소스에 애플리케이션 레이어 트래픽 라우팅(L7)을 추가하는 대신 일반 Istio 가상 서비스를 게이트웨이에 바인딩합니다. 이렇게 하면 기본적으로 게이트웨이 트래픽을 Istio 메시의 다른 데이터 플레인 트래픽처럼 관리할 수 있습니다.

게이트웨이는 주로 수신 트래픽을 관리하는 데 사용되지만, 송신 게이트웨이도 구성할 수 있습니다. 송신 게이트웨이를 사용하면 메시를 떠나는 트래픽에 대한 전용 출구 노드를 구성하여 외부 네트워크에 액세스할 수 있거나 액세스해야 하는 서비스를 제한하거나 송신 트래픽의 보안 제어를 활성화하여 메시의 보안을 강화할 수 있습니다. 게이트웨이를 사용하여 순전히 내부 프록시를 구성할 수도 있습니다.

Istio는 사용자가 사용할 수 있는 몇 가지 사전 구성된 게이트웨이 프록시 배포(istio-ingressgateway 및 istio-egressgateway)를 제공합니다.

이제까지 공부해온 Virtual Service, Destination Rule, Gateways 의 트래픽 흐름은 아래와 같습니다.

   Incoming Request
          |
          v
     [ Gateway ]  
          |        - Gateway는 메쉬 외부로부터 들어오는 트래픽을 제어합니다.
          v
[ Virtual Service ] 
          |        - Virtual ServiceGateway로부터 받은 트래픽을 어느 서비스로 라우팅할지 결정합니다.
          v
[ Destination Rule ] 
          |        - Destination Rule은 특정 'destination' 서비스에 대한 트래픽 행동을 세부적으로 정의합니다.
          v
     [ Service ]
profile
함바라기

1개의 댓글

comment-user-thumbnail
2023년 8월 1일

감사합니다. 이런 정보를 나눠주셔서 좋아요.

답글 달기