개요
쿠버네티스로 docker 실행 시 환경변수로 현재 노드 hostname, ip등을 주입시키고 싶을 수 있다. 이 때 Pod 생성 시 지정할 수 있는 예약 환경변수값에 대해 알아보자.
1. 컨테이너로 주입가능한 예약 환경변수값
아래와 같은것들이 가능하다.
- spec.nodeName – the node’s name
- status.hostIP – the node’s IP
- metadata.name – the pod’s name
- metadata.namespace – the pod’s namespace
- status.podIP – the pod’s IP address
- spec.serviceAccountName – the pod’s service account name
- metadata.uid – the pod’s UID
- metadata.labels[‘
‘] – the value of the pod’s label (for example, – metadata.labels[‘mylabel’]); available in Kubernetes 1.9+ - metadata.annotations[‘
‘] – the value of the pod’s annotation (for example, metadata.annotations[‘myannotation’]); available in Kubernetes 1.9+
2. 명세 문법
env
로 fieldPath
값을 지정한 것을 확인 할 수 있다.
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: aurochsapp
labels:
env: test
spec:
replicas: 2
template:
metadata:
labels:
env: test
spec:
containers:
- name: nginx
image: 원하는이미지
env:
- name: ENV_NODE_NAME
valueFrom:
fieldRef:
fieldPath: spec.nodeName
resources:
requests:
memory: "64Mi"
cpu: "250m"
ephemeral-storage: "2Gi"
limits:
memory: "128Mi"
cpu: "500m"
ephemeral-storage: "4Gi"
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: aurochsapp
operator: In
values:
- large