我们无法通过 Kubernetes REST API 访问 Istio 对象。
例:
kubectl get gateways
工作并显示默认命名空间中的所有 Istio 网关。curl ..../api/v1/namespaces/default/pods
显示所有豆荚 部署在默认命名空间中。curl ..../api/v1/namespaces/default/gateways
返回404
.
virtualservices
、serviceentries
和任何其他 Istio 对象也是如此。
我们在集群中运行了一个 REST API 服务器。 我们猜测问题可能是由于它支持 API 版本v1
而 Istio 对象创建 YAML 文件引用 API 版本networking.istio.io/v1alpha3
引起的。
这有点令人困惑,因为我们可以通过命令创建和获取 Istio 对象kubectl
但不能通过向 kubernetes REST API 服务器发出 HTTP 请求来做同样的事情。 欢迎任何见解。谢谢。
当我检查 kubernetes REST 服务器的日志时,我得到了一些想法。 其余服务器被发现为在命名空间kube-system
中运行的 pod
。无论如何,每次你需要使用 kubernetes REST 服务器来获取通过 API 版本创建的 Istio 对象时networking.istio.io/v1alpha3
而不是像这样向 kubernetes REST 服务器发出 HTTP 请求.../api/v1/namespaces/default/gateways
而不是.../apis/networking.istio.io/v1alpha3/gateways
。 将网关替换为感兴趣的 Istio 对象的名称。