ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Kubernetes) Kubernetes ReplicaSet
    Cloud/Kubernetes 2022. 10. 21. 02:04
    학습 목표 : k8s의 서비스가 지속되도록하는 ReplicaSet에 대해 알아본다.

    ReplicaSet 이란?

    • 쿠버네티스 프로젝트 초기부터 있던 Replication Controller의 발전형
    • 정해진 개수의 pod가 항상 실행상태가 되도록 관리한다.
    • 노드나 pod에 이상이생겨 사용할수 없을 때, 동일 cluster안의 다른 노드의 pod를 생성하고 실행한다.
    • YAML 파일을 통해 사용자가 요구하는 상태가 되도록 pod를 관리할 수 있다.


    ReplicaSet 사용해보기

    • replicaset 설정 (replicaset-nginx.yaml)
    apiVersion: apps/v1
    kind: ReplicaSet
    metadata:
      name: replicaset-nginx           # name - replicaset 이름 설정
    spec:
      replicas: 3                      # replicas - 유지할 파드개수를 설정하는 필드
      selector:                        # selector - 관리할 레이블의 파드를 선택
        matchLabels:                   # matchLabels - 레이블 체크 조건
          app: my-nginx-pods-label     # 탬플릿의 레이블 설정과 같게한다
      template:
        metadata:
          name: my-nginx-pod           # name - pod 이름 설정
          labels:                      # labels - 템플릿 레이블 설정
            app: my-nginx-pods-label
        spec:
          containers:
            - name: nginx              # name - 컨테이너 이름 설정
              image: nginx:1.20.0      # image - 컨테이너에 사용할 이미지
              ports:                   # ports - 컨테이너에 접속할 포트번호 설정
                - containerPorts: 80

     

    • replicaset 목록 확인
    kubectl get replicasets

        -  replicaset 상태목록  설명

           DESIRED : replicaset 설정시 지정한 pod의 개수

           CURRENT : replicaset으로 동작하는 pod의 개수

     

    • replicaset 상세정보 확인
    kubectl describe replicaset/replicaset-nginx
    # kubectl describe replicaset/<ReplicaSet 이름>


    ReplicaSet 와 Pod

    • pod는 레이블 기준으로 관리되고 replicaset 레이블을 지정하여 사용한다. replicaset 과 pod는 느슨하게 결합되어있다.
    • replicaset 설정으로 생성된 pod를 삭제하면  지정된 개수만큼 pod를 생성한다.
    • replicaset 설정으로 생성된 pod를 변경하면 변경된 pod를 제외하고 지정된 개수만큼 pod를 생성한다.
    • replicaset pod를 한꺼번에 삭제할 때
    kubectl delete replicaset <ReplicaSet이름>
    • replicaset의 컨트롤러만 삭제하고 pod를 유지할 때
    kubectl delete replicaset <Replicaset 이름> --cascade=orphan


    댓글

Designed by Tistory.