python - kubernetes python 客户端获取特定注释的值

标签 python python-3.x kubernetes

我正在尝试使用 kubernetes python 客户端获取节点注释的值。

此代码打印具有 etcd 节点的节点的所有注释:

#!/usr/bin/python

from kubernetes import client, config

def main():
    config.load_kube_config("./backup_kubeconfig_prod")
    label_selector = 'node-role.kubernetes.io/etcd'

    v1 = client.CoreV1Api()
    print("Listing nodes with their IPs:")
    ret = v1.list_node(watch=False, label_selector=label_selector)

    for i in ret.items:
      print(i.metadata.annotations)

if __name__ == '__main__':
    main()

输出示例:

{'flannel.alpha.coreos.com/kube-subnet-manager': 'true', 'flannel.alpha.coreos.com/backend-type': 'vxlan', 'flannel.alpha.coreos.com/backend-data': '{"VtepMAC":"96:70:f6:ab:4f:30"}', 'rke.cattle.io/internal-ip': '1.2.3.4', 'volumes.kubernetes.io/controller-managed-attach-detach': 'true', 'flannel.alpha.coreos.com/public-ip': '1.2.3.4', 'rke.cattle.io/external-ip': '1.2.3.4', 'node.alpha.kubernetes.io/ttl': '0'}

例如,如何打印 flannel.alpha.coreos.com/public-ip 的值?

最佳答案

i.metadata.annotations中的数据是字典类型。

您可以使用以下方法打印 key flannel.alpha.coreos.com/public-ip 的值:

print(i.metadata.annotations["flannel.alpha.coreos.com/public-ip"])

关于python - kubernetes python 客户端获取特定注释的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54419233/

相关文章:

python - Pandas 列绑定(bind)(cbind)两个数据框

python-3.x - 使用 Networkx 在 Python 中查找 1 跳、2 跳、...、k 跳邻居

kubernetes - SeaweedFS k8s 100 硬盘

Python 单元测试在失败后继续

python - 如何在 Keras 中的模型中显示 "Flatten"模型

python - 将相同的元素追加到python中的多个子列表中

python - 如何在模型中引发 HTTP 400?

python-3.x - 我如何知道今天是否是由于更改民用本地时间而导致的一天,例如标准 python 和 pandas 时间戳中的夏令时?

azure - 设置 AKS 群集静态 IP、负载均衡器和入口 Controller 的正确方法是什么?

deployment - 如何在本地使用Docker部署Kubernetes?