위 게시물에서 CrossAZ 데이터 전송 비용을 줄이기 위한 Istio LocalityLb 설정에 대해 알아보았다.
그렇다면 실제로 어떻게 Istio에서는 동일AZ 서비스를 우선 호출할 수 있을까? 이런 궁금점이 생길 수 있다.
이번 게시물에서는 Istio proxy_config에 대한 간략한 정보를 기술하려고 한다.
Istio는 어떻게 Locality 정보를 확인할까?
기본적으로 Istio는 각 엔드포인트가 배포되어 있는 노드의 Region, Zone Labels을 확인한다. 정확히는 아래 2가지 정보이다.
- topology.kubernetes.io/region
- topology.kubernetes.io/zone
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 에 배포되어 있다.
이것만 확인하면 어떤 출발지에서 어떤 목적지 엔드포인트를 호출할 때 어떤 Region/Zone에 있는 Pod을 우선적으로 호출할 지 알 수 있다. 그리고 테스트 했을 때 동일한 값이 나오는지 확인해보면 istio LocalityLb 테스트는 다 되었다고 볼 수 있다.
Istio docs에서는 이런 정보가 나와있지 않은것 같다.(나와 있는데 내가 못찾는 건가...)
그래서 Istio 커뮤니티 사이트를 참고했었고, 당근마켓 SRE팀에서 업로드 한 데이터 전송 비용 감소를 위한 영상을 참고하였다.
이만 끝!!
'기술 이모저모 > [Ops] Devops' 카테고리의 다른 글
[AWS][istio] istio profile 지정 & client, control plane 버전 (0) | 2023.11.26 |
---|---|
[AWS][istio] istio-operator를 통한 istio 배포 (2) | 2023.11.26 |
[AWS][istio] istio LocalityLbSetting, CrossAZ 데이터 비용 절감 (0) | 2023.11.05 |
[ArgoCD] Application 생성 방법 = ArgoCD를 이용한 배포 (0) | 2023.05.14 |
[ArgoCD] Github 연동 및 Webhook Event 설정 방법 (0) | 2023.05.13 |