주녁, DevNote
article thumbnail

개요

Kubeflow를 통해 ML Ops 생태계를 이해하고, 전 주기 파이프라인를 구성해본다.

목표

Istio Service Mesh를 모니터링하기 위한 도구인 Kiali를 설치해보자


이 부분은 ML Ops와 크게 관련 없는 내용이므로
Service Mesh 모니터링이 필요없다면 생략해도 좋다.

여정

Istio 단독 설치

# 스크립트를 통해 Istio 다운로드
mkdir istio
cd istio
curl -L https://istio.io/downloadIstio | ISTIO_VERSION=1.17 TARGET_ARCH=x86_64 sh -

# 명령어 등록
vi ~/.bashrc
export PATH="$PATH:.../istio/istio-1.17.1/bin"
source ~/.bashrc

# Istio 설치
istioctl install --set profile=demo -y
# 테스트용(Optional)
kubectl create namespace istio-test
kubectl label namespace istio-test istio-injection=enabled

# 샘플 프로젝트 생성
kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml -n istio-test
kubectl apply -f samples/bookinfo/networking/bookinfo-gateway.yaml -n istio-test

# 실행 확인
istioctl analyze -n istio-test

Kiali 설치

Kiali는 네트워크 구성을 Graph 형태로 보여주는 대시보드 오픈소스이다.

Kiali Graph 이미지 예시

# Kiali 설치 (Istio 단독설치에 제공된 애드온으로 설치)
# 같이 제공되는 Istio용 prometheus, grafana도 설치해야하기 때문
kubectl apply -f ~/istio/istio-1.17.1/samples/addons


# 외부로 서비스 노출
kubectl edit svc kiali -n istio-system
...
	type: LoadBalancer

# 접속포트 확인
kubectl get svc kiali -n istio-system

# 대시보드 접속
http://${마스터 노드 IP}:${포트번호}

# 트래픽 감지 테스트
# productpage의 IP, Port번호 확인
kubectl get svc productpage -n istio-test
# 요청 100번 보내기 후 대시보드에서 확인(완전 실시간은 아님)
for i in $(seq 1 100); do curl -s -o /dev/null "http://${IP}:${PORT}/productpage"; done

# 삭제
kubectl delete ns istio-test
helm uninstall --namespace istio-system kiali-server

Q & A

  • Istio를 삭제하고 싶어요
# Istio 삭제
istioctl uninstall --purge
# or
kubectl delete -f ${ISTIO_HOME}/samples/addons/kiali.yaml --ignore-not-found

 


참고자료

Istioctl로 Istio 구성하기 - 3. Kiali 소개 (tistory.com)

profile

주녁, DevNote

@junwork

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!