개요
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 설치 (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
참고자료
'DevOps' 카테고리의 다른 글
Kubeflow 라이징 - BentoML로 Model Serving하기 (1) | 2023.04.01 |
---|---|
Secure K8S - RBAC 설정을 통한 멀티 클러스터 환경 분리 (0) | 2023.03.12 |
Kubeflow 라이징 - Kubeflow 설치 및 대시보드 접속 (0) | 2023.03.04 |
Kubeflow 라이징 - GPU 워커노드 환경 구성 (0) | 2023.03.02 |
Kubeflow 라이징 - ML Ops와 Service Mesh 훑어보기 (0) | 2023.02.24 |