Program Language/K8S
CKA 자격증 - Certified Kubernetes Administrator 3편 [Deployment]
QueryJun
2023. 8. 10. 11:59
Deployment 란?
Deployment는 ReplicaSet을 기반으로 한 리소스로, 애플리케이션의 업데이트와 롤백을 관리하는 데 사용됩니다.
즉, 새로운 버전의 애플리케이션을 배포하거나 업데이트할 때 사용되며, 이를 통해 가용성을 유지하면서 안정적인 배포를 수행할 수 있습니다.
1. 쿠버네티스 Deployment 의 YAML 파일
- apiVersion 및 kind: 리소스의 종류와 버전을 나타냅니다. 여기서는 Deployment 리소스를 생성하므로 apps/v1과
kind: Deployment로 지정합니다. - metadata: 리소스의 메타데이터 정보를 담고 있습니다. 이름(name)은 해당 Deployment의 식별자로 사용됩니다.
- spec: Deployment의 구성 정보를 정의합니다.
- replicas: 유지할 Pod 복제본 수를 설정합니다.
- selector: 해당 Deployment가 관리하는 ReplicaSet의 파드를 선택하는 데 사용되는 레이블 선택기입니다.
- template: 생성될 Pod의 템플릿을 정의합니다.
- metadata.labels: Pod 레이블을 설정합니다.
- spec.containers: Pod 내에서 실행될 컨테이너 정보를 정의합니다. 이미지와 포트 등의 정보가 여기에 포함됩니다.
2. Deployment 정보 출력
$ kubectl get deployments
$ kubectl get deployment
$ kubectl get deploy
# 모두 동일한 결과 출력
- NAME: Deployment의 이름입니다.
- READY: 현재 준비된 복제본 수와 전체 복제본 수를 나타냅니다.
- UP-TO-DATE: 최신 이미지로 업데이트된 복제본 수를 나타냅니다.
- AVAILABLE: 사용 가능한 복제본 수를 나타냅니다.
- AGE: Deployment가 생성된 후 경과한 시간을 나타냅니다.
4. 지정된 경로에 있는 yaml 파일을 이용하여 Deployment 생성
kubectl create -f /root/deployment-definition-1.yaml
해당 명령은 지정된 경로에 있는 YAML 파일을 사용하여 쿠버네티스 클러스터에 Deployment을 생성하는 명령입니다.
5. 지정된 경로에 있는 yaml 파일을 이용하여 Deployment 업데이트
$ kubectl apply /root/deployment-definition-1.yaml
해당 명령은 지정된 경로에 있는 YAML 파일을 사용하여 쿠버네티스 클러스터에 새로운 Deployment을 업데이트 합니다.
6. 새 배포(Deployment) 생성
$ kubectl create deployment httpd-frontend --image=httpd:2.4-alpine --replicas=3
- httpd-frontend: Deployment의 이름으로, 이 이름을 사용하여 Deployment를 식별할 수 있습니다.
- --image=httpd:2.4-alpine: 생성되는 파드에 사용될 컨테이너 이미지를 지정합니다. 여기서는 Apache HTTP Server의 2.4-alpine 버전 이미지를 사용합니다.
- --replicas=3: 생성되는 파드의 복제본 수를 지정합니다. 이 경우 3개의 복제본이 유지됩니다.
이 명령을 실행하면 지정한 이미지와 복제본 수를 가진 Deployment가 생성됩니다.
감사합니다.
반응형