환경 변수
- 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
# 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 |