我想列出 kubernets 集群上每个命名空间的所有入口 URL。
我知道这是可能的:
- kubectl -> kubectl 获取入口
- 众多客户,例如对于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/