Pod에 환경변수 설정
환경변수 구성 패턴
cat pod-nginx-env.yaml
apiVersion: v1
kind: Pod
metadata:
name: nginx-pod-env
spec:
containers:
- name: nginx-container
image: nginx:1.14
ports:
- containerPort: 80
protocol: TCP
env:
- name: MYVAR
value: "testvalue"
#pod 실행
kubectl create -f pod-nginx-env.yaml
#pod안으로 들어가기
kubectl exec nginx-pod-env -it -- /bin/bash
#env명령어로 환경변수 확인해보면, MYVAR와 값이 들어있는것을 확인 할 수 있다
root@nginx-pod-env:/# env
HOSTNAME=nginx-pod-env
NJS_VERSION=1.14.2.0.2.6-1~stretch
NGINX_VERSION=1.14.2-1~stretch
KUBERNETES_PORT_443_TCP_PROTO=tcp
KUBERNETES_PORT_443_TCP_ADDR=10.96.0.1
MYVAR=testvalue #<--------------------- 추가된 것을 확인!
KUBERNETES_PORT=tcp://10.96.0.1:443
PWD=/
HOME=/root
KUBERNETES_SERVICE_PORT_HTTPS=443
KUBERNETES_PORT_443_TCP_PORT=443
KUBERNETES_PORT_443_TCP=tcp://10.96.0.1:443
TERM=xterm
SHLVL=1
KUBERNETES_SERVICE_PORT=443
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
KUBERNETES_SERVICE_HOST=10.96.0.1
_=/usr/bin/env
root@nginx-pod-env:/#
multi-container Pod
- Sidecar
- 웹서버 컨테이너에서 만든 로그를, 가져다가 분석하는 컨테이너
- Adapter
- 외부의 정보를 가져오는 어댑터 컨테이너, 그 컨테이너가 웹서버 컨테이너에게 정보를 전달
- Ambassador
- 웹서버 컨테이너가 만든 정보를, 외부에 저장하기 위해 송출하는 컨테이너
Sidecar Container 구성
- 특정 파드의 로그를 분석하거나 추적하기 위해 곁들어서 추가하는 컨테이너
apiVersion: v1
kind: Pod
metadata:
name: counter
spec:
containers:
- name: count
image: busybox:1.28
args:
- /bin/sh
- -c
- >
i=0;
while true;
do
echo "$i: $(date)" >> /var/log/1.log;
i=$((i+1));
sleep 1;
done
volumeMounts:
- name: varlog
mountPath: /var/log
- name: count-log-1
image: busybox:1.28
args: [/bin/sh, -c, 'tail -n+1 -F /var/log/1.log']
volumeMounts:
- name: varlog
mountPath: /var/log
volumes:
- name: varlog
emptyDir: {}