配置分析消息

istioctl 提供了对 Istio 配置状态的丰富分析,以便识别无效或次优配置。 以下是此分析产生的不同可能错误或警告消息的列表。

IST0001: InternalError

工具链中出现内部错误。 这几乎总是实现中的错误。

IST0002: Deprecated

配置依赖的功能现已弃用。

IST0101: ReferencedResourceNotFound

引用的资源不存在。

IST0102: NamespaceNotInjected

命名空间未启用 Istio 注入。

IST0103: PodMissingProxy

Pod 缺少 Istio 代理。

IST0106: SchemaValidationError

资源存在模式验证错误。

IST0107: MisplacedAnnotation

Istio 注释应用于错误类型的资源。

IST0108: UnknownAnnotation

Istio 注释未被任何类型的资源识别

IST0109: ConflictingMeshGatewayVirtualServiceHosts

与网格网关关联的虚拟服务上的冲突主机

IST0110: ConflictingSidecarWorkloadSelectors

边车资源与另一个边车资源选择相同的工作负载

IST0111: MultipleSidecarsWithoutWorkloadSelectors

命名空间中有多个边车资源没有工作负载选择器

IST0112: VirtualServiceDestinationPortSelectorRequired

VirtualService 路由到一个暴露多个端口的服务,但没有指定要使用哪个端口。

IST0116: DeploymentAssociatedToMultipleServices

服务网格部署产生的 Pod 不能使用同一个端口但协议不同的方式与多个服务关联。

IST0118: PortNameIsNotUnderNamingConvention

端口名称不符合命名规范。将对端口应用协议检测。

IST0123: NamespaceMultipleInjectionLabels

命名空间中存在多种类型的注入标签。

IST0125: InvalidAnnotation

无效的 Istio 注解。

IST0126: UnknownMeshNetworksServiceRegistry

Mesh Networks 中的某个服务注册表未知。

IST0127: NoMatchingWorkloadsFound

没有与资源标签匹配的工作负载。

IST0128: NoServerCertificateVerificationDestinationLevel

DestinationRule 中没有设置 caCertificates,导致无法验证呈现的服务器证书。

IST0129: NoServerCertificateVerificationPortLevel

DestinationRule 中没有设置 caCertificates,导致无法验证发送到特定端口的流量的呈现的服务器证书。

IST0130: VirtualServiceUnreachableRule

由于先前规则使用相同的匹配项,VirtualService 规则将永远不会被使用。

IST0131: VirtualServiceIneffectiveMatch

VirtualService 规则匹配项复制了先前规则中的匹配项。

IST0132: VirtualServiceHostNotFoundInGateway

在 VirtualService 中定义的主机在 Gateway 中找不到。

IST0133: SchemaWarning

资源存在模式验证警告。

IST0134: ServiceEntryAddressesRequired

当代理上未设置 ISTIO_META_DNS_AUTO_ALLOCATE 时,为提供 TCP(或未设置)协议的端口需要虚拟 IP 地址。

IST0135: DeprecatedAnnotation

资源正在使用已弃用的 Istio 注解。

IST0136: AlphaAnnotation

Istio 注解可能不适合生产环境。

IST0137: DeploymentConflictingPorts

两个选择相同工作负载且具有相同 targetPort 的服务必须引用同一个端口。

IST0138: GatewayDuplicateCertificate

如果客户端重用 HTTP2 连接,多个网关中的重复证书可能会导致 404 错误。

IST0139: InvalidWebhook

Webhook 无效,或者引用了不存在的控制平面服务。

IST0140: IngressRouteRulesNotAffected

路由规则对入站网关请求没有影响。

IST0141: InsufficientPermissions

缺少安装 Istio 所需的权限。

IST0142: UnsupportedKubernetesVersion

Kubernetes 版本不受支持。

IST0143: LocalhostListener

服务中暴露的端口绑定到本地主机地址。

IST0144: InvalidApplicationUID

应用程序 Pod 不应以用户 ID (UID) 1337 运行。

IST0145: ConflictingGateways

网关不应具有与服务器相同的选择器、端口和匹配的主机。

IST0146: ImageAutoWithoutInjectionWarning

具有 `image: auto` 的部署应该被设置为目标进行注入。

IST0147: ImageAutoWithoutInjectionError

具有 `image: auto` 的 Pod 应该被设置为目标进行注入。

IST0148: NamespaceInjectionEnabledByDefault

如果 Istio 安装时启用了 enableNamespacesByDefault,并且未设置注入标签,则用户命名空间应该是可注入的。

IST0149: JwtClaimBasedRoutingWithoutRequestAuthN

VirtualService 使用基于 JWT 声明的路由,但没有请求身份验证。

IST0150: ExternalNameServiceTypeInvalidPortName

代理可能会阻止为 TCP 协议提供服务的端口的 TCP 命名端口和不匹配的流量被正确转发,从而影响 ExternalName 服务。

IST0151: EnvoyFilterUsesRelativeOperation

此 EnvoyFilter 没有优先级,并且设置了相对补丁操作,这会导致 EnvoyFilter 无法应用。使用 INSERT_FIRST 或 ADD 选项或设置优先级可能有助于确保正确应用 EnvoyFilter。

IST0152: EnvoyFilterUsesReplaceOperationIncorrectly

REPLACE 操作仅对 HTTP_FILTER 和 NETWORK_FILTER 有效。

IST0153: EnvoyFilterUsesAddOperationIncorrectly

当 applyTo 设置为 ROUTE_CONFIGURATION 或 HTTP_ROUTE 时,ADD 操作将被忽略。

IST0154: EnvoyFilterUsesRemoveOperationIncorrectly

当 applyTo 设置为 ROUTE_CONFIGURATION 或 HTTP_ROUTE 时,REMOVE 操作将被忽略。

IST0155: EnvoyFilterUsesRelativeOperationWithProxyVersion

此 EnvoyFilter 没有优先级,并且设置了相对补丁操作(NSTERT_BEFORE/AFTER、REPLACE、MERGE、DELETE)和 proxyVersion,这会导致 EnvoyFilter 在升级期间无法应用。使用 INSERT_FIRST 或 ADD 选项或设置优先级可能有助于确保正确应用 EnvoyFilter。

IST0156: UnsupportedGatewayAPIVersion

不支持 Gateway API CRD 版本。

IST0157: InvalidTelemetryProvider

具有空提供程序的遥测将被忽略。

IST0158: PodsIstioProxyImageMismatchInNamespace

在命名空间中运行的 Pod 的 Istio 代理镜像与注入配置中定义的镜像不匹配。

IST0159: ConflictingTelemetryWorkloadSelectors

某个遥测资源与另一个遥测资源选择相同的工作负载。

IST0160: MultipleTelemetriesWithoutWorkloadSelectors

命名空间中有多个遥测资源没有工作负载选择器。

IST0161: InvalidGatewayCredential

为 Gateway 资源提供的凭证无效。

IST0162: GatewayPortNotDefinedOnService

服务没有暴露网关端口。

IST0163: InvalidExternalControlPlaneConfig

外部控制平面上的入站网关地址无效。

IST0164: ExternalControlPlaneAddressIsNotAHostname

外部控制平面上的入站网关地址是一个 IP 地址,而不是主机名。

IST0165: ReferencedInternalGateway

VirtualServices 不应引用内部网关。

IST0166: IneffectiveSelector

选择器应用于 Kubernetes 网关时没有效果。

IST0167: IneffectivePolicy

应用的策略没有影响。

IST0168: UnknownUpgradeCompatibility

我们无法自动检测更改是否完全兼容。

IST0169: UpdateIncompatibility

提供的配置对象可能由于升级而无法兼容。

IST0170: MultiClusterInconsistentService

在多集群部署模型下,位于不同集群的服务不一致。