1

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

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

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

你能帮帮我吗?

提前致谢。

4

2 回答 2

3

每个 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 文档包括所有请求和返回类型的每个方法调用和文档。

服务是标准的 Kubernetes 对象。如果您正在处理一些特定于 Istio 的对象,例如 VirtualServices,则有一个用于自定义资源的单独 API

于 2021-07-03T11:00:14.397 回答
0
import kubernetes

network_api =kubernetes.client.NetworkingV1Api()
service = network_api.read_namespaced_ingress(ingress_name, namespace)
print(service.status.load_balancer.ingress[0].ip)
于 2022-02-18T07:44:20.773 回答