- Telemetry 는 자동화 된 프로세스를 통해 수만개의 micro services의 데이터를 tracing 하는것을 말한다.
Telemetry is the automated communication processes from multiple data sources. Telemetry data is used to improve customer experiences, monitor security, application health, quality, and performance.
istio의 8가지 기능중에 Telemetry는 정말 중요한 주제이다. 사실 ingress를 쓰는 가장 큰 이유지 아닐까 싶다.
1. Telemetry
이스티오의 기능중에 Telemetry는 각각 마이크로 서비스간의 네트워크 연결성을 추적하고 기록하는 Telemetry를 제공한다.
Telemetry를 측정하는 방법 중 고전적으로 agent를 심는 방법을 이용하는데 쉽게 말해서 이 agent 역할을 하는것이 바로
sidecar = proxy = envoy 로 불리는 녀석이다.
envoy는 기본적으로 동작하고 있는 pod에 넣기는 어렵다. 보통은 namespace에 라벨을 통해 컨트롤 하는데
네임스페이스에 라벨을 추가해준 후에 pod를 삭제 하게 되면 deploy의 기능을 통해 재배포 하는데 이때 재배포 되는 pod에는
(1/1) -> (2/2)로 컨테이너의 개수가 수정되며 envoy proxy가 삽입되어 재배포 된다.
이렇게 데이터 플레인 (envoy ) 을 삽입하게 되면 그때부터 kiali나 jaeger 같은 모니터링 툴을 이용하여 서비스끼리의 네트워크 연결을
관망 할수 있다.
telemetry는 istio-configuration을 통해서 네트워크 트래픽을 컨트롤 하거나 방화벽 정책을 설정하거나 하는것이 아니다.
즉, 관찰만 하겠다는 것이다. 따라서 telemetry의 기능을 십분 활용하려면 dashboard의 형태의 오픈소스나 개발한 제품이 필요하다.
이때 현업에서 많이 사용하는것이 kiali , jaeger등이 있다.
kiali의 설치는 isitio 공식문서의 Get started 부분을 보면 minikube를 통해 istioctl dashboard를 활용하는 부분은 잘 기록이
되어있는데, 다른 환경 (* minikube가 아니거나, eks에서 jumpbox에서 Nodeport등을 사용하지 못하는 경우 ) 에서는
다음과 같이 진행하자.
우선 먼저 준비해야 할 부분은 , istio의 설치와 application의 준비 , 그리고 sidecar을 주입한 상태이다.
istio의 설치는 저번 포스팅에서 다뤘기 때문에 생략할 것이고 application은 book info는 이제 질리니까
fleetman의 택배시스템 어플리케이션을 활용해 보겠다.
https://github.com/ricardosouzamorais/istio-fleetman
2. kiali 설치하기
istio의 바이너리 폴더를 설치하고 그 안에 우선 들어온다.
# cd istio-1.12.0/
istioctl -help
# istio가 정상적으로 설치 되어 있는 상태인지 확인해야 한다.
kubectl apply -f samples/addons
kubectl rollout status deployment/kiali -n istio-system
# kiali 서비스가 정상적으로 올라왔을 것이다.
# 본인의 환경에 맞게 서비스를 노드포트로 expose 할것인지 로드벨런서로 expose 할것인지 확인하여
kubectl edit svc/kiali -n istio-system
# 저는 LB로 수정하였습니다.
'컨테이너 > istio' 카테고리의 다른 글
[istio] (4). Traffic Management (0) | 2021.12.09 |
---|---|
[istio] (2) istio 설치 (0) | 2021.12.07 |
[istio] (1) istio란 무엇인가? (0) | 2020.12.21 |