配置状态字段

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 字段的内容。例如,要查看虚拟服务的 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 时,也可能存在消息,因为这些是信息消息。

有关验证消息示例,请参阅 配置分析消息

这些信息是否有用?
您是否有任何改进建议?

感谢您的反馈!