如何执行K8s吊舱,但从外部使用bash_配置文件?
我的如何执行K8s吊舱,但从外部使用bash_配置文件?,bash,kubernetes,Bash,Kubernetes,我的.bash\u档案有许多我经常使用的别名。不过,当我进入库伯内特斯吊舱时,这些别名就变得(可以理解)不可访问了。当我说“执行进入”时,我的意思是: kubectl exec-it[pod name]-c[container name]bash 有没有办法让我在执行后仍然可以使用bash配置文件?你说这些只是别名。在这种情况下,并且只有在这种情况下,您才能使用--从env文件在ConfigMap中保存.code>bash\u配置文件 kubectl create configmap bash-
.bash\u档案
有许多我经常使用的别名。不过,当我进入库伯内特斯吊舱时,这些别名就变得(可以理解)不可访问了。当我说“执行进入”时,我的意思是:
kubectl exec-it[pod name]-c[container name]bash
有没有办法让我在执行后仍然可以使用bash配置文件?你说这些只是别名。在这种情况下,并且只有在这种情况下,您才能使用
--从env文件在ConfigMap
中保存.code>bash\u配置文件
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
或:
@提到的想法也应该有效
如果您需要kubectl cp.bash\u profile:/root/
如果您需要将其放入特定的容器中,您可以添加选项-c,--container='':容器名称。如果省略,将选择pod中的第一个容器
我的第一个想法是使用kubectl copy将本地~/.bashrc文件首先复制到pod。可能需要特别注意不要删除远程~/.bashrc的当前内容。将-l选项传递给load/etc/profile如何?
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