모든 마이크로서비스에 Istio 활성화하기

모든 마이크로서비스에 Istio 활성화하기

이 모듈에서는 나머지 모든 마이크로서비스에 Istio를 한 번에 활성화하는 방법을 배워요. "더 많은 마이크로서비스에 Istio 기능을 적용하기 위해 점진적으로 활성화해도 되지만, 이 튜토리얼에서는 한 단계로 모두 활성화할 거예요."

출처: Istio 문서

본문

앞서 단일 마이크로서비스인 productpage에 Istio를 활성화했어요. 더 많은 마이크로서비스에서 Istio 기능을 얻으려면 마이크로서비스별로 점진적으로 Istio를 활성화하면 돼요. 이 튜토리얼에서는 남은 마이크로서비스 모두에 Istio를 한 번에 활성화할 거예요.

  1. 이 튜토리얼의 목적을 위해 마이크로서비스들의 deployment를 1로 스케일 다운하세요.
$ kubectl scale deployments --all --replicas 1
  1. Bookinfo 애플리케이션을 Istio가 활성화된 상태로 다시 배포하세요. productpage 서비스는 이미 Istio가 주입되어 있어 다시 배포되지 않고, 파드도 변경되지 않을 거예요. 이번에는 마이크로서비스의 레플리카를 하나만 사용해요.
$ curl -s https://raw.githubusercontent.com/istio/istio/release-1.31/samples/bookinfo/platform/kube/bookinfo.yaml | istioctl kube-inject -f - | kubectl apply -l app!=reviews -f -
$ curl -s https://raw.githubusercontent.com/istio/istio/release-1.31/samples/bookinfo/platform/kube/bookinfo.yaml | istioctl kube-inject -f - | kubectl apply -l app=reviews,version=v2 -f -
service/details unchanged
serviceaccount/bookinfo-details unchanged
deployment.apps/details-v1 configured
service/ratings unchanged
serviceaccount/bookinfo-ratings unchanged
deployment.apps/ratings-v1 configured
serviceaccount/bookinfo-reviews unchanged
service/productpage unchanged
serviceaccount/bookinfo-productpage unchanged
deployment.apps/productpage-v1 configured
deployment.apps/reviews-v2 configured
  1. 애플리케이션의 웹페이지에 여러 번 접속하세요. Istio가 투명하게 추가됐고 원래 애플리케이션은 변하지 않았어요. 전체 애플리케이션을 배포 해제하고 다시 배포할 필요 없이 그 자리에서(on the fly) 추가됐어요.
  2. 애플리케이션 파드를 확인해서 이제 각 파드에 컨테이너가 두 개 있는 걸 확인하세요. 하나는 마이크로서비스 자체이고, 다른 하나는 여기에 붙은 sidecar 프록시예요.
$ kubectl get pods
details-v1-58c68b9ff-kz9lf        2/2       Running   0          2m
productpage-v1-59b4f9f8d5-d4prx   2/2       Running   0          2m
ratings-v1-b7b7fbbc9-sggxf        2/2       Running   0          2m
reviews-v2-dfbcf859c-27dvk        2/2       Running   0          2m
curl-88ddbcfdd-cc85s              1/1       Running   0          7h
  1. 이전에 /etc/hosts 파일에 설정했던 커스텀 URL로 Istio 대시보드에 접근하세요.
http://my-istio-dashboard.io/dashboard/db/istio-mesh-dashboard
  1. 왼쪽 상단 드롭다운 메뉴에서 Istio Mesh Dashboard를 선택하세요. 이제 네임스페이스의 모든 서비스가 서비스 목록에 나타나는 걸 볼 수 있어요.
  2. Istio Service Dashboard에서 다른 마이크로서비스(예: ratings)도 확인해 보세요.
  3. Istio의 일부는 아니지만 데모 구성의 일부로 설치되는 Kiali 콘솔을 사용해서 애플리케이션의 토폴로지를 시각화하세요. 이전에 /etc/hosts 파일에 설정했던 커스텀 URL로 대시보드에 접근하세요.
http://my-kiali.io/kiali/console

getting started 지침의 일부로 Kiali를 설치했다면 Kiali 콘솔 사용자 이름은 admin, 비밀번호는 admin이에요.

  1. Graph 탭을 클릭하고 상단 코너의 Namespace 드롭다운 메뉴에서 네임스페이스를 선택하세요. Display 드롭다운 메뉴에서 Traffic Animation 체크박스를 선택하면 멋진 트래픽 애니메이션을 볼 수 있어요.
  2. Edge Labels 드롭다운 메뉴에서 다양한 옵션을 시도해 보세요. 그래프의 노드와 엣지 위에 마우스를 올려보세요. 오른쪽에 트래픽 메트릭이 보일 거예요.

이제 Istio Ingress Gateway 구성하기로 넘어갈 준비가 됐어요.

더 알아보기 (Learn more)