Успешный запуск будет зависеть от образа, который вы используете для kube
. Но в общих чертах echo
- это встроенная команда Bourne shell .
С помощью этой команды:
$ kubectl exec kube -- echo $KUBERNETES_SERVICE_HOST
Вы не создаете экземпляр среды Bourne Shell, и в контейнере нет исполняемого файла echo
. Оказывается, что kubectl
в основном запускает echo $KUBERNETES_SERVICE_HOST
на вашем клиенте! Вы можете попробовать запустить, например:
$ kubectl exec kube -- echo $PWD
Вы увидите, что это домашний каталог вашего клиента.
Тогда как с помощью этой команды:
$ kubectl exec kube -- sh -c 'echo $KUBERNETES_SERVICE_HOST'
В вашей среде есть исполняемый файл sh
, и это Bourne Shell, который понимает встроенную команду echo
с заданной средой Kubernetes в контейнере по умолчанию вашего Pod.
Надеюсь, это поможет.