Невозможно подключиться к kubernetes python api - файл .kube / config не найден - PullRequest
0 голосов
/ 26 июня 2018

У меня проблемы с подключением к клиенту Python kubernetes, хотя я следую за примерами здесь в API.

В основном эта строка не может подключиться к клиенту kubernetes:

config.load_kube_config()

Что я делаю:

У меня есть файл Dockerfileвот так я строю свой имидж.Это просто простое приложение на python / flask.

FROM python:2

RUN mkdir -p /usr/src/app

WORKDIR /usr/src/app

COPY requirements.txt /usr/src/app/

RUN pip install --no-cache-dir -r requirements.txt

COPY . /usr/src/app

EXPOSE 5000

CMD [ "python", "./app.py" ]

Это мои требования.txt:

Flask==1.0.2
gunicorn==19.8.1
kubernetes==6.0.0
requests # Apache-2.0

После построения Dockerfile он выдает:

    Successfully built a2590bae9fd9
    Successfully tagged testapp:latest

, но когда я делаю docker run a2590bae9fd9, я получаюошибка:

Traceback (most recent call last):
  File "./app.py", line 10, in <module>
    config.load_kube_config()
  File "/usr/local/lib/python2.7/site-     packages/kubernetes/config/kube_config.py", line 470, in load_kube_config
    config_persister=config_persister)
   File "/usr/local/lib/python2.7/site-   packages/kubernetes/config/kube_config.py", line 427, in     _get_kube_config_loader_for_yaml_file
    with open(filename) as f:
 IOError: [Errno 2] No such file or directory: '/root/.kube/config'

Я думал, что это мог быть мой каталог python, но я проверил, и он работает в / usr / local / bin / python.

Я действительно в замешательстве - какие-либо предложения / советы?благодарю вас.

1 Ответ

0 голосов
/ 26 июня 2018

Вы не хотите config.load_kube_config(), вы хотите config.load_incluster_config()

Если вам необходимо различать вашу установку и когда она работает в Pod, один механизмif os.getenv('KUBERNETES_SERVICE_HOST'): config.load_incluster_config(), поскольку это наверняка будет в среде, в то время как в Pod, и вряд ли будет в вашей локальной среде.

...