본문 바로가기

Container/Kubernetes

[K8S] Pod 환경 변수 설정

환경 변수

  • Pod 내의 컨테이너가 실행될 때 필요로 하는 변수
  • 컨테이너 제작 시 미리 정의
    • NGINX Dockerfile 예
ENV NGINX_VERSION 1.19.2
ENV NJS_VERSION      0.4.3
  • Pod 실행 시 미리 정의된 컨테이너 환경변수를 변경할 수 있다.

# kubeconfig 환경 변수

kubectl은 기본적으로 $HOME/.kube/config 파일에서 클러스터, 인증, 컨텍스트 정보로 읽어 들인다.

✔️ 이러한 클러스터 구성 정보 =>  kubeconfig

 

root@master:~# kubectl api-resources
NAME                              SHORTNAMES   APIVERSION                        NAMESPACED   KIND
bindings                                       v1                                true         Binding
componentstatuses                 cs           v1                                false        ComponentStatus
configmaps                        cm           v1                                true         ConfigMap
endpoints                         ep           v1                                true         Endpoints
events                            ev           v1                                true         Event
limitranges                       limits       v1                                true         LimitRange
namespaces                        ns           v1                                false        Namespace
nodes                             no           v1                                false        Node

 

SHORTNAMES: 자원의 단축 이름

APIGROUP: 함께 노출되는 자원 집합

NAMESPACED: 특정 네임스페이스에 속하는 자원인지

KIND: 객체 스키마

 

# 실습

# 환경변수 구현 테스트
[master ~]$ cat pod-nginx-resources.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: nginx-pod-resources
spec:
  containers:
  - name: nginx-container
    image: nginx:1.14
    ports:
    - containerPort: 80
      protocol: TCP
    resources:
      requests: 
        memory: 500Mi
        cpu: 200m
      limits:
        memory: 1Gi
        cpu: 1
        
        
[master ~]$ kubectl create -f pod-nginx-resources.yaml 
pod/nginx-pod-env created

# Interactive하게 해당 Pod에 bash셸로 접속
[master ~]$ kubectl exec nginx-pod-env -it -- /bin/bash
root@nginx-pod-env:/#
root@nginx-pod-env:/# env | grep MYVAR
MYVAR=testvalue

 

# Multi container Pod 실행 패턴

https://matthewpalmer.net/kubernetes-app-developer/articles/multi-container-pod-design-patterns.html

 

Multi-Container Pod Design Patterns - CKAD Course

Multi-Container Pod Design Patterns in Kubernetes Multi-container pods are extremely useful for specific purposes in Kubernetes. While it’s not always necessary to combine multiple containers into a single pod, knowing the right patterns to adopt creates

matthewpalmer.net

 

# Sidecar : 로그를 만들어야지만 (가공해서) 실행할 수 있는 형태의 Pod

- 단독으로 혼자서는 움직일 수 없는 Pod 형태

 

# Adapter Pod : 외부에 있는 monitoring 서비스를 어댑터가 받아와서 webserver에게 전달해준다.

- App container는 UI를 제공해주는 컨테이너.

- 실제 데이터를 제공해주는 건 Adaptor container.

 

# Ambassador : 고객들이 접속하면서 데이터가 만들어지고, 외부로 송출해준다.

 

 

반응형

'Container > Kubernetes' 카테고리의 다른 글

[K8S] ReplicaSet  (0) 2024.02.21
[K8S] ReplicationController  (0) 2024.02.19
[K8S] Pod Resource 할당  (0) 2024.02.19
[K8S] pause container / Static container  (0) 2024.02.19
[K8S] init container  (0) 2024.02.18