python FileNotFoundError: [Errno 2] с абсолютным путем и файлом существует

Я запускаю скрипт Python как работу Kubernetes. Но у меня следующий вопрос. Я уже пробовал, chmod -R 777 /home/vagrant/но это не делает скрипт успешным.

Traceback (most recent call last):
  File "app.py", line 39, in <module>
    main()
  File "app.py", line 28, in main
    config.load_kube_config(config_file=kubeconfig)
  File "/usr/local/lib/python3.6/site-packages/kubernetes/config/kube_config.py", line 470, in load_kube_config
    config_persister=config_persister)
  File "/usr/local/lib/python3.6/site-packages/kubernetes/config/kube_config.py", line 427, in _get_kube_config_loader_for_yaml_file
    with open(filename) as f:
FileNotFoundError: [Errno 2] No such file or directory: '/home/vagrant/.kube/config'

Как вы можете видеть, сценарий выходит из строя, потому что такой файл не существует, но когда я делаю lsфайл, он показывает, что он существует.

vagrant@vagrant:/vagrant/podsLister$ kubectl delete job pod-lister
job.batch "pod-lister" deleted
vagrant@vagrant:/vagrant/podsLister$ ls /home/vagrant/.kube/
cache  config  http-cache

python,python-3.x,kubernetes,minikube,

0

Ответов: 1


1

Проблема в том, что скрипт запущен внутри контейнера Docker. У этого контейнера есть своя файловая система, а не файловая система какой-либо машины, на которой она размещается. То есть, на самом деле, большинство из точки контейнеров: они действуют как изолированный, отдельный компьютер, без необходимости в фактической отдельный компьютер.

Решение немного менее очевидно, потому что непонятно, почему вы ожидали, что это сработает или что вы пытаетесь сделать. Вещи, которые могут иметь смысл, включают:

  • Изменение скрипта сборки docker для копирования файла в контейнер.
  • Настройка совместного доступа к файлу хоста, поэтому часть файловой системы реальной машины доступна для контейнеров, а затем монтируется контейнер.
  • Настройка «нормального» совместного использования файлов, поэтому часть файловой системы реальной машины доступна любому пользователю в сети, а затем монтирует контейнер.
  • Используя некоторые функции более высокого уровня, такие как Kubernetes ConfigMaps, выставлять файл в контейнеры.
питон, питон-3.x, kubernetes, minikube,
Похожие вопросы