Получение 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)