spec.containers[].env
apiVersion: v1
kind: Pod
metadata:
name: sample-env
labels:
app: sample-app
spec:
containers:
- name: nginx-container
image: nginx:1.16
env:
- name: MAX_CONNECTION
value: "100"
- name: TZ
value: Asia/Seoul
fieldRef를 사용해 어떤 노드에서 파드가 기동하고 있는지와 파드의 IP, 기동 시간 등에 대한 정보를 확인할 수 있다.
kubectl get pods sample-env -o yaml
쿠버네티스 노드 이름을 K8S_NODE 변수로 등록하는 매니페스트 예시
apiVersion: v1
kind: Pod
metadata:
name: sample-env-pod
labels:
app: sample-app
spec:
containers:
- name: nginx-container
image: nginx:1.16
env:
- name: K8S_NODE
valueFrom:
fieldRef:
fieldPath: spec.nodeName
kubectl exec -it sample-env-pod --env | grep K8S_NODE
CPU 리소스의 최솟값과 최댓값 지정
apiVersion: v1
kind: Pod
metadata:
name: sample-env-container
labels:
app: sample-app
spec:
containers:
- name: nginx-container
image: nginx:1.16
env:
- name: CPU_REQUESTS
valueFrom:
resourceFieldRef:
containerName: nginx-container
resource: requests.cpu
- name: CPU_LIMITS
valueFrom:
resourceFieldRef:
containerName: nginx-container
resource: limits.cpu
kubectl exec -it sample-env-container -- env | grep CPU
apiVersion: v1
kind: Pod
metadata:
name: sample-env-fail
labels:
app: sample-app
spec:
contaienrs:
- name: nginx-container
image: nginx:1.16
command: ["echo"]
args: ["$(TESTENV)", "$(K8S_NODE)"]
# ["${TESTENV}", "${HOSTNAME}"] {} 태그 사용 시 환경 변수 사용 불가(이스케이프 처리)
env:
- name: TESTENV
value: "100"
- name: K8S_NODE
valueFrom:
fieldRef:
fieldPath: spec.nodeName