Istio1.0.5でJaegerやPrometheusに外部ネットワークからアクセスできるようにする
デフォルトの状態でIstioをインストールすると、JaegerやPrometheus、Grafanaといった可視化サービスのServiceタイプがClusterIPとなっているため、外部ネットワークからアクセスできない状態になっています。
そのため、ローカルのブラウザからアクセスできるようにServiceタイプをClusterIPからNodePortまたはLoadBalancerに変更する必要があります。
Jaegerを例に変更してみます。
現在の状態
$ kubectl get service jaegar-query -n istio-system NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE jaeger-query ClusterIP 10.96.141.214 <none> 16686/TCP 3d
kubectl expose
コマンドで --type=NodePort を指定
$ kubectl expose service jaeger-query --type=NodePort --name=jaeger-query-svc -n istio-system
確認
$ kubectl get service jaeger-query-svc -n istio-system NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE jaeger-query-svc NodePort 10.96.178.82 <none> 16686:32599/TCP 3h
これで外部に公開されるポートが作成されたので、http://<クラスターノードのIPアドレス>:32599 でアクセスすることが可能です。
Kubernetesのマニュアルはこちら
Exposing an External IP Address to Access an Application in a Cluster - Kubernetes