Run The Bridge

kubernetes 환경변수 N개 이상 Pod에 적용하는 방법 본문

Cloud/k8s

kubernetes 환경변수 N개 이상 Pod에 적용하는 방법

anfrhrl5555 2023. 6. 28. 15:49
728x90
반응형

kubernetes를 사용하다 보면 환경변수를 적용하게 되는데 ConfigMap 또는 Secret 을 생성해서 env에 key, value를 적용하는 방식인 ConfigMapRef와 secretKeyRef를 선언하는 방식을 많이 사용하고 있다.

 

해당 방식은 1:1 대응이기 때문에 N개 이상의 환경변수를 적용하기 위해서는 yaml에 정의해야 할 값이 늘어난다는 단점이 있다.

 

그래서 우리는 envFrom을 통해 N개 이상의 환경변수를 Pod내에 Mount 해보려고 한다.

 

1. ConfigMap 생성

아래와 같이 꽃, 동물, 과일에 대한 key를 넣고 key에 맞는 value를 선언해주었다.

apiVersion: v1
data:
  FLOWER: "ROSE"
  ANIMAL: "DOG"
  FRUITS: "APPLE"
kind: ConfigMap
metadata:
  name: example-configmap
  namespace: [NAMESPACE]

 

2. 예제 deploy 생성

해당 yaml에서 중요한 부분은 spec.containers.envFrom 부분이다. envFrom으로 configMapRef을 선언하고 생성한 ConfigMap의 이름을 넣어준다. ConfigMapKeyRef는 key:value 쌍이 1개지만, envFrom은 통으로 받아들인다.

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: env-busybox
  name: env-busybox
  namespace: [NAMESPACE]
spec:
  replicas: 1
  selector:
    matchLabels:
      app: env-busybox
  template:
    metadata:
      labels:
        app: env-busybox
    spec:
      containers:
      - image: busybox:latest
        name: busybox
        command:
        - sleep
        - "3600"
        envFrom:
          - configMapRef:
              name: example-configmap

 

3. 확인

정상적으로 N개 이상의 환경변수가 mount 된 것을 알 수 있다.

728x90
반응형
Comments