組態狀態欄位

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 欄位的值將會是 TrueFalse,取決於 Istio 的背景分析器是否偵測到您的配置有問題。如果為 False,問題的詳細資訊將會列在 validationMessages 欄位中。

PassedAnalysis 條件僅為資訊性的欄位。它不會阻止無效配置的應用。狀態有可能顯示驗證失敗,但配置應用卻成功的情況。這表示 Istio 能夠設定新的配置,但該配置無效,很可能是因為語法錯誤或類似問題。

validationMessages 欄位

如果驗證失敗,請查看 validationMessages 欄位以獲取更多資訊。validationMessages 欄位包含驗證過程的詳細資訊,例如指示 Istio 無法應用配置的錯誤訊息,以及不會導致錯誤的警告或資訊性訊息。

如果類型為 PassedValidation 的條件狀態為 False,將會有 validationMessages 解釋問題。當 PassedValidation 狀態為 True 時,也可能存在訊息,因為這些是資訊性訊息。

有關驗證訊息範例,請參閱組態分析訊息

這些資訊對您有幫助嗎?
您有任何改進建議嗎?

感謝您的回饋!