構成状態フィールド
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
の場合でも、情報メッセージが存在する可能性があります。
検証メッセージの例については、設定分析メッセージを参照してください。