【问题标题】:Kubernetes REST APIKubernetes REST API
【发布时间】:2020-01-10 23:24:28
【问题描述】:

kubernetes 是否可以通过 REST API 访问?我正在查看Kubernetes API 页面,它看起来非常神秘/不完整。他们谈论新版本,但没有在任何地方披露 API 使用或文档。我只是想知道除了使用kubectl 命令之外,是否有其他方法可以访问集群信息。

示例用法:

我现在做什么:

kubectl get pod --context='my-prod-cluster'

我想做的事:

curl GET /some/parameters/to/get/info

【问题讨论】:

    标签: api kubernetes


    【解决方案1】:

    您可以通过将--v=8 传递给任何 kubectl 命令来查看 kubectl 正在进行的所有 API 调用

    【讨论】:

    • 当我运行kubectl get pods --context='vagrant' -v=8时得到Error: unknown shorthand flag: 'v' in -v=8
    • 有效。是否有任何资源显示如何使用 REST 调用提取信息?我仍然没有遵循官方文档,它非常令人困惑,而且他们没有任何类型的示例用法可以帮助我了解我哪里出错了
    【解决方案2】:

    REST API 已在 Kubernetes 网站上完整记录: https://kubernetes.io/docs/reference/using-api/api-overview/

    它包括有关如何reach the APIbe authorized to use the API 的信息,以及可用 API 对象的完整细分以及您可以对它们执行哪些操作。

    【讨论】:

    【解决方案3】:

    API 在kubectl 之外可供您使用。事实上,我的理解是,在这一切之下,kubectl 只是对 API 服务器进行 REST 调用。在使用 TLS 证书进行身份验证的集群中,列出您的 pod 的 curl 调用可能如下所示(您可以使用 kubectl cluster-info | grep 'Kubernetes master' 获取您的 apiserver 位置/端口):

    curl --cert myuser.pem --key myuser-key.pem --cacert /path/to/ca.pem https://my-prod-cluster-apiserver:6443/api/v1/pods
    

    This doc 展示了如何使用 kubectl proxy 来让您在自己的集群上探索 Swagger 生成的 API 文档。

    【讨论】:

    • 我在引用生成的文档的链接上找不到 swagger/openAPI 文件。
    【解决方案4】:

    我认为这可能是您发现的,尽管它并不总是最新的。 http://kubernetes.io/kubernetes/third_party/swagger-ui/

    【讨论】:

    • 我在这个链接上找不到 swagger/openAPI 文件
    【解决方案5】:

    Kubernetes 有一个 API 参考页面。它详细介绍了可通过 API 访问的所有操作。要在本地访问集群的 API,请确保使用 kubectl proxy 进行代理(当然是在设置之后)。

    API 参考: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.11/

    【讨论】:

      猜你喜欢
      • 2019-05-17
      • 2019-08-13
      • 1970-01-01
      • 1970-01-01
      • 2017-04-16
      • 2018-06-24
      • 1970-01-01
      • 2020-01-18
      • 2020-11-18
      相关资源
      最近更新 更多