アンビエント ネットワーキングのトラブルシューティング

このページでは、Google Kubernetes Engine(GKE)アンビエント ネットワーキングのトラブルシューティングと検証を行う方法について説明します。クラスタ内アンビエント コンポーネントの健全性の確認、トラフィック認証と認可の問題の診断、証明書発行の検証、指標とログの検査の手順が記載されています。

コンポーネントがインストールされ、正常であることを確認する

Cloud Service Mesh アンビエント モードのクラスタ内コンポーネントは、gke-managed-ambient Namespace にインストールされます。次のコマンドを使用すると、関連するすべての Pod のステータスを確認できます。

kubectl get pods -n gke-managed-ambient

トラフィックが認証され、認可されていることを確認する

Cloud de Confiance コンソールのログ エクスプローラを使用して、目的の接続に対応するアクセスログを確認します。

resource.type="k8s_container"
resource.labels.location="CLUSTER_LOCATION"
resource.labels.cluster_name="CLUSTER_NAME"
logName="projects/PROJECT_ID/logs/gke-ambient-node-proxy-accesslog"

アクセスログには、認証と認可のステータスなど、接続の詳細が表示されます。

ログ形式

フィールド タイプ 説明
connection 構造体 接続情報。
connection.src_ip 文字列 接続の送信元 IP。
connection.src_port int 接続の送信元ポート。
connection.dest_ip 文字列 接続の宛先 IP。
connection.dest_port int 接続の宛先ポート。
connection.direction 文字列 接続の方向: {ingress, egress}
src 構造体 送信元のエンドポイント情報。
src.spiffe_id 文字列 Pod の SPIFFE ID。Pod に SPIFFE ID がない場合は空になります。
dst 構造体 宛先のエンドポイント情報。
dst.spiffe_id 文字列 Pod の SPIFFE ID。Pod に SPIFFE ID がない場合は空になります。
error_details 文字列 発生したエラーの詳細(エラーが発生しなかった場合は -)。
timestamp 文字列 接続が確認された時刻(UTC)。
tls_failure_reason 文字列 TLS handshake の失敗理由。接続が TLS でない場合は null。

証明書が正常に発行されたことを確認する

次のコマンドを使用して、クラスタ内のワークロード Pod の CertificateSigningRequests のステータスを調べます。

kubectl get csr

次のような「承認済み、発行済み」の条件が表示されます。

NAME                           AGE   SIGNERNAME                 CONDITION
gke-ambient-spiffe-csr-q8kqh   2s    spiffe.gke.io/fleet-svid   Approved,Issued
gke-ambient-spiffe-csr-t5px2   7s    spiffe.gke.io/fleet-svid   Approved,Issued

ネットワーク サービス モニタリングの指標

Cloud Service Mesh アンビエント ネットワーキングは、標準の Cloud Observability 指標に加えて、Network Services Monitoring と統合して、詳細なレイヤ 4 ネットワーク テレメトリーを提供します。

詳細については、Network Services Monitoring の概要と Network Services Monitoring の指標のリファレンスをご覧ください。