[CKA] 애플리케이션 환경 변수

애플리케이션 환경 변수의 핵심 개념과 구성 방법, 실습 풀이를 정리합니다.

Kubernetes Pod에 환경 변수를 전달하는 방법은 여러가지가 존재합니다.

직접 전달

apiVersion: v1
kind: Pod
metadata:
  name: env-demo-pod
spec:
  containers:
  - name: env-demo-container
    image: nginx
    env:
    - name: DEMO_GREETING
      value: "Hello from the environment"
    - name: DEMO_FAREWELL
      value: "Such a sweet sorrow"

ConfigMap

먼저 ConfigMap을 생성합니다.

apiVersion: v1
kind: ConfigMap
metadata:
  name: demo-config
data:
  DEMO_GREETING: "Hello from ConfigMap"
  DEMO_FAREWELL: "Goodbye from ConfigMap"

Pod에서 ConfigMap을 참조합니다.

apiVersion: v1
kind: Pod
metadata:
  name: env-demo-pod
spec:
  containers:
  - name: env-demo-container
    image: nginx
    envFrom:
    - configMapRef:
        name: demo-config

Secrets

Secret을 생성합니다.

apiVersion: v1
kind: Secret
metadata:
  name: demo-secret
type: Opaque
data:
  USERNAME: dXNlcm5hbWU=  # base64 encoded "username"
  PASSWORD: cGFzc3dvcmQ=  # base64 encoded "password"s

Secret을 참조합니다.

apiVersion: v1
kind: Pod
metadata:
  name: env-demo-pod
spec:
  containers:
  - name: env-demo-container
    image: nginx
    env:
    - name: SECRET_USERNAME
      valueFrom:
        secretKeyRef:
          name: demo-secret
          key: USERNAME
    - name: SECRET_PASSWORD
      valueFrom:
        secretKeyRef:
          name: demo-secret
          key: PASSWORD