https://kubernetes.io/docs/concepts/workloads/controllers/deployment/
Deployment는 Pods, ReplicaSets에 대한 선언적 업데이트를 제공한다. yaml 파일로 선언적으로 pods, rs를 제어할 수 있다는 얘기.
Use Case
- ReplicaSet을 만들 Deployment 생성
- 새로운 ReplicaSet을 생성하여 이관
- 이전 Deployment로 롤백
- Scale up
- Deployment 일시 중지. ? 서비스 중지란 얘긴가?
- rollout에 문제 발생 시 Deployment의 status 이용하기
- 불필요 ReplicaSets 삭제
Creating a Deployment
3개의 nginx pods 띄우는 Deployment.
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
pod 선택은 .metadata.labels.app 이 매치되는 pod으로 한다. 물론 더 복잡한 rule도 가능.
1. 아래 명령으로 Deployment 생성
kubectl apply -f https://k8s.io/examples/controllers/nginx-deployment.yaml
2. kubectl get deployments 로 생성 확인
3. rollout 상태 확인은 kubectl rollout status deployment/nginx-deployment
Waiting for rollout to finish: 2 out of 3 new replicas have been updated...
deployment "nginx-deployment" successfully rolled out
LIST
'software engineering > k8s' 카테고리의 다른 글
Deployments - Deployment status (0) | 2021.02.10 |
---|---|
Deployments - Pausing and Resuming a Deployment (0) | 2021.02.10 |
Deployments - Scaling a Deployment (0) | 2021.02.10 |
Deployments - Rolling Back a Deployment (0) | 2021.02.10 |
Deployments - Updating a Deployment (0) | 2021.02.10 |
댓글