Получение IP-адреса шлюза Ingress с помощью клиента Kubernetes Python

Я использую следующую команду kubectl, чтобы получить IP-адрес хоста Ingress после того, как мое развертывание Seldon станет доступным.

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

Я хотел бы запустить ту же команду из Kubernetes Python API, но не могу найти в документации информацию о том, как это сделать.

Не могли бы вы мне помочь?

Заранее спасибо.

2 ответа

Решение

Для каждой операции REST для каждого типа объекта Kubernetes существует отдельная клиентская функция. Получив этот объект, вы можете перемещаться по нему, как по любому другому объекту 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 для настраиваемых ресурсов .

      import kubernetes

network_api =kubernetes.client.NetworkingV1Api()
service = network_api.read_namespaced_ingress(ingress_name, namespace)
print(service.status.load_balancer.ingress[0].ip)
Другие вопросы по тегам