構成に関する問題の解決
このセクションでは、Cloud Service Mesh の一般的な問題とその解決方法について説明します。さらにサポートが必要な場合は、サポートの利用をご覧ください。
メンバーシップ状態を確認する
次のコマンドを実行すると、メッシュの最新のステータスを確認できます。
gcloud container fleet mesh describe
出力は次のようになります。
...
membershipSpecs:
projects/project_id/locations/global/memberships/cluster:
mesh:
management: MANAGEMENT_AUTOMATIC
membershipStates:
projects/project_id/locations/global/memberships/cluster:
servicemesh:
...
conditions:
- code: CONFIG_VALIDATION_WARNING
documentationLink: https://cloud.google.com/...
details: Application of one or more configs has failed. Error details are shown on individual config resources. See documentation link for more detail.
severity: WARNING
...
MembershipState のエラーコード
Cloud Service Mesh がクラスタの MembershipState に条件を報告する場合は、メッシュ構成(Istio カスタム リソースなど)を適用できなかったことを意味します。次のエラーコードの説明で、対処方法について詳しくご確認ください。
エラーコード | 原因 | 解決策 |
---|---|---|
CONFIG_APPLY_INTERNAL_ERROR |
内部エラーにより、1 つ以上の構成が適用されませんでした。 | カスタマー サポートまでお問い合わせください。 |
QUOTA_EXCEEDED_* |
リソースが割り当て上限に達したため、1 つ以上の構成を適用できませんでした。 | 具体的な割り当て、および割り当ての増加方法については、割り当てをご覧ください。 |
CONFIG_VALIDATION_ERROR |
無効な構成が原因で、1 つ以上の構成が適用されませんでした。 | 特定のエラーは、その原因となった構成ファイルに書き込まれます。診断方法の詳細については、構成検証エラーのセクションをご覧ください。 |
CONFIG_VALIDATION_WARNING |
1 つ以上の構成で潜在的な問題が見つかりました。これらの問題が適用されていない可能性があります。適用されている場合でも、意図しない動作が発生する可能性があります。 | 診断方法の詳細については、構成検証エラーのセクションをご覧ください。 |
構成の検証エラー
CONFIG_VALIDATION_WARNING
コードと CONFIG_VALIDATION_ERROR
コードは、メッシュ構成(Istio または Kubernetes カスタム リソース)で問題が見つかったことを示します。構成のサブセットが正しく適用されていない可能性があります。
リソースごとのエラーの詳細の多くは、該当するリソースに書き込まれます。次のコマンドを使用すると、無効な構成を見つけて、特定のエラー メッセージを表示できます。(注: これは Istio リソースに固有のものであり、ここに表示されるバリデーション エラーはすべてではありません)。
for resource in serviceentries destinationrules virtualservices gateways peerauthentications authorizationpolicies requestauthentications sidecars telemetries envoyfilters;
do kubectl get $resource --all-namespaces --output=json | \
jq '.items[] | select(.status.conditions != null and any(.status.conditions[]; .type == "Accepted" and .status == "False")) | {"name": .metadata.name, "namespace": .metadata.namespace, "kind": .kind, "conditions": .status.conditions}';
done
出力は次のようになります。
{
"name": "demo-envoy-filter",
"namespace": "default",
"kind": "EnvoyFilter",
"conditions": [
{
"lastTransitionTime": "2024-04-04T21:10:18.046975988Z",
"message": "This API is not supported",
"reason": "Invalid",
"status": "False",
"type": "Accepted"
}
]
}