Developing

패스트캠퍼스 캐시백 챌린지 60일차 본문

Devops/Fastcampus 캐시백 챌린지

패스트캠퍼스 캐시백 챌린지 60일차

DEV_BLOG 2022. 6. 16. 16:58

수강 인증샷

 

Replicaset과 관련된 내용의 클립을 수강하는식으로 챌린지를 진행하였다. 지금까지의 내용을 토대로하면 k8s에서는 컨테이너를 pod를 통해 관리하고, 이 pod 갯수를 늘릴때 ReplicaSet으로 관리한다고 한다. 그리고 짐작하건데 다음내용으로 배울 deployment가 replicaset을 관리하게 되는 것 같아 보인다. 쉽지는 않지만 그래도 할만한 것 같다.. 다음 포스팅으로는 Deployment API Resource와 관련된 내용을 포스팅 할 예정이다.

 

 

레플리카셋(ReplicaSet)

  • 파드의 수를 늘릴때 사용하는 API 리소스
  • 정해진 수의 파드가 항상 실행될 수 있도록 관리
  • 기존 실행중이던 다프에 문제가 생기면 파드를 다시 스케줄링
  • ReplicationController의 신규 버전(현재는 Deprecated)
  • 파드와 마찬가지로 레플리카셋을 직접 관리하는 경우는 거의 없음

 

레플리카셋의 동작원리

  • ReplicaSet Controller가 Control Plane에 존재
  • spec.selector에 대응되는 파드의 수가 spec.replicas와 동일한지 지속적으로 검사하고, 다를 경우 스케일 아웃 혹은 인 진행
  • 레이블 셀렉터(Label Selector)

⇒ 쿠버네티스 오브젝트는 모두 metadata.labels에 Key - Value 형태의 레이블 값을 가짐

⇒ 특정 오브젝트 목록을 필터링하기 위한 기능이 Label Selector

⇒ matchLabels와 matchExpressions 옵션 제공

 

(많은 쿠버네티스 API 리소스가 Label Selector를 통해 기능을 제공한다.)

⇒ 리소스 간 느슨한 결합 유지(Loosely Coupled)

 

레플리카셋 실습

실습링크는 하단의 링크에 해당한다.

https://github.com/tedilabs/fastcampus-devops/tree/main/3-docker-kubernetes/7-k8s-replicaset

# 분할탭 기능에서 작업하여 지속적으로 데이터를 갱신해서 확인한다.
$ watch kubectl get pod --show-labels
# pod 3개 생성
$ kubectl apply -f replicaset.yaml

# replicaset에 대한 정보 확인
$ kubectl get replicasets

# hello replicaset의 정보를 확인 가능
$ kubectl get replicatsets hello

# replicaset의 short name은 rs임을 확인
$ kubectl api-resources | grep replicaset

# replicaset에 대한 정보 확인 (축약어 사용)
$ kubectl get rs

 

 

 

# replicas 속성과 관련된 test하기위해 제거
$ kubectl delete -f replicaset.yaml

# dummy pod 하나 생성(label:hello) 
$ kubectl apply -f dummy-pod.yaml

# replicaset으로 pod 생성시도(label:hello)
$ kubectl apply -f replicaset.yaml

 

본래 replicaset.yaml의 replicas에서 3개의 pod를 만들라고 되어있지만, hello 라는 Label이 붙은 pod가 이미 1개 존재하기에 2개가 생성된 모습이다.

 

 

 

# 특정 pod의 hello label 삭제시도
$ kubectl edit pod hello-jmrpn

 

hello를 bye로 변경해본다.

 

 

hello label이 2개가 되자 replicaset이 1개의 pod를 더 생성해준 것을 확인할 수 있다!

 

 

https://bit.ly/3L3avNW

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr

* 본 포스팅은 패스트캠퍼스 환급 챌린지를 위해 작성되었습니다.