配置验证详情

config-validate 命令不限于通过 GetMesh 安装的 Istio 版本,而且适用于所有 Istio 发行版、上游和其他版本。

下面的命令检查应用在 my-app.yamlanother-app.yaml 中定义的 manifest 是否会触发任何验证错误。该命令基于三个来源(Istio 上游、Kiali 和本地 GetMesh)报告结果,而无需应用任何配置更改。它可以防止不必要的停机或可预防的问题影响生产工作负载。

# 根据当前集群验证本地 manifest
getmesh config-validate my-app.yaml another-app.yaml

为方便起见,该命令可以使用指定目录中的所有 manifest,而不是像 operator 那样使用单个文件名。下面的示例从 my-manifest-dir 中提取所有 manifest,并检查应用这些 manifest 是否会触发任何验证警报。

# 根据特定 namespace 中的当前集群验证目录中的本地 manifest
getmesh config-validate -n bookinfo my-manifest-dir/

当前实现的配置的验证也是可能的——可以利用下面的命令对集群或每个 namespace 进行验证。

# 对所有 namespace
getmesh config-validate
# 对特定 namespace
getmesh config-validate -n bookinfo

其输出结果将类似于:

NAME                    RESOURCE TYPE           ERROR CODE      SEVERITY        MESSAGE
bookinfo-gateway        Gateway                 IST0101         Error           Referenced selector not found: "app=nonexisting"
bookinfo-gateway        Gateway                 KIA0302         Warning         No matching workload found for gateway selector in this namespace

The error codes of the found issues are prefixed by 'IST' or 'KIA'. For the detailed explanation, please refer to
- https://istio.io/latest/docs/reference/config/analysis/ for 'IST' error codes
- https://kiali.io/documentation/latest/validations/ for 'KIA' error codes