【问题标题】:What's the Kubernetes Client-Java API to get all deployments获取所有部署的 Kubernetes Client-Java API 是什么
【发布时间】:2018-11-02 11:51:06
【问题描述】:

我一直在探索Kubernetes-Client/Java library,但无法弄清楚获取所有部署的 API 调用。

我正在寻找此命令的 K8-Client/Java API 调用:

kubectl get deployments
NAME             DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
appservice1       3         3         3            3           5d
appservice2       3         3         3            3           1d
appservice3       1         1         1            1           22d

更具体地说,我有兴趣确定每个部署所需的和当前 pod 的数量(如上)。

【问题讨论】:

    标签: java kubernetes kubernetes-health-check


    【解决方案1】:

    你可以在这里找到 Kubernetes java 客户端的所有方法: https://github.com/kubernetes-client/java/tree/master/kubernetes/docs

    您要搜索的是listNamespacedDeploymentlistDeploymentForAllNamespaces

    这些方法的返回类型是 V1DeploymentList,因此您会找到 V1DeploymentStatus,其中包含有关部署控制的当前 pod 数量的所有信息。

    【讨论】:

    • 啊,我明白了。它是ExtensionsV1beta1Api 的一部分,我正在查看CoreV1Api。谢谢!
    • 我有一个后续问题:ExtensionsV1beta1DeploymentStatus.availableReplicasExtensionsV1beta1DeploymentStatus.readyReplicas 之间有什么区别?另外,ExtensionsV1beta1DeploymentStatus.replicas 是否与上面示例中的 DESIRED 部署相同?只是想进一步澄清这一点。
    • 嗨!您可以参考以下文档文件:github.com/kubernetes-client/java/blob/master/kubernetes/docs/…
    • 在已回答的链接中找不到页面
    【解决方案2】:

    还有一个kubernetes jave client,这里是example of deployments

    请注意,官方库是由 swagger 生成的,并且组织得不好(我认为)。

    【讨论】:

      【解决方案3】:

      为了列出kubernetes中的一些资源,首先你必须找到这个资源类型属于哪个apiVersion。 对于部署,它是apiVersion: apps/v1

      AppsV1Api appsV1Api = new AppsV1Api();
      appsV1Api.listNamespacedDeployment or listDeploymentForAllNamespaces
      

      【讨论】:

        猜你喜欢
        • 2018-10-30
        • 2019-11-26
        • 1970-01-01
        • 2011-10-18
        • 2020-05-22
        • 2019-04-11
        • 2019-05-22
        • 2019-04-09
        • 2018-09-29
        相关资源
        最近更新 更多