Pod
개념
쿠버네티스에서 실제로 컨테이너를 묶어서 관리하는 단위
설정
apiVersion: v1
kind: Pod
metadata:
name: simple-pod (Pod 이름)
labels:
app: simple-pod (오브젝트를 식별하는 레이블)
spec:
containers:
- name: simple-pod (컨테이너 이름)
image: ~~~ (컨네이너에서 사용할 이미지)
ports:
- containerPort: 8080
Pod 생명주기
Pending -> Running
Successed
Failed
Unknown
컨테이너 진단
-
ivenessProbe
컨테이너가 실행됐는지 확인
실패시 컨테이너를 종료시키고 재시작 정책에 따라서 재시작
-
readinessProbe
컨테이너 실행된 후 실제로 서비스 요청에 응답할 수 있는지 진단
컨테이너가 실제로 트래픽을 받을 준비가 되었음을 확인할 수 있어 유용함
초기화 컨테이너(Init Container)
-
앱 컨테이너가 실행 되기 전 Pod 를 초기화 한다.
-
여러개 구성 가능하며 실행 순서는 템플릿에 명시한 순서를 따른다.
-
실패시 성공할때 까지 재시작한다.
-
readinessProbe 를 지원하지 않는다 - Pod 가 준비되기 전에 실행후 종료되기 때문
-
설정
.spec.initContainers[] 의 하위 필드
apiVersion: v1 kind: Pod metadata: name: simple-pod labels: app: simple-pod spec: initContainers: - name: image: command
파드 인프라 컨테이너
pause 컨테이너
- Pod Infrastructure Container (파드 인프라 컨테이너)
- 모든 Pod 에서 항상 실행된다
- 다른 컨테이너의 부모 역할을 한다
- Pod 안 다른 컨테이너들은 pause 컨테이너가 제공하는 네트워크를 사용
- pause 컨테이너 재시작시 Pod 안 모든 컨테이너 재시작됨
c34dff11289b arisu1000/simple-container-app "./simple-container-…" 41 minutes ago Up 41 minutes k8s_simple-pod_simple-pod_default_112e5cb1-101b-4cb6-a591-c83c6171cce5_0 67c790777792 k8s.gcr.io/pause:3.2 "/pause" 41 minutes ago Up 41 minutes k8s_POD_simple-pod_default_112e5cb1-101b-4cb6-a591-c83c6171cce5_0
스태틱 Pod
- kube-apiserver 를 통하지 않고 kubelet 이 직접 실행하는 Pod
- 조회는 가능하지만 명령 실행은 불가능(직접 edit 등 불가능)
- 시스템 파드 실행용도로 많이 사용
- 스태틱 Pod 경로 : /etc/kubernetes/manifests
자원 할당
-
requests 최소자원, limits 최대자원
.spec.containers[].resources.limits.cpu
.spec.containers[].resources.limits.memory
.spec.containers[].resources.requests.cpu
.spec.containers[].resources.requests.memory
-
requests 만 설정했을 경우 해당 값보다 더 많이 사용할 수 있기 때문에 limits 설정을 해야 Out of Memory 를 피할수 있다.
-
Memory : Exa, Peta, Tera, Giga, Mega, Kilo (맨 첫글자 사용)
-
CPU : 소수점일 경우 1개 코어에 해당하는 연산능력을 의미( 0.1 일경우 1코어의 10%만 활용)
Pod 의 환경 변수
.spec.conainers[].env[] 하위 필드
- name
- value
- valueFrom
- fieldRef
- fieldPath
- resourceFieldRef
- containerName
- resource
출처 : 쿠버네티스 입문 - 90가지 예제로 배우는 컨테이너 관리자 자동화 표준 (동양북스)
'Development > Docker&Kubernetes' 카테고리의 다른 글
쿠버네티스 입문 - 7장 서비스 (0) | 2020.12.30 |
---|---|
쿠버네티스 입문 - 6장 컨트롤러 (0) | 2020.12.30 |
[K8S] affinity 를 이용해서 노드 중복 피하기. (0) | 2020.11.20 |
[K8S] PV & PVC (0) | 2020.10.16 |
[K8S] Kubernetes 설치시 오류 조치 (2) | 2020.10.13 |