Доступ к kubernetes Python API через стручок
Поэтому мне нужно подключиться к клиенту python kubernetes через модуль. Я пытался использовать config.load_incluster_config()
в основном следуя примеру отсюда. Однако это выбрасывает эти ошибки.
File "/Users/myname/Library/Python/2.7/lib/python/site-packages/kubernetes/config/incluster_config.py", line 93, in load_incluster_config
cert_filename=SERVICE_CERT_FILENAME).load_and_set()
File "/Users/myname/Library/Python/2.7/lib/python/site- packages/kubernetes/config/incluster_config.py", line 45, in load_and_set
self._load_config()
File "/Users/myname/Library/Python/2.7/lib/python/site-packages/kubernetes/config/incluster_config.py", line 51, in _load_config
raise ConfigException("Service host/port is not set.")
Я использую Python 2.7 и Minikube. Любые советы или предложения будут очень признательны. благодарю вас.
1 ответ
так что мне нужно подключиться к этому моду как-то через API Python
Я уверен, что вы неправильно поняли мой ответ, и / или я неправильно понял ваш вопрос. Надо только использовать load_incluster_config
когда... в кластере... в противном случае он будет пытаться использовать /var/run/secrets/kubernetes.io/etcetc
и не найти их (помимо отсутствующего env-var в фактической ошибке, которую вы цитировали выше). Однако, если вы охраняли load_incluster_config()
с if os.getenv('KUBERNETES_SERVICE_HOST'):
как и предполагалось, тогда этот код не запустится, и этот вопрос не будет проблемой.
Если вы создали образ докера, но не развернули его в kubernetes, то это неясно.
Если вы просто хотите использовать Python API для доступа к кластеру, но не из кластера, config.load_kube_config()
это на самом деле правильный вызов метода, но вам абсолютно необходимо обеспечить работоспособность kubeconfig
будь то в /root/.kube/config
или в другом месте, указанном env-var KUBECONFIG
(Я имею в виду, обычно; я специально не заглядывал в библиотеку python, чтобы узнать, соблюдается ли этот env-var).