Pod와 Replicaset에 대한 관리를 제공하는 단위
- 관리: Self-healing, Scaling, Rollout(무중단 업데이트)과 같은 기능
apiVersion: apps/v1 # kubernetes resouce의 API Version
kind: Deployment # kubernetes resource name
metadata: # 메타데이터 : name, namespace, labels, annotations 등
name: nginx-deployment
labels:
app: nginx
spec: # 메인파트 : resource의 desired state 를 명시
replicas: 3 # 동일한 template의 pod를 3개 복제본으로 생성
selector:
matchLabels:
app: nginx
template: # Pod의 템플릿을 의미
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx # container name
image: nginx:1.14.2 # container image
ports:
- containerPort: 80 # container 내부 포트
$ kubectl apply -f deployment.yaml