rest - kubernetes - 通过 REST-Call 列出所有 namespace 的入口

标签 rest kubernetes kubernetes-ingress

我想列出 kubernets 集群上每个命名空间的所有入口 URL。

我知道这是可能的:

  1. kubectl -> kubectl 获取入口
  2. 众多客户,例如对于Python:https://github.com/kubernetes-client/python/blob/master/kubernetes/docs/ExtensionsV1beta1Api.md#list_ingress_for_all_namespaces

对于我目前的情况,一个简单的 REST-Call 将是最好的解决方案,但我找不到任何文档可以为我指明正确的方向。是否有 REST 端点可以访问 kubernets 集群上的上述信息?

提前致谢。

最佳答案

是的,您可以调用API服务器来检索所有入口规则: https://kubernetes/apis/extensions/v1beta1/ingresses

此 URL 可以在您的集群环境中使用。从外部调用时将其替换为一些公共(public)IP/域。

您需要使用承载 token 进行身份验证。该 token 通常安装在 Pod 中的 /var/run/secrets/kubernetes.io/serviceaccount/token 中(也有一些异常(exception),例如 terraform kubernetes 后端默认不安装此 token )。要获取 token 供外部使用,您可以使用以下命令导出它:

TOKEN=$(kubectl describe secret $(kubectl get secrets \
     | grep ^default | cut -f1 -d ' ') | grep -E '^token' | cut -f2 -d':' | tr -d " ")

这里有一些更多信息(不是关于入口,而是关于其他 REST API 调用):https://stackoverflow.com/a/50797128/9423721

关于rest - kubernetes - 通过 REST-Call 列出所有 namespace 的入口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64371887/

相关文章:

http - PUT/DELETE 是 REST 自动幂等的吗?

kubernetes - 在 Kubernetes 集群中与 API 进行前端通信

kubernetes - k8s 中的污染

kubernetes - 无法从外部访问入口 Controller NodePort

azure - LetsEncrypt 证书请求因 AKS 入口而失败

linux - 是否有用于 Linux 手册页的(RESTful)API?

java - 如何在 Restful Web 服务上接收 Json 对象?

java - 在 Spring 中使用 REST,而不使用 MVC

kubernetes - 来自 Env 的 Kubernetes 中服务/负载均衡器的公共(public) IP 地址

elasticsearch - 无法访问Kibana仪表板