そこはかとなく

見て聞いて触ったことの技術メモ

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