본문 바로가기

Kubernetes

[Kubernetes] Pod 환경변수 설정과 실행 패턴

반응형

환경변수

 - 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/

반응형