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