환경변수
- Pod 내의 컨테이너가 실행될 때 필요로 하는 변수
- 컨테이너 제작 시 미리 정의
NGINX Dockerfile의 예
ENV NGINX_VERSION 1.19.2
ENV NJS_VERSION 0.4.3
- 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"
환경변수 "MYVAR=testvalue" 적용 확인
# kubectl create -f pod-nginx-env.yaml
# kubectl exec nginx-pod-env -it -- /bin/bash
@nginx-pod-env:/# env
MYDB_SERVICE_PORT=80
MYSERVICE_PORT_80_TCP_PROTO=tcp
MYSERVICE_SERVICE_HOST=10.97.82.81
HOSTNAME=nginx-pod-env
MYSERVICE_SERVICE_PORT=80
NJS_VERSION=1.14.2.0.2.6-1~stretch
MYDB_PORT=tcp://10.104.64.225:80
NGINX_VERSION=1.14.2-1~stretch
KUBERNETES_PORT_443_TCP_PROTO=tcp
KUBERNETES_PORT_443_TCP_ADDR=10.96.0.1
MYDB_SERVICE_HOST=10.104.64.225
MYSERVICE_PORT_80_TCP=tcp://10.97.82.81:80
MYVAR=testvalue
KUBERNETES_PORT=tcp://10.96.0.1:443
PWD=/
HOME=/root
KUBERNETES_SERVICE_PORT_HTTPS=443
MYDB_PORT_80_TCP_PORT=80
KUBERNETES_PORT_443_TCP_PORT=443
MYSERVICE_PORT_80_TCP_PORT=80
MYSERVICE_PORT=tcp://10.97.82.81:80
KUBERNETES_PORT_443_TCP=tcp://10.96.0.1:443
TERM=xterm
MYSERVICE_PORT_80_TCP_ADDR=10.97.82.81
SHLVL=1
KUBERNETES_SERVICE_PORT=443
MYDB_PORT_80_TCP_PROTO=tcp
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
KUBERNETES_SERVICE_HOST=10.96.0.1
MYDB_PORT_80_TCP=tcp://10.104.64.225:80
MYDB_PORT_80_TCP_ADDR=10.104.64.225
_=/usr/bin/env
Pod 실행 패턴
- Pod를 구성하고 실행하는 패턴
- multi-container Pod
1. Sidecar
- 기존 파드의 기능을 향상하기 위해 파드의 파일시스템을 공유하는 형태의 보조 컨테이너를 사이드카 컨테이너
2. Adapter
- 어댑터 컨테이너는 주로 파드에 탑재된 특정 애플리케이션의 출력물 규격을 필요에 맞게 다듬는 용도
3. Ambassador
- 앰버서더 컨테이너는 파드 외부의 서비스에 대한 엑세스를 간소화하는 특수한 유형의 컨테이너
[참고]
- https://www.youtube.com/watch?v=Uc-VnK19T7w&list=PLApuRlvrZKohaBHvXAOhUD-RxD0uQ3z0c&index=16
- https://matthewpalmer.net/kubernetes-app-developer/articles/multi-container-pod-design-patterns.html
- https://seongjin.me/kubernetes-multi-container-pod-design-patterns/
'Kubernetes' 카테고리의 다른 글
[Kubernetes] ReplicaSet(ReplicationController와의 차이점은?) 쿠버네티스 pod 개수 보장 (0) | 2022.12.05 |
---|---|
[Kubernetes] ReplicationController란? (0) | 2022.12.05 |
[Kubernetes] Pod에 Resource 할당하기 (0) | 2022.12.02 |
[Kubernetes] static Pod 만들기 (0) | 2022.11.30 |
[Kubernetes] Kubernetes 1.2 version 부터 Docker 사용 중단 (0) | 2022.11.30 |