configMap의 파일 이름이 포드에 env로 표시됩니다.

Nov 16 2020

minikube 클러스터 내에 configmap myconfig 를 만드는 데 사용한 config.txt라는 파일이 있습니다.

그러나 포드에서 myconfig 를 사용 하면 config.txt 파일의 이름도 ENV의 일부로 표시됩니다.

어떻게 수정할 수 있습니까?

> cat config.txt
var3=val3
var4=val4

> kubectl create cm myconfig --from-file=config.txt
configmap/myconfig created

> kubectl describe cm myconfig
Name:         myconfig
Namespace:    default
Labels:       <none>
Annotations:  <none>

Data
====
config.txt:
----
var3=val3
var4=val4

Events:  <none>

포드 정의

> cat nginx.yml 
apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: null
  labels:
    run: nginx
  name: nginx
spec:
  containers:
  - image: nginx
    name: nginx
    envFrom:
      - configMapRef:
          name: myconfig
    resources: {}
  dnsPolicy: ClusterFirst
  restartPolicy: Never
status: {}

> kubectl create -f nginx.yml
pod/nginx created

포드 EVN 검사, 알 라인 으로 config.txt = VAR3 = val3가 가 될 것으로 예상 단지 VAR3 = val3

> kubectl exec -it nginx -- env
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=nginx
TERM=xterm
config.txt=var3=val3
var4=val4

KUBERNETES_PORT_443_TCP=tcp://10.96.0.1:443
KUBERNETES_PORT_443_TCP_PROTO=tcp
KUBERNETES_PORT_443_TCP_PORT=443
KUBERNETES_PORT_443_TCP_ADDR=10.96.0.1
KUBERNETES_SERVICE_HOST=10.96.0.1
KUBERNETES_SERVICE_PORT=443
KUBERNETES_SERVICE_PORT_HTTPS=443
KUBERNETES_PORT=tcp://10.96.0.1:443
NGINX_VERSION=1.19.4
NJS_VERSION=0.4.4
PKG_RELEASE=1~buster
HOME=/root

답변

3 KunLi Nov 17 2020 at 10:44

다음과 같이 configmap을 생성하면 작업이 수행됩니다.

kubectl create cm myconfig --from-env-file=config.txt