kubernetes - 通过 REST 调用列出所有命名空间的入口

kubernetes -list ingress for all namespaces by REST-Call

我想列出 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 可以在您的集群环境中工作。外面调用的时候换成一些publicIP/Domain

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

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

这里有更多信息(不是关于入口,而是关于其他 REST API 调用):