无法连接到 kubernetes python api - .kube/config 找不到文件
Unable to connect to kubernetes python api - .kube/config file not found
我在连接到 kubernetes python 客户端时遇到问题,尽管我正在按照 api 中的示例 here 进行操作。
基本上这一行无法连接到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 中。
我真的很困惑 - suggestions/tips?谢谢你。
你不想要config.load_kube_config()
,你想要config.load_incluster_config()
如果您需要区分您的设置和 Pod
中的 运行,一种机制是 if os.getenv('KUBERNETES_SERVICE_HOST'): config.load_incluster_config()
,因为在 if os.getenv('KUBERNETES_SERVICE_HOST'): config.load_incluster_config()
中肯定会在环境中=12=],并且不太可能出现在您的本地环境中。
我在连接到 kubernetes python 客户端时遇到问题,尽管我正在按照 api 中的示例 here 进行操作。
基本上这一行无法连接到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 中。
我真的很困惑 - suggestions/tips?谢谢你。
你不想要config.load_kube_config()
,你想要config.load_incluster_config()
如果您需要区分您的设置和 Pod
中的 运行,一种机制是 if os.getenv('KUBERNETES_SERVICE_HOST'): config.load_incluster_config()
,因为在 if os.getenv('KUBERNETES_SERVICE_HOST'): config.load_incluster_config()
中肯定会在环境中=12=],并且不太可能出现在您的本地环境中。