【发布时间】:2018-12-04 13:37:43
【问题描述】:
即使我在 api 中遵循示例 here,我也无法连接到 kubernetes python 客户端。
基本上这条线连接不上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" ]
这是我的 requirements.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 中运行。
我真的很难过 - 有什么建议/提示吗?谢谢。
【问题讨论】:
-
它正在尝试加载
'/root/.kube/config'并且该文件在您的容器中不存在。你期待它存在吗?您希望它从哪里加载您的配置? -
我在本地有 ~/.kube/config 文件,所以我想我错误地认为它可以在通过 requirements.txt 安装 kubernetes 时使用它。我怎样才能让它读取我本地计算机上的配置文件,这可以通过 Dockerfile 吗?
标签: python docker flask kubernetes minikube