組態狀態欄位
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
欄位的值將會是 True
或 False
,取決於 Istio 的背景分析器是否偵測到您的配置有問題。如果為 False
,問題的詳細資訊將會列在 validationMessages
欄位中。
PassedAnalysis
條件僅為資訊性的欄位。它不會阻止無效配置的應用。狀態有可能顯示驗證失敗,但配置應用卻成功的情況。這表示 Istio 能夠設定新的配置,但該配置無效,很可能是因為語法錯誤或類似問題。
validationMessages
欄位
如果驗證失敗,請查看 validationMessages
欄位以獲取更多資訊。validationMessages
欄位包含驗證過程的詳細資訊,例如指示 Istio 無法應用配置的錯誤訊息,以及不會導致錯誤的警告或資訊性訊息。
如果類型為 PassedValidation
的條件狀態為 False
,將會有 validationMessages
解釋問題。當 PassedValidation
狀態為 True
時,也可能存在訊息,因為這些是資訊性訊息。
有關驗證訊息範例,請參閱組態分析訊息。