【问题标题】:How to get the status of Kubernetes nodes via the client?如何通过客户端获取 Kubernetes 节点的状态?
【发布时间】:2021-07-22 04:26:21
【问题描述】:

我想通过 go 客户端获取节点列表及其在 Kubernetes 中的状态。我在用 clientset.CoreV1().Nodes().List(metav1.ListOptions{}) 并且我能够获取节点列表和一些信息,例如节点标签,但我找不到 status.phase 那里(对于给我状态的 pod)。

我搜索并找到了NodeCondition (https://github.com/kubernetes/api/blob/9b64426eca51a74faa7cc9bd732a533d339c69c2/core/v1/types.go#L4911),但我找不到任何关于如何使用它的文档,我自己也无法让它工作。有人可以告诉我如何通过客户端获取节点的状态吗?

【问题讨论】:

    标签: go kubernetes kubernetes-go-client


    【解决方案1】:

    您可以通过node.Status.Condition访问它

    nodes, _ := client.CoreV1().Nodes().List(context.TODO(), metav1.ListOptions{})
    
    for _, node := range nodes.Items {
        fmt.Printf("%s\n", node.Name)
        for _, condition := range node.Status.Conditions {
            fmt.Printf("\t%s: %s\n", condition.Type, condition.Status)
        }
    }
    

    打印:

    dev-master-01
            NetworkUnavailable: False
            MemoryPressure: False
            DiskPressure: False
            PIDPressure: False
            Ready: True
    dev-master-02
            NetworkUnavailable: False
            MemoryPressure: False
            DiskPressure: False
            PIDPressure: False
            Ready: True
    dev-master-03
            NetworkUnavailable: False
            MemoryPressure: False
            DiskPressure: False
            PIDPressure: False
            Ready: True
    

    【讨论】:

      猜你喜欢
      • 2022-11-30
      • 1970-01-01
      • 2020-04-10
      • 1970-01-01
      • 2021-11-25
      • 2018-03-17
      • 2021-04-24
      • 2019-10-01
      • 2021-09-15
      相关资源
      最近更新 更多