構成状態フィールド

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の場合でも、情報メッセージが存在する可能性があります。

検証メッセージの例については、設定分析メッセージを参照してください。

この情報は役に立ちましたか?
改善のための提案はありますか?

ご意見ありがとうございます!