티스토리 뷰
반응형
Deployment
쿠버네티스(Kubernetes)의 Deployment는 애플리케이션의 상태를 선언적으로 관리하고 업데이트를 자동화하기 위한 리소스입니다. Deployment를 사용하면 애플리케이션의 복제본을 여러 개 실행할 수 있고, 이를 통해 고가용성과 로드 밸런싱을 제공합니다.
Pod 대신 사용하는 이유
- 목적 : Deployment의 주요 목적은 애플리케이션의 상태를 일관되게 유지하면서, 안정적으로 롤아웃(새 버전의 배포) 및 롤백(이전 버전으로의 복귀)을 수행하는 것입니다.
- ReplicaSet : Deployment는 내부적으로 ReplicaSet을 사용합니다. ReplicaSet은 지정된 수의 파드 복제본을 유지하기 위해 관리하는 리소스입니다. Deployment는 새로운 버전의 애플리케이션을 배포할 때 새로운 ReplicaSet을 생성하고, 이전 ReplicaSet의 파드를 새 ReplicaSet의 파드로 교체합니다.
- 롤아웃 및 버전 관리 : Deployment는 애플리케이션의 새 버전을 안정적으로 롤아웃하는 프로세스를 관리합니다. 또한, 이전 버전으로 롤백하는 기능도 제공합니다.
- 선언적 업데이트 : 사용자는 애플리케이션의 새 버전을 배포하기 위해 Deployment의 명세(spec)를 수정할 수 있습니다. 쿠버네티스는 이 명세에 따라 애플리케이션의 상태를 변경합니다.
- 스케일링 : Deployment는 수직 및 수평 스케일링을 지원합니다. 수평 스케일링은 replicas 필드를 수정하여 파드의 복제본 수를 조절하는 것을 의미하며, 수직 스케일링은 파드의 리소스(CPU, 메모리)를 조절하는 것을 의미합니다.
- 프로브(Probes) : Deployment는 애플리케이션의 건강 상태를 체크하기 위한 프로브를 설정할 수 있습니다. 이를 통해 애플리케이션의 상태에 따라 파드를 자동으로 재시작하거나 제거할 수 있습니다.
- 롤링 업데이트 : Deployment는 애플리케이션을 업데이트할 때 롤링 업데이트 전략을 사용하여 중단 없이 새 버전을 배포할 수 있습니다.
- 블루-그린 배포 : 이는 두 개의 별도 환경(블루와 그린)에서 애플리케이션 버전을 동시에 실행하고, 사용자 트래픽을 새로운 버전으로 전환하는 방식입니다. Deployment는 이런 전략을 지원하기 위한 여러 설정을 제공합니다.
쿠버네티스의 Deployment는 복잡한 애플리케이션 배포 및 관리 작업을 단순화하고 자동화하는 데 중요한 도구입니다. 이를 통해 안정적이고 지속적인 애플리케이션 운영이 가능해집니다.
TAGCKA, cka 문제, kubectl, kubernetes, kubernetes pod, kubernetes 연습문제, POD
예시
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
// replicasSet 은 랜덤한 해쉬값으로 만들어집니다.
// replicas의 수를 보장해줍니다.
replicas: 3
// selector는 pod가 몇 개로 확장이 되는지 어떻게 업데이트가 되는지 기준이 됩니다.
selector:
matchLabels:
app: nginx // 항상 labels의 app 이름과 동일한 이름을 가져야합니다.
// 아래는 pod 의 정보
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
반응형
'cka' 카테고리의 다른 글
kubernetes [CKA] - Rolling Update & Rollback(기본 개념) (0) | 2023.08.29 |
---|---|
kubernetes [CKA] - Deployment (0) | 2023.08.29 |
kubernetes [CKA] - sidecar-container 연습 문제 (0) | 2023.08.21 |
kubernetes [CKA] - sidecar-container(기본 개념) (0) | 2023.08.21 |
kubernetes [CKA] - multi container pod 연습 문제 (0) | 2023.08.21 |