[리소스 로깅과 모니터링] Istio를 활용한 네트워크 메시 모니터링

IMKUNYOUNG·2023년 9월 2일
0

쿠버네티스

목록 보기
60/64

Istio는 무엇인가?

  • 다수의 컨테이너가 동작하는 경우에는 각 컨테이너의 트래픽을 관찰하고 정상 동작하는지 모니터링하기가 어렵기 때문에 DevOps 팀에 부담
  • 개발자는 이식성을 위해 마이크로서비스를 사용하여 아키텍처를 설계하고 운영자는 이 컨테이너들을 다양한 클러스터에 배포하고 관리
  • 서비스 메시의 크기와 복잡성이 커짐에 따라 이해하고 관리하기가 어려워짐 (ex: 로드 밸런싱, 장애 복구, 메트릭 및 모니터링)
  • Istio는 쿠버네티스 환경의 네트워크 메시 이슈를 보다 간편하게 해결하기 위해 지원하는 환경



Istioctl 설치

  • Istio 최신 버전 다운로드 및 설치
curl -L https://istio.io/downloadIstio | sh -
cd istio-1.10.2
export PATH=$PWD/bin:$PATH # 실행 경로를 환경 변수에 추가
istioctl # kubectl 설정을 사용
  • 이스티오 배포 형태


쿠버네티스에 이스티오 구성하기

  • istioctl을 사용해 데모 버전으로 설치

istioctl install --set profile=demo --skip-confirmation

  • 네임스페이스 레이블을 이스티오 인젝션이 수행되도록 수정

kubectl label namespace default istio-injection=enabled



애플리케이션 배포하기

  • 북 인포에 대한 프로젝트 배포 (Istio와 무관한 기능)

kubectl delete all --all # 잘못 설치한 경우 삭제
kubectl delete limitrange default-limit-range # 잘못 설치한 경우 삭제
kubectl delete -f samples/bookinfo/platform/kube/bookinfo.yaml # 잘못 설치한 경우 삭제
kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml

  • 북인포를 외부로 서비스할 수 있도록 게이트웨이 생성 (Istio의 기능)

kubectl apply -f samples/bookinfo/networking/bookinfo-gateway.yaml

  • 게이트웨이를 생성하면서 만들어진 서비스를 확인

  • 배포한 북인포 프로젝트 페이지에 접속

  • http://35.226.15.253/productpage 반드시 productpage라는 곳으로 접속



Kiali와 프로메테우스 구성

  • kiali 대시보드와 데이터베이스 역할을 하는 프로메테우스를 띄우고서 대시보드로 접근
kubectl apply -f samples/addons/kiali.yaml
kubectl apply -f samples/addons/prometheus.yaml
istioctl dashboard kiali # localhost:20001 서비스를 오픈
  • 로컬 호스트의 20001번 포트롤 접근하고 그래프 확인

0개의 댓글