本文介绍使用kubectl命令列出Istio网关会返回空值或者没有返回Istio网关资源的问题现象、问题原因和解决方案。
问题现象
已创建Istio网关。执行以下命令,返回No resources found
,或者没有返回Istio网关资源。
kubectl get gateway --all-namespaces
问题原因
ASM v1.8.6及以上版本可能会发生此问题,因为从该版本开始ASM会自动安装自定义资源gateway.networking.x-k8s.io。更多信息,请参见使用Gateway API定义路由规则。
Kubernetes Gateway API和Istio API都有一个名为Gateway的资源。虽然它们功能类似,但不是相同的资源。使用kubectl命令时,Gateway的名称会重叠。执行kubectl get gateway
可能返回的是Kubernetes网关资源,而不是Istio网关资源。如果此时没有定义Kubernetes网关资源,则返回的会是空值。如果定义了Kubernetes网关资源,则返回的是Kubernetes网关资源。
解决方案
使用ASM控制台查看Istio网关。
在kubectl命令中使用完整的资源名称或易辨认的简称。
Kubernetes网关的简称为gtw,Istio网关的简称为gw。您可以执行
kubectl get gw
或kubectl get gateways.networking.istio.io
以确保返回的是Istio网关。
文档内容是否对您有帮助?