ウェイポイントに関する問題のトラブルシューティング
このガイドでは、ウェイポイントプロキシに名前空間、サービス、またはワークロードを登録したが、期待どおりの動作が見られない場合の対処法について説明します。
トラフィックルーティングまたはセキュリティポリシーに関する問題
curl
ポッドから productpage
サービス経由で reviews
サービスにリクエストを送信する場合
$ kubectl exec deploy/curl -- curl -s http://productpage:9080/productpage
curl
ポッドから reviews
v2
ポッドにリクエストを送信する場合
$ export REVIEWS_V2_POD_IP=$(kubectl get pod -l version=v2,app=reviews -o jsonpath='{.items[0].status.podIP}')
$ kubectl exec deploy/curl -- curl -s http://$REVIEWS_V2_POD_IP:9080/reviews/1
reviews
サービスへのリクエストは、すべての L7 ポリシーについて reviews-svc-waypoint
によって強制される必要があります。reviews
v2
ポッドへのリクエストは、すべての L7 ポリシーについて reviews-v2-pod-waypoint
によって強制される必要があります。
L7構成が適用されない場合は、まず
istioctl analyze
を実行して、構成に検証上の問題がないか確認してください。$ istioctl analyze ✔ No validation issues found when analyzing namespace: default.
サービスまたはポッドに対してL7構成を実装しているウェイポイントを特定します。
ソースがサービスのホスト名またはIPを使用して宛先を呼び出す場合は、
istioctl experimental ztunnel-config service
コマンドを使用して、宛先サービスによってウェイポイントが使用されていることを確認します。前の例に従うと、reviews
サービスはreviews-svc-waypoint
を使用し、default
名前空間の他のすべてのサービスは名前空間waypoint
を使用する必要があります。$ istioctl ztunnel-config service NAMESPACE SERVICE NAME SERVICE VIP WAYPOINT default bookinfo-gateway-istio 10.43.164.194 waypoint default bookinfo-gateway-istio 10.43.164.194 waypoint default bookinfo-gateway-istio 10.43.164.194 waypoint default bookinfo-gateway-istio 10.43.164.194 waypoint default details 10.43.160.119 waypoint default kubernetes 10.43.0.1 waypoint default productpage 10.43.172.254 waypoint default ratings 10.43.71.236 waypoint default reviews 10.43.162.105 reviews-svc-waypoint ...
ソースがポッドのIPを使用して宛先を呼び出す場合は、
istioctl ztunnel-config workload
コマンドを使用して、宛先ポッドによってウェイポイントが使用されていることを確認します。前の例に従うと、reviews
v2
ポッドはreviews-v2-pod-waypoint
を使用し、default
名前空間の他のすべてのポッドはウェイポイントを持たないはずです。これは、デフォルトでウェイポイントはサービス宛のトラフィックのみを処理するためです。$ istioctl ztunnel-config workload NAMESPACE POD NAME IP NODE WAYPOINT PROTOCOL default bookinfo-gateway-istio-7c57fc4647-wjqvm 10.42.2.8 k3d-k3s-default-server-0 None TCP default details-v1-698d88b-wwsnv 10.42.2.4 k3d-k3s-default-server-0 None HBONE default productpage-v1-675fc69cf-fp65z 10.42.2.6 k3d-k3s-default-server-0 None HBONE default ratings-v1-6484c4d9bb-crjtt 10.42.0.4 k3d-k3s-default-agent-0 None HBONE default reviews-svc-waypoint-c49f9f569-b492t 10.42.2.10 k3d-k3s-default-server-0 None TCP default reviews-v1-5b5d6494f4-nrvfx 10.42.2.5 k3d-k3s-default-server-0 None HBONE default reviews-v2-5b667bcbf8-gj7nz 10.42.0.5 k3d-k3s-default-agent-0 reviews-v2-pod-waypoint HBONE ...
ポッドのウェイポイント列の値が正しくない場合は、ポッドに
istio.io/use-waypoint
というラベルが付いており、ラベルの値がワークロードトラフィックを処理できるウェイポイントの名前であることを確認してください。たとえば、reviews
v2
ポッドがサービストラフィックのみを処理できるウェイポイントを使用している場合、そのポッドで使用されているウェイポイントは表示されません。ポッドのistio.io/use-waypoint
ラベルが正しいように見える場合は、ウェイポイントのGatewayリソースにistio.io/waypoint-for
と互換性のある値のラベルが付いていることを確認してください。ポッドの場合、適切な値はall
またはworkload
になります。istioctl proxy-status
コマンドを使用して、ウェイポイントのプロキシステータスを確認します。$ istioctl proxy-status NAME CLUSTER CDS LDS EDS RDS ECDS ISTIOD VERSION bookinfo-gateway-istio-7c57fc4647-wjqvm.default Kubernetes SYNCED SYNCED SYNCED SYNCED NOT SENT istiod-795d55fc6d-vqtjx 1.23-alpha.75c6eafc5bc8d160b5643c3ea18acb9785855564 reviews-svc-waypoint-c49f9f569-b492t.default Kubernetes SYNCED SYNCED SYNCED NOT SENT NOT SENT istiod-795d55fc6d-vqtjx 1.23-alpha.75c6eafc5bc8d160b5643c3ea18acb9785855564 reviews-v2-pod-waypoint-7f5dbd597-7zzw7.default Kubernetes SYNCED SYNCED NOT SENT NOT SENT NOT SENT istiod-795d55fc6d-vqtjx 1.23-alpha.75c6eafc5bc8d160b5643c3ea18acb9785855564 waypoint-6f7b665c89-6hppr.default Kubernetes SYNCED SYNCED SYNCED NOT SENT NOT SENT istiod-795d55fc6d-vqtjx 1.23-alpha.75c6eafc5bc8d160b5643c3ea18acb9785855564 ...
Envoyのアクセスログを有効にし、いくつかのリクエストを送信した後、ウェイポイントプロキシのログを確認します。
$ kubectl logs deploy/waypoint
十分な情報がない場合は、ウェイポイントプロキシのデバッグログを有効にすることができます。
$ istioctl pc log deploy/waypoint --level debug
istioctl proxy-config
コマンドを使用して、ウェイポイントのEnvoy構成を確認します。これは、クラスタ、エンドポイント、リスナー、ルート、シークレットなど、ウェイポイントに関連するすべての情報を表示します。$ istioctl proxy-config all deploy/waypoint
ウェイポイントプロキシはEnvoyに基づいているため、Envoyのデバッグ方法の詳細については、Envoy構成の詳細セクションを参照してください。