모든 마이크로서비스에 Istio 활성화하기
모든 마이크로서비스에 Istio 활성화하기
이 모듈에서는 나머지 모든 마이크로서비스에 Istio를 한 번에 활성화하는 방법을 배워요. "더 많은 마이크로서비스에 Istio 기능을 적용하기 위해 점진적으로 활성화해도 되지만, 이 튜토리얼에서는 한 단계로 모두 활성화할 거예요."
출처: Istio 문서
본문
앞서 단일 마이크로서비스인 productpage에 Istio를 활성화했어요. 더 많은 마이크로서비스에서 Istio 기능을 얻으려면 마이크로서비스별로 점진적으로 Istio를 활성화하면 돼요. 이 튜토리얼에서는 남은 마이크로서비스 모두에 Istio를 한 번에 활성화할 거예요.
- 이 튜토리얼의 목적을 위해 마이크로서비스들의 deployment를 1로 스케일 다운하세요.
$ kubectl scale deployments --all --replicas 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
- 애플리케이션의 웹페이지에 여러 번 접속하세요. Istio가 투명하게 추가됐고 원래 애플리케이션은 변하지 않았어요. 전체 애플리케이션을 배포 해제하고 다시 배포할 필요 없이 그 자리에서(on the fly) 추가됐어요.
- 애플리케이션 파드를 확인해서 이제 각 파드에 컨테이너가 두 개 있는 걸 확인하세요. 하나는 마이크로서비스 자체이고, 다른 하나는 여기에 붙은 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
- 이전에
/etc/hosts파일에 설정했던 커스텀 URL로 Istio 대시보드에 접근하세요.
http://my-istio-dashboard.io/dashboard/db/istio-mesh-dashboard
- 왼쪽 상단 드롭다운 메뉴에서 Istio Mesh Dashboard를 선택하세요. 이제 네임스페이스의 모든 서비스가 서비스 목록에 나타나는 걸 볼 수 있어요.
- Istio Service Dashboard에서 다른 마이크로서비스(예: ratings)도 확인해 보세요.
- Istio의 일부는 아니지만 데모 구성의 일부로 설치되는 Kiali 콘솔을 사용해서 애플리케이션의 토폴로지를 시각화하세요. 이전에
/etc/hosts파일에 설정했던 커스텀 URL로 대시보드에 접근하세요.
http://my-kiali.io/kiali/console
getting started 지침의 일부로 Kiali를 설치했다면 Kiali 콘솔 사용자 이름은 admin, 비밀번호는 admin이에요.
- Graph 탭을 클릭하고 상단 코너의 Namespace 드롭다운 메뉴에서 네임스페이스를 선택하세요. Display 드롭다운 메뉴에서 Traffic Animation 체크박스를 선택하면 멋진 트래픽 애니메이션을 볼 수 있어요.
- Edge Labels 드롭다운 메뉴에서 다양한 옵션을 시도해 보세요. 그래프의 노드와 엣지 위에 마우스를 올려보세요. 오른쪽에 트래픽 메트릭이 보일 거예요.
이제 Istio Ingress Gateway 구성하기로 넘어갈 준비가 됐어요.