Невозможно подключиться к kubernetes python api - файл.kube/config не найден
У меня проблемы с подключением к клиенту Python kubernetes, хотя я следую приведенным ниже примерам.
По сути, эта линия не может подключиться к клиенту 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 ответ
Ты не хочешь config.load_kube_config()
, ты хочешь config.load_incluster_config()
Если вам нужно различать ваши настройки и когда они работают в Pod
, один механизм if os.getenv('KUBERNETES_SERVICE_HOST'): config.load_incluster_config()
так как это наверняка будет в окружающей среде, а в Pod
и вряд ли будет в вашей местной среде.