🌱 kubectl run에서 --env 옵션으로 환경변수 설정하기
2026. 2. 21. 15:51ㆍk8s
다음 명령을 보자.
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 사용이 더 적절하다.
'k8s' 카테고리의 다른 글
| 🏷 Kubernetes 라벨(Label)로 조회하고 일괄 수정하기 (0) | 2026.02.21 |
|---|---|
| 🏷 Kubernetes 라벨(Label)로 Pod 조회하기 완전 정리 (0) | 2026.02.21 |
| 🔎 kubectl run에서 -it는 로그를 보기 위해 필요한가? (0) | 2026.02.21 |
| 📜 kubectl logs --previous 완전 정리 (컨테이너 재시작 로그 확인 방법) (0) | 2026.02.21 |
| 🔍 kubectl run에서 sh가 필요할 때와 필요 없는 이유 (0) | 2026.02.21 |