Назад | Перейти на главную страницу

«Не удалось создать консольный сокет runc» при вызове kubectl exec

У меня в подвале стоит сервер Ubuntu. MicroK8S, устанавливается через Snap. Я пытаюсь создать простой модуль, используя kubectl run который я могу запустить в целях отладки. Но я продолжаю терпеть неудачу.

Сначала я попробовал эту команду:

kubectl run -it --rm --restart=Never busybox --image=busybox -- /bin/ash

Но каждый раз, когда я пытаюсь запустить это, я получаю такую ​​ошибку:

pod "busybox deleted"
pod default/busybox terminated (ContainerCannotRun)
failed to create OCI runtime control socket: stat /run/user/0/snap.microk8s: no such file or directory: unknown

Затем я решил попробовать запустить сначала контейнер, а затем - exec - как две отдельные команды. Удивительно, но первоначальное создание пода действительно работает, как эта команда:

kubectl run --image=busybox --restart=Never busybox --image=busybox --command -- tail -f /dev/null

Но затем, когда я пытаюсь выполнить его с помощью этой команды ...

kubectl exec -it busybox -- /bin/ash

... Я получаю эту ошибку:

failed to create runc console socket: stat /run/user/0/snap.microk8s: no such file or directory: unknown
command terminated with exit code 126

Обе ошибки проявляются только после того, как я пытаюсь подключиться к работающему модулю, и обе ошибки ссылаются на /run/user/0/snap.microk8s. Однако я не совсем уверен, что означают эти ошибки. Это проблема с моей конфигурацией? Или мне не хватает какой-то зависимости? Или жесткий диск поврежден? Или что-то совсем другое? И наконец: как я могу заставить это работать?

Вы не указали, какую версию microk8 вы используете.

Поскольку вы используете kubectl вместо microk8s.kubectl, я предполагаю, что вы создали псевдоним. Пробовал 4 последних версии microk8s 1.11 1.12 1.13 и 1.14. Похоже, эта проблема возникает только в версии 1.11. Чтобы узнать, какую версию вы используете в настоящее время, выполните

snap info microk8s

Удалить старую версию microk8s

sudo snap remove microk8s

и установите последнюю версию microk8s

sudo snap install microk8s --classic --channel=1.14/stable

В качестве дополнительной информации, если вам нужен модуль, который будет находиться в состоянии выполнения более длительное время, вы можете использовать изображение nginx вместо busybox.

microk8s.kubectl exec -ti nginx -- /bin/bash

Если вы новичок в microk8s, очень полезным будет этот документ