问题描述
在 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。