Получите доступ к оболочке модуля Kubernetes

Чтобы остановить подстановку оболочки, можно заключить расширение переменной в кавычки. (Это также останавливает разбиение слов, что обычно также является тем, что вам нужно ). Это, конечно, не мешает самой команде обрабатывать 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.

0
18.10.2019, 11:09
1 ответ

Из-за абстракции вK8sразные сервисы могут работать на разных модулях. Поэтому, прежде чем вы сможете подключиться к чему-либо,вам нужно собрать дополнительную информацию:

Шаг 1 :Список модулей

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

Шаг 2 :Используйте kubectl, чтобы получить оболочку на желаемой капсуле

Модуль, на который я хочу установить оболочку, называется « мой -релиз -wordpress ». ОДНАКО:Хотя мы видим IP-адреса в выводе kubectl get pods,SSHбудет НЕ работать. Итак, мы собираемся получить оболочку с помощью команды kubectl, указав имя модуля, к которому мы хотим получить доступ :

.
kubectl exec -it my-release-wordpress -- /bin/bash
0
28.01.2020, 03:11

Теги

Похожие вопросы