helloworld
helloworld

Reputation: 409

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

I'm having trouble connecting to the kubernetes python client even though I'm following the examples here in the api.

Basically this line can't connect to the kubernetes client:

config.load_kube_config()

What I'm doing:

I have a Dockerfile file like this that I'm building my image with. This is just a simple python/flask app.

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" ]

This is my requirements.txt:

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

After building the Dockerfile it outputs:

    Successfully built a2590bae9fd9
    Successfully tagged testapp:latest

but when I do docker run a2590bae9fd9 I receive an error:

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'

I thought it might've been my python directory but I checked and its running in /usr/local/bin/python.

I'm really stumped - any suggestions/tips? thank you.

Upvotes: 14

Views: 11561

Answers (1)

mdaniel
mdaniel

Reputation: 33158

You don't want config.load_kube_config(), you want config.load_incluster_config()

If you need to distinguish between your setup and when it's running in a Pod, one mechanism is if os.getenv('KUBERNETES_SERVICE_HOST'): config.load_incluster_config() since that for sure will be in the environment while in a Pod, and is unlikely to be in your local environment.

Upvotes: 21

Related Questions