Minikube аварийно завершает работу в Pod, используя Alpine Linux - PullRequest
0 голосов
/ 04 июня 2018

Каждый раз, когда я пытаюсь выполнить команду pod через панель мониторинга minikube, на которой запущен alpine linux, происходит сбой и закрывается соединение со следующей ошибкой

rpc error: code = 2 desc = oci runtime error: exec failed: container_linux.go:262: starting container process caused "exec: \"bash\": executable file not found in $PATH"

CONNECTION CLOSED

Вывод команды «kubectl version» выглядит следующим образом:

Client Version: version.Info{Major:"1", Minor:"8", 
GitVersion:"v1.8.0", GitCommit:"6e937839ac04a38cac63e6a7a306c5d035fe7b0a", GitTreeState:"clean", BuildDate:"2017-09-28T22:57:57Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"8", 
GitVersion:"v1.8.0", 
GitCommit:"0b9efaeb34a2fc51ff8e4d34ad9bc6375459c4a4", 
GitTreeState:"clean", BuildDate:"2017-11-29T22:43:34Z", GoVersion:"go1.9.1", Compiler:"gc", Platform:"linux/amd64"}

Кто-нибудь может посоветовать, пожалуйста?Я могу нормально запускать другие контейнеры, если они имеют BASH, а не ASH.

Большое спасибо

Ответы [ 2 ]

0 голосов
/ 04 июня 2018

Каждый раз, когда я пытаюсь выполнить команду в модуле

Вы не указали команду, которую вы указали для kubectl exec, но исходя из вашего вопроса, я собираюсь предположить, что это kubectl exec -it $pod -- bash

Проблема, как говорится в сообщении об ошибке, состоит в том, что используемый вами образ контейнера не обеспечивает bash.Многие, многие «тонкие» изображения не поставляются с bash, потому что их зависимость принесет с собой.

Если вам нужна команда, которая работает со всеми изображениями, используйте sh, так как 90% времени, если присутствует bash, он символически связан с /bin/sh, а в других случаях (как вы упомянули с ash или dash или любым другим), тогда использование sh будет по-прежнему работать и позволяет вам определить, нужно ли вам настроить команду для конкретного запроса другой оболочки.

Таким образом, kubectl exec -it $pod -- sh - это команда, которую я ожидал бы работать

0 голосов
/ 04 июня 2018

Обычно Alpine linux не содержит bash.Вы пытались выполнить в контейнер с одним из следующих?

/bin/ash

/bin/sh

ash

sh

, например, kubectl exec -it my-alpine-shell-293fj2fk-fifni2 -- sh должен выполнить работу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...