構成状態フィールド
Istio 1.6以降では、リソースのstatusフィールドを使用して、メッシュを介した構成変更の伝播に関する情報を提供します。ステータスはデフォルトで無効になっており、インストール時に(config_distribution_trackingも有効にする必要があります)有効にできます。
$ istioctl install --set values.pilot.env.PILOT_ENABLE_STATUS=true --set values.global.istiod.enableAnalysis=true
statusフィールドには、リソースの構成の状態がさまざまな情報メッセージとともに含まれており、以下が含まれます。
- リソースの準備状況。
- それに関連付けられているデータプレーンインスタンスの数。
istioctl analyzeなどのツールの出力に関する情報。
statusフィールドの表示
kubectl getを使用して、リソースのstatusフィールドの内容を表示できます。たとえば、仮想サービスのステータスを表示するには、次のコマンドを使用します。
$ kubectl get virtualservice <service-name> -o yaml
出力では、statusフィールドには、メッシュを介した構成変更の伝播プロセスに関する詳細を含むいくつかのネストされたフィールドが含まれています。
status:
conditions:
- lastProbeTime: null
lastTransitionTime: "2019-12-26T22:06:56Z"
message: "1 Error and 1 Warning found. See validationMessages field for details"
reason: "errorsFound"
status: "False"
type: PassedAnalysis
validationMessages:
- code: IST0101
level: Error
message: 'Referenced gateway not found: "bogus-gateway"'
- code: IST0102
level: Warn
message: 'mTLS not enabled for virtual service'
conditionsフィールド
条件は、リソースの可能な状態を表します。条件のtypeフィールドには、次の値を指定できます。
PassedAnalysis
設定を適用すると、これらの各タイプの条件がconditionsフィールドに追加されます。
PassedAnalysisタイプの条件のstatusフィールドには、Istioのバックグラウンドアナライザーが設定に問題を検出したかどうかによって、TrueまたはFalseの値が設定されます。Falseの場合、問題の内容はvalidationMessagesフィールドに詳しく記載されます。
PassedAnalysis条件は情報提供用のフィールドのみです。無効な設定の適用をブロックしません。ステータスが検証に失敗したことを示していても、設定の適用が成功している可能性があります。これは、Istioが新しい設定を適用できたものの、その設定が無効であった(構文エラーなどによる)ことを意味します。
validationMessagesフィールド
検証エラーが発生した場合は、詳細情報についてはvalidationMessagesフィールドを確認してください。validationMessagesフィールドには、Istioが設定を適用できないことを示すエラーメッセージや、エラーには至らなかった警告または情報メッセージなど、検証プロセスの詳細が記載されています。
PassedValidationタイプの条件のステータスがFalseの場合、問題の説明がvalidationMessagesに記載されます。PassedValidationのステータスがTrueの場合でも、情報メッセージが存在する可能性があります。
検証メッセージの例については、設定分析メッセージを参照してください。