애플리케이션 보호하고 시각화하기
애플리케이션 보호하고 시각화하기 (Secure and visualize the application)
앱비언트 메시에 애플리케이션을 추가하는 것은 애플리케이션이 있는 네임스페이스에 레이블을 붙이는 것만큼이나 간단해요. 애플리케이션을 메시에 추가하면 자동으로 애플리케이션 간 통신이 보호되고, Istio가 TCP 텔레메트리를 모으기 시작해요. 그리고 애플리케이션을 재시작하거나 재배포할 필요도 없어요!
출처: Istio 문서
본문
Bookinfo를 메시에 추가하기 (Add Bookinfo to the mesh)
주어진 네임스페이스의 모든 파드를 앰비언트 메시의 일부로 활성화하려면 네임스페이스에 레이블을 붙이기만 하면 돼요:
$ kubectl label namespace default istio.io/dataplane-mode=ambient
namespace/default labeled
축하해요! default 네임스페이스의 모든 파드를 앰비언트 메시에 성공적으로 추가했어요. 🎉
브라우저에서 Bookinfo 애플리케이션을 열면, 이전과 마찬가지로 제품 페이지가 보여요. 이번에 달라진 점은 Bookinfo 애플리케이션 파드 간의 통신이 mTLS로 암호화된다는 거예요. 또한 Istio가 파드 사이의 모든 트래픽에 대한 TCP 텔레메트리를 모아요.
애플리케이션과 메트릭 시각화하기 (Visualize the application and metrics)
Istio의 대시보드인 Kiali와 Prometheus 메트릭 엔진을 사용해 Bookinfo 애플리케이션을 시각화할 수 있어요. 둘 다 배포하세요:
$ kubectl apply -f @samples/addons/prometheus.yaml@
$ kubectl apply -f @samples/addons/kiali.yaml@
다음 명령을 실행해 Kiali 대시보드에 접근할 수 있어요:
$ istioctl dashboard kiali
Kiali가 트래픽 그래프를 생성하도록 Bookinfo 애플리케이션으로 트래픽을 좀 보내 봐요:
$ for i in $(seq 1 100); do curl -sSI -o /dev/null http://localhost:8080/productpage; done
그다음 Traffic Graph를 클릭하고 "Select Namespaces" 드롭다운에서 "Default"를 선택하세요. Bookinfo 애플리케이션이 보일 거예요:
대시보드에서 두 서비스를 연결하는 선을 클릭하면 Istio가 모은 인바운드·아웃바운드 트래픽 메트릭을 볼 수 있어요.
TCP 메트릭 외에도 Istio는 각 서비스에 대해 강력한 신원(SPIFFE ID)을 만들었어요. 이 신원은 인가 정책을 만드는 데 사용될 수 있어요.
다음 단계 (Next steps)
이제 서비스에 신원이 할당되었으니, 인가 정책을 적용해 애플리케이션 접근을 보호해 봐요.