簡體   English   中英

無法連接到kubernetes python api - 找不到.kube / config文件

[英]Unable to connect to kubernetes python api - .kube/config file not found

即使我在api中遵循這里的示例,我也無法連接到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" ]

這是我的要求.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中運行。

我真的很難過 - 任何建議/提示? 謝謝。

你不想要config.load_kube_config() ,你想要config.load_incluster_config()

如果你需要區分你的設置和它在Pod運行的時間,一種機制是if os.getenv('KUBERNETES_SERVICE_HOST'): config.load_incluster_config()因為肯定會在Pod中的環境中,並且不太可能在你當地的環境中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM