Я пытаюсь скопировать локальный файл Python в работающий контейнер Kubernetes, и это не удается:
$ kubectl cp /path/to/file.py namespace/pod:/path/in/container/file.py
tar: This does not look like a tar archive
tar: Exiting with failure status due to previous errors
command terminated with exit code 2
Я знаю, что двоичный файл tar
должен быть доступен в контейнере, и это так.
Кто-нибудь знает, что здесь происходит и как я могу это решить?
ОБНОВЛЕНИЕ:
После еще нескольких тестов я могу подтвердить, что это происходит только на узлах, которые работают nvidia-docker
, а не на обычных docker
. При подаче чего-либо в kubectl exec
на этих узлах поток всегда пуст.
Таким образом, следующая команда дает пустой файл в модуле, работающем на узле с поддержкой графического процессора, в то время как файл не является пустым на других узлах без поддержки графического процессора:
cat nonempty_file.txt | kubectl exec -i pod -- tee /home/jovyan/empty_file.txt
Это было протестировано с использованием одного и того же изображения / контейнера на обоих узлах.
kubectl
двоичным файлом и сервером, поскольку разница версий фактически ограничена - person mdaniel   schedule 21.10.2019kubectl
, пытаясь исправить эту проблему. Младшая версия клиента была 14 раньше, и это дало мне ту же ошибку. - person Simon G.   schedule 21.10.2019cat /path/to/file.py | kubectl exec -it pod -- tee path/in/container/file.py 2>/dev/null
- person Mark   schedule 21.10.2019kubectl cp
в pod, похоже, вообще не работает сAL2_x86_64_GPU
типом AMI. Прекрасно работает сAL2_x86_64
. Эта проблема, вероятно, также связана с github.com/NVIDIA/nvidia-docker/issues/1091 - person Thomas Havlik   schedule 16.01.2020