기술 이모저모/[Ops] Devops

[AWS][Istio] Istio proxy_config 엔드포인트 Priority 확인 방법

Kobby 2023. 11. 5. 14:45
 

[AWS][istio] istio LocalityLbSetting, CrossAZ 데이터 비용 절감

오랜만에 글을 작성한다. 게시물로 정리하고 공유하고 싶은 내용은 많은데 시간이 부족하다는 핑계로.. 글을 올리는 텀이 점점 길어진다. 이대로는 안되겠다 싶어서 최근 진행한 Istio 구조와 loca

dobby-isfree.tistory.com

위 게시물에서 CrossAZ 데이터 전송 비용을 줄이기 위한 Istio LocalityLb 설정에 대해 알아보았다.

그렇다면 실제로 어떻게 Istio에서는 동일AZ 서비스를 우선 호출할 수 있을까? 이런 궁금점이 생길 수 있다.

이번 게시물에서는 Istio proxy_config에 대한 간략한 정보를 기술하려고 한다.

Istio는 어떻게 Locality 정보를 확인할까?

기본적으로 Istio는 각 엔드포인트가 배포되어 있는 노드의 Region, Zone Labels을 확인한다. 정확히는 아래 2가지 정보이다.

  • topology.kubernetes.io/region
  • topology.kubernetes.io/zone

Node Labels 확인

Istio는 특정 Pod이 어떤 Node에 배포되어 있는지 알 수 있고, 해당 Node에 위와 같은 Labels이 있기 때문에 Pod 와 Region, Zone 정보도 매핑할 수 있다.

그리고 istiod에서 이런 정보를 모두 스크랩하고 확인하기 떄문에 각 istio_proxy의 sidecar에도 모두 배포가 되고 istio 전체 환경에서 이를 확인할 수 있다.

Istio Locality 가중치 정보 확인 방법

istioctl을 통해서 손쉽게 확인할 수 있다. 출발지와 목적지를 알고있다면 istio proxy-config를 통해 확인할 수 있다.

# 특정 출발지 Pod 엔드포인트에서 목적지 엔드포인트를 모두 확인할 수 있다.
istioctl proxy-config endpoint {pod name}

#특정 목적지 엔드포인트에 대한 각 Pod IP, Locality 가중치를 확인할 수 있다.
istioctl proxy-config endpoint {pod name} --cluster '{service endpoint}' -o json
ex)
istioctl proxy-config endpoint {pod name} --cluster 'outbound|3000||test.test-dev.svc.cluster.local' -o json

 

위와 같이 진행하게 되면 아래의 정보를 확인할 수 있고, 해석해보면 다음과 같다.

  • ap-northeast-2 중에서 ap-northeast-2a에 있는 서비스 엔드포인트는 priority가 0이다.
  • ap-northeast-2 중에서 ap-northeast-2b, ap-northeast-2c 에 있는 서비스 엔드포인트는 priority가 1이다.
    • 이 경우는 2b, 2c가 모두 1로 동일하기 때문에 ROUNDROBIN 방식으로 호출을 한다.

그리고 priority는 숫자가 작을 수록 높은 우선순위를 가지기 때문에 ap-northeast-2 중에서 ap-northeast-2a 엔드포인트를 우선호출한다.

  • 내가 출발지로 잡은 출발지 Pod은 ap-northeast-2 중에서 ap-northeast-2a 에 배포되어 있다.

istio proxy-config 예시

이것만 확인하면 어떤 출발지에서 어떤 목적지 엔드포인트를 호출할 때 어떤 Region/Zone에 있는 Pod을 우선적으로 호출할 지 알 수 있다. 그리고 테스트 했을 때 동일한 값이 나오는지 확인해보면 istio LocalityLb 테스트는 다 되었다고 볼 수 있다.

 

Istio docs에서는 이런 정보가 나와있지 않은것 같다.(나와 있는데 내가 못찾는 건가...)

그래서 Istio 커뮤니티 사이트를 참고했었고, 당근마켓 SRE팀에서 업로드 한 데이터 전송 비용 감소를 위한 영상을 참고하였다.

 

이만 끝!!