초보를 위한 쿠버네티스 안내서- ReplicaSet

yshjft·2023년 1월 17일
0

Replicaset

Pod은 자동으로 복구되지 않습니다. 하지만 Replicaset은 Pod을 정해진 수만큼 복제하고 관리할 수 있습니다.(Pod이 죽어도 자동으로 복제를 해준다.)

Replicaset 만들기

  • spec.replicas: 원하는 Pod의 개수 설정
  • spec.selector: label 체크 조건(어떤 label을 가진 Pod을 찾을 건지 명시)
  • spec.template: 만약 조건에 맞는 Pod이 없다면 만들 Pod에 대한 조건을 명시
  • Replicaset은 label을 체크해 원하는 수의 Pod이 존재하지 않으면 새로운 Pod을 생성한다.

yml 작성

apiVersion: apps/v1
kind: ReplicaSet
metadata:
  name: echo-rs
spec:
  replicas: 1
  selector:
    matchLabels:
      app: echo
      tier: app
  template:
    metadata:
      labels:
        app: echo
        tier: app
    spec:
      containers:
        - name: echo
          image: ghcr.io/subicura/echo:v1
kubectl apply -f [yaml 파일]

label 삭제 및 추가

  • label 삭제
    kubectl label pod/[pod 이름] app-
    app-를 이용하여 app label을 삭제하였기 때문에 조건에 맞는 새로운 Pod이 생성된다.
  • label 추가
    kubectl label pod/[pod 이름] app=echo
    기존에 생성된 Pod에 app label을 추가하면서 조건에 맞는 Pod이 두개가 되었기 때문에 다른 한개(기존에 사용되던 Pod)를 제거한다.

ReplicaSet 동작

  • ReplicaSet Controller
    • ReplicaSet 조건을 감시하면서 현재 상태와 원하는 상태를 다른 것을 체크
    • 원하는 상태가 되도록 Pod을 제거하거나 생성
  • scheduler
    • 할당되지 않은 새로운 Pod을 감지하고 적절한 노드에 배치
  • 철저한 작업의 분할

정리

  • ReplicaSet은 원하는 Pod의 개수를 유지하는 역할을 담당
  • label을 이용하여 Pod을 체크하기 때문에 label이 겹치지 않게 신경써서 정의해야 한다.
profile
꾸준히 나아가자 🐢

0개의 댓글