🌱 kubectl run에서 --env 옵션으로 환경변수 설정하기

2026. 2. 21. 15:51k8s

다음 명령을 보자.

kubectl run nginx --image=nginx --restart=Never --env=var1=val1

이 명령은:

nginx 이미지를 사용하는 Pod를 생성하면서
컨테이너 내부에 var1=val1 환경변수를 설정한다.


📌 옵션별 의미

옵션 의미
--image=nginx nginx 이미지 사용
--restart=Never 단일 Pod 생성
--env=var1=val1 환경변수 var1에 val1 설정

🔎 실제로 어떻게 적용될까?

위 명령은 내부적으로 이런 Pod spec을 만든다.

apiVersion: v1
kind: Pod
metadata:
  name: nginx
spec:
  containers:
  - name: nginx
    image: nginx
    env:
    - name: var1
      value: val1

즉,

env:
  - name: var1
    value: val1

이 자동으로 추가된다.


🔍 환경변수 확인 방법

생성된 Pod 내부에서 환경변수를 확인하려면:

kubectl exec -it nginx -- printenv

또는 특정 변수만 확인:

kubectl exec nginx -- printenv var1

출력:

val1

📦 여러 개 환경변수 설정하기

kubectl run nginx \
  --image=nginx \
  --restart=Never \
  --env=var1=val1 \
  --env=var2=val2

→ 여러 개 설정 가능


🔥 실제 운영에서의 활용 예

환경변수는 보통 이런 용도로 사용된다:

  • DB_HOST
  • DB_PORT
  • REDIS_URL
  • SPRING_PROFILES_ACTIVE
  • NODE_ENV

예:

kubectl run app \
  --image=myapp \
  --restart=Never \
  --env=SPRING_PROFILES_ACTIVE=prod

⚠️ 중요한 점

--env로 설정한 값은:

  • 단순 문자열
  • 민감 정보(비밀번호 등)는 직접 넣지 않는 것이 좋음

비밀번호 같은 경우는:

  • Secret 사용
  • ConfigMap 사용

이 권장된다.


📌 ConfigMap / Secret과의 차이

방식 용도
--env 간단한 값
ConfigMap 설정값 관리
Secret 민감 정보

운영 환경에서는 보통 ConfigMap이나 Secret을 사용한다.


🎯 한 줄 정리

--env=KEY=VALUE
Pod 생성 시 컨테이너에 환경변수를 주입하는 옵션이다.

테스트용 Pod에는 편리하지만,
운영 환경에서는 ConfigMap / Secret 사용이 더 적절하다.