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

Get Ingress gateway IP address using Kubernetes Python client

我正在使用以下 kubectl 命令在我的 Seldon 部署可用后获取 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 object. More generally, the API documentation 包含所有请求和 return 类型的每个方法调用和文档。

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

import kubernetes

network_api =kubernetes.client.NetworkingV1Api()
service = network_api.read_namespaced_ingress(ingress_name, namespace)
print(service.status.load_balancer.ingress[0].ip)