쿠버네티스의 가장 기본적인 실행 단위이다. 컨테이너를 포함하고 있는 가장 작은 배포 단위이다.
po, pod, pods
Pod는 kubectl run명령어를 이용해서 간단하게 배포할 수 있다.
단 컨테이너가 하나인 경우만 사용 가능하다.
kubectl run [POD_NAME] --image [IMAGE]
아래의 yaml파일을 이용해 kubectl apply -f 명령어로 배포할 수 있다.
name : “”, value: “”쌍의 리스트 형태로 적는다.apiVersion: v1
kind: Pod
metadata:
name: pod-1
labels:
type: web
spec:
containers:
- name: container1
image: ksp7331/sp-app:1.1
ports:
- containerPort: 8080
env:
- name: NAME
value: "value"
- name: container2
image: ksp7331/sp-app:1.1
ports:
- containerPort: 8080
Pod의 생명주기는 다음과 같다.
아래의 Probe를 이용해서 컨테이너의 상태를 진단하고 재시작 정책을 수행할 수 있다.
apiVersion: v1
kind: Pod
metadata:
name: pod-1
labels:
type: web
spec:
containers:
- name: container1
image: ksp7331/sp-app:1.1
livenessProbe:
httpGet:
path: /
port: 8080
initialDelaySeconds: 5
timeoutSeconds: 2 # Default 1
periodSeconds: 5 # Defaults 10
failureThreshold: 1 # Defaults 3
readinessProbe:
httpGet:
path: /
ports:
- containerPort: 8080
파드(Pod)의 복제본을 관리하고 유지하는 컨트롤러(Controller)이다. ReplicaSet은 미리 정해진 규격의 파드 인스턴스를 특정 수만큼 유지하도록 한다.
rs, replicaset, replicasets
apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: example-replicaset
spec:
replicas: 3
selector:
matchLabels:
type: web
template:
metadata:
labels:
type: web
spec:
containers:
- name: container1
image: ksp7331/sp-app:1.1
애플리케이션의 배포, 업데이트, 롤백 등을 관리하는 리소스이다. ReplicaSet을 이용해서 Pod를 관리한다.
deploy, deployment, deployments