本文介紹使用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網關。
文檔內容是否對您有幫助?