Доступ к 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).

Другие вопросы по тегам