このページでは、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 の指標のリファレンスをご覧ください。