使用 Kubernetes Python 客户端获取 Ingress 网关 IP 地址

问题描述

在 Seldon 部署可用后,我使用以下 kubectl 命令获取 Ingress 主机 IP 地址。

kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.status.loadBalancer.ingress[0].ip}'

我想从 Kubernetes Python API 运行相同的命令,但在文档中找不到有关如何执行此操作的任何信息。

你能帮我吗?

提前致谢。

解决方法

每个 Kubernetes 对象类型上的每个 REST 操作都有一个单独的客户端函数。拥有该对象后,您就可以像浏览任何其他 Python 对象一样对其进行导航。

service = kubernetes.client.read_namespaced_service('istio-ingressgateway','istio-system')
print(service.status.load_balancer.ingress[0].ip)
# Note the capitalization ^^^^ of load_balancer,not loadBalancer

service 对象是一个 V1Service 对象。更一般地说,API documentation 包括所有请求和返回类型的每个方法调用和文档。

服务是标准的 Kubernetes 对象。如果您正在处理一些 Istio 特定的对象,例如 VirtualServices,则有 a separate API for custom resources

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...