【Istio】istio-proxy(Envoy)のログを確認する

2022.01.03
2024.03.24
Kubernetes
EnvoyIstio

はじめに

Istioを利用してistio-proxy(Envoy)をPodのサイドカーとして追加している場合に、istio-proxyのログを確認する方法を紹介します。

コマンド

下記のコマンドでistio-proxyのログが確認できます。

1kubectl logs <pod name> -c istio-proxy

実際にログを確認してみる

ここからは試しにサンプルアプリでログを確認してみます。

サンプルとして利用するアプリはIstioのリポジトリにある下記のアプリになります。

istio/samples/bookinfo at master · istio/istio

istio/samples/bookinfo at master · istio/istio

Connect, secure, control, and observe services. Contribute to istio/istio development by creating an account on GitHub.

まずはIstioをインストールします。

1istioctl install --set profile=demo -y

istio-proxyが追加される設定を有効化します。

1kubectl label namespace default istio-injection=enabled

マニフェストを適用して、アプリをデプロイします。

1kubectl apply -f bookinfo/platform/kube/bookinfo.yaml
2kubectl apply -f bookinfo/networking/bookinfo-gateway.yaml

ポートとURLの環境変数を設定します。

1export INGRESS_PORT=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="http2")].nodePort}')
2export INGRESS_HOST=127.0.0.1
3export GATEWAY_URL=$INGRESS_HOST:$INGRESS_PORT

ポートフォワードしてローカルからアクセスできるようにします。

1kubectl -n istio-system port-forward svc/istio-ingressgateway $INGRESS_PORT:80

下記のコマンドで表示されるURLにブラウザやcurlコマンドでアクセスします。

1echo "http://$GATEWAY_URL/productpage"
2"http://127.0.0.1:30939/productpage"

ログを確認するPodの名前を確認します。

1❯ kubectl get pod
2NAME                              READY   STATUS    RESTARTS   AGE
3details-v1-79f774bdb9-4m6fx       2/2     Running   0          17m
4productpage-v1-6b746f74dc-jz5cw   2/2     Running   0          17m
5ratings-v1-b6994bb9-t7fb8         2/2     Running   0          17m
6reviews-v1-545db77b95-h795v       2/2     Running   0          17m
7reviews-v2-7bf8c9648f-sgjnt       2/2     Running   0          17m
8reviews-v3-84779c7bbc-576wv       2/2     Running   0          17m

確認したPod名でistio-proxyのログを確認すると先ほどアクセスした時のログが確認できます。

1❯ kubectl logs productpage-v1-6b746f74dc-jz5cw -c istio-proxy
2          :
3          :
4[2022-01-03T13:41:34.908Z] "GET /details/0 HTTP/1.1" 200 - via_upstream - "-" 0 178 122 120 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36" "ddf161ff-4e2a-92e6-a31a-6d394423ec33" "details:9080" "10.1.1.240:9080" outbound|9080||details.default.svc.cluster.local 10.1.1.245:40050 10.98.65.87:9080 10.1.1.245:55038 - default
5[2022-01-03T13:41:35.057Z] "GET /reviews/0 HTTP/1.1" 200 - via_upstream - "-" 0 295 1596 1594 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36" "ddf161ff-4e2a-92e6-a31a-6d394423ec33" "reviews:9080" "10.1.1.242:9080" outbound|9080||reviews.default.svc.cluster.local 10.1.1.245:33828 10.96.6.64:9080 10.1.1.245:38394 - default
6[2022-01-03T13:41:34.840Z] "GET /productpage HTTP/1.1" 200 - via_upstream - "-" 0 4183 1887 1860 "10.1.1.238" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36" "ddf161ff-4e2a-92e6-a31a-6d394423ec33" "127.0.0.1:30939" "10.1.1.245:9080" inbound|9080|| 127.0.0.6:49701 10.1.1.245:9080 10.1.1.238:0 outbound_.9080_._.productpage.default.svc.cluster.local default
7[2022-01-03T13:41:36.853Z] "GET /static/bootstrap/css/bootstrap.min.css HTTP/1.1" 200 - via_upstream - "-" 0 121200 89 55 "10.1.1.238" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36" "1d84999b-a5cc-9b1a-8222-10074a7f7b9e" "127.0.0.1:30939" "10.1.1.245:9080" inbound|9080|| 127.0.0.6:41127 10.1.1.245:9080 10.1.1.238:0 outbound_.9080_._.productpage.default.svc.cluster.local default
8[2022-01-03T13:41:36.858Z] "GET /static/bootstrap/css/bootstrap-theme.min.css HTTP/1.1" 200 - via_upstream - "-" 0 23409 95 85 "10.1.1.238" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36" "72a5fdd0-39ee-91f8-9e8a-6ce8054aed7a" "127.0.0.1:30939" "10.1.1.245:9080" inbound|9080|| 127.0.0.6:60851 10.1.1.245:9080 10.1.1.238:0 outbound_.9080_._.productpage.default.svc.cluster.local default
9[2022-01-03T13:41:36.966Z] "GET /static/bootstrap/js/bootstrap.min.js HTTP/1.1" 200 - via_upstream - "-" 0 37045 18 13 "10.1.1.238" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36" "e4593f99-2738-919a-a10e-e97aba3e296d" "127.0.0.1:30939" "10.1.1.245:9080" inbound|9080|| 127.0.0.6:35073 10.1.1.245:9080 10.1.1.238:0 outbound_.9080_._.productpage.default.svc.cluster.local default
10[2022-01-03T13:41:36.975Z] "GET /static/jquery.min.js HTTP/1.1" 200 - via_upstream - "-" 0 89493 23 19 "10.1.1.238" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36" "6e9cbe80-822f-944e-87c5-23c82db603db" "127.0.0.1:30939" "10.1.1.245:9080" inbound|9080|| 127.0.0.6:51299 10.1.1.245:9080 10.1.1.238:0 outbound_.9080_._.productpage.default.svc.cluster.local default

参考

Support

\ この記事が役に立ったと思ったら、サポートお願いします! /

buy me a coffee
Share

Profile

author

Masa

都内のIT企業で働くエンジニア
自分が学んだことをブログでわかりやすく発信していきながらスキルアップを目指していきます!

buy me a coffee