Чтобы остановить подстановку оболочки, можно заключить расширение переменной в кавычки. (Это также останавливает разбиение слов, что обычно также является тем, что вам нужно ). Это, конечно, не мешает самой команде обрабатывать glob -как шаблоны. ffmpeg
делает это для -i
, и то же самое делает, например. find -name
. На примере последнего:
$ touch a.foo b.foo c.bar
$ extension=foo
$ set -x
$ find. -name "*.$extension"
+ find. -name '*.foo'
./b.foo
./a.foo
(Строка, начинающаяся с +
, взята из set -x
и показывает команду, которую оболочка действительно выполнила.)
Хотя с помощью set -f
можно остановить подстановку, это также не помогает при разделении слов. Если бы переменная содержала пробелы, раскрытие без кавычек было бы нарушено даже с set -f
.
Из-за абстракции вK8sразные сервисы могут работать на разных модулях. Поэтому, прежде чем вы сможете подключиться к чему-либо,вам нужно собрать дополнительную информацию:
kubectl get pods -o wide
Что в этом примере показывает, что у нас есть (2 )модуля, работающих на одном узле "wordpress -w9ga":
NAME READY STATUS RESTARTS AGE IP NODE
my-release-mariadb 1/1 Running 0 2d2h 10.10.10.1 wordpress-w9ga
my-release-wordpress 1/1 Running 3 2d2h 10.10.10.2 wordpress-w9ga
kubectl
, чтобы получить оболочку на желаемой капсуле Модуль, на который я хочу установить оболочку, называется « мой -релиз -wordpress ». ОДНАКО:Хотя мы видим IP-адреса в выводе kubectl get pods
,SSHбудет НЕ работать. Итак, мы собираемся получить оболочку с помощью команды kubectl
, указав имя модуля, к которому мы хотим получить доступ :
kubectl exec -it my-release-wordpress -- /bin/bash