Как я могу выполнить в модуль K8s, но использовать bash_profile извне? - PullRequest
0 голосов
/ 24 октября 2019

Мой .bash_profile имеет много псевдонимов, которые я регулярно использую. Однако, когда я исполняюсь в капсуле kubernetes, эти псевдонимы становятся (понятно) недоступными. И когда я говорю «exec into», я имею в виду:

kubectl exec -it [pod-name] -c [container-name] bash

Есть ли способ сделать так, чтобы я все еще мог использовать свой профиль bash после запуска exec'in?

1 Ответ

1 голос
/ 25 октября 2019

Вы сказали, что это только псевдонимы. В этом случае и только в этом случае вы можете сохранить. bash_profile в ConfigMap, используя --from-env-file

kubectl create configmap bash-profile --from-env-file=.bash_profile

Имейте в виду, что каждая строка в файле env должна быть в VAR =Формат VAL.

Строки с # в начале и пустые строки будут игнорироваться.

Затем можно загрузить все пары ключ-значение в качестве переменных среды контейнера:

apiVersion: v1
kind: Pod
metadata:
  name: bash-test-pod
spec:
  containers:
    - name: test-container
      image: k8s.gcr.io/busybox
      command: [ "/bin/sh", "-c", "env" ]
      envFrom:
      - configMapRef:
          name: bash-profile
  restartPolicy: Never

Или Заполнение тома данными, хранящимися в ConfigMap :

apiVersion: v1
kind: Pod
metadata:
  name: bash-test-pod
spec:
  containers:
    - name: test-container
      image: k8s.gcr.io/busybox
      command: [ "/bin/sh", "-c", "ls /etc/config/" ]
      volumeMounts:
      - name: config-volume
        mountPath: /root/.bash_profile
  volumes:
    - name: config-volume
      configMap:
        # Provide the name of the ConfigMap containing the files you want
        # to add to the container
        name: bash-profile
  restartPolicy: Never

Идея, упомянутая @ Mark , также должна работать.

Если вы делаете kubectl cp .bash_profile <pod_name>:/root/, если вам нужно поместить его в определенные контейнеры, вы можете добавить опцию -c, --container='': Container name. If omitted, the first container in the pod will be chosen.

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