Как удаленно создать файл в контейнере Kubernetes?

У меня есть под с именем nginx, в котором есть два контейнера с именами nginx и busybox. Чтобы создать файл внутри контейнера busybox, мне нужно сделать:

$ kubectl exec -it nginx -c busybox -- bin/sh
# echo sometext > /temp/testfile
# exit

Я хочу упростить его до однострочного, поэтому я пытаюсь:

$ kubectl exec -it nginx -c busybox -- echo sometext > /temp/testfile

Однако это дает мне эту ошибку:

bash: /temp/testfile: No such file or directory

Помещение echo sometext > /temp/testfile между двойными кавычками приводит к этой ошибке:

OCI runtime exec failed: exec failed: container_linux.go:380: starting container process caused: exec: "echo sometext > /temp/testfile": stat echo sometext > /temp/testfile: no such file or directory: unknown

Почему это не работает? Есть ли способ сделать такой однострочный?

Помните, что иногда случается, что под Kubernetes уничтожается без вашего контроля; возможно, на узле запущено слишком много модулей Pod или слишком мало, а модуль автомасштабирования кластера выводится из эксплуатации. В этих случаях все, что вы делаете с kubectl exec, будет потеряно. Хотите вместо этого добавить этот файл в образ Docker?

David Maze 09.12.2022 13:27
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
1
1
60
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Попробуй это

kubectl exec -it nginx -c busybox -- sh -c "echo sometext > /temp/testfile"

Это работает. Большое спасибо! Почему здесь требуется sh -c, а в таких вещах, как cat или ls -l, он не нужен?

CaTx 12.12.2022 08:34

Другие вопросы по теме