1.ReplicaSet
Deployment의 개념중에서 가장 중요한 것은 ReplicaSet이다. Label Selector를 통해 노드 상의 여러 Pod의 생성/복제/삭제 등의 라이프 싸이클을 관리한다.
1) 지정한 Replica의 숫자만큼 Pod 수 생성/ 유지
2) Label Selector를 통한 Pod 타겟팅
2. Deployment
Kubernetes에서 Application 단위를 관리하는 Controller 이며 Kubernetes의 최소 유닛인 Pod에 대한 기준스펙을 정의한 오브젝트 이다. 쿠버네티스 에서는 각 오브젝트를 독립적으로 생성하기 보다는 Deployment를 통해서 생성하는 것을 권장하고 있으며, Pod와 ReplicaSet의 기준정보를 지정할 수 있다.
1) Pod의 scali in/out 되는 기준을 정의한다.
2) Pod의 배포되고 update 되는 모든 버전을 추적할 수 있다.
3) 배포된 Pod에 대한 rollback을 수행할 수 있다.
yaml 파일 작성(nginx 기반의)
실행 결과.
pods 정보조회
워커노드 1,2 둘중 하나를 끄게 될경우? (장애발생 상황)
Replicaset을 다시 늘리고 싶다면, yaml 파일 수정 or scale 명령어를 사용하면 된다.
위의 예제에서 사용한 파일인 nginx.yaml 파일의 replicaset을 3 -> 10으로 변경 한 후 다시 apply 해보자.
다시 apply를 한다고 해서 deployment가 늘어난 것이 아니라, 기존의 deployment를 업데이트 한 것처럼 적용 되었다.
3. 롤아웃 기능
쿠버네티스 클러스터에 소프트웨어나 서비스를 개시하는 것
즉, 컨테이너의 버전을 업데이트
(1) 업그레이드 할 이미지를 생성하고
(2) 롤아웃을 한다.
기존의 yaml 파일에 nginx:1.16 버전을 1.17 버전으로 수정 후 apply 해서 확인해 보았다.
적용 후 몇개의 컨테이너는 삭제되고 몇개의 컨테이너는 runnig 이다. 컨테이너를 삭제 후 다시 올리는 개념이라. 시간이 지나면 전부 running으로 바뀔 것이다.
4. 롤백 기능
롤아웃 전에 사용하던 예전 컨테이너로 되돌리는 것
kubectl rollout undo deployment [deployment name] //명령어
롤백기능 사용한 후
deploymenet -o wide 옵션 사용후 조회 해보면 images도 1.16으로 롤백 됐다.
이제 docker 컨테이너에서 확인을 해보면
'Kubernetes' 카테고리의 다른 글
쿠버네티스 아키텍처 (0) | 2021.06.08 |
---|---|
Kubernetes (생성,삭제,확인,로그) (0) | 2021.06.08 |
쿠버네티스 클러스터 재구성(초기화) (0) | 2021.06.05 |
쿠버네티스 설치 (0) | 2021.06.03 |
쿠버네티스란 ? (0) | 2021.06.03 |