쿠버네티스 레플리카셋(ReplicaSet) 개념과 명령어

ZER0·2022년 10월 6일
0

Kubernetes

목록 보기
3/39
post-thumbnail

1. 레플리카셋 개념

  • 파드 실행의 연속성을 보장하기 위해 동일한 파드를 여러개로 묶어놓은 집합으로, 레플리카셋에 포함된 파드는 다운되어도 자동으로 재실행
  • 파드에 트래픽이 증가해 일정 수준 이상이 될 경우 자동으로 새로운 파드가 복제되어 트래픽을 로드밸런싱
  • 레플리카셋을 삭제할 경우 레플리카셋에 포함된 파드 모두 삭제
  • 레플리카셋은 파드가 실행되는 개수에 대해서만 보장하고, 업데이트 기능을 제공하지 않기 때문에 디플로이먼트 활용을 권장

2. YAML을 활용한 레플리카셋 생성

  • nginx 컨테이너로 구성된 레플리카셋을 생성하기 위한 YAML 내용

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    apiVersion: apps/v1
    kind: ReplicaSet
    metadata:
      name: test-ReplicaSet
      labels:
        app: my-ReplicaSet
        tier: frontend
    spec:
      replicas: 3
      selector:
        matchLabels:
          tier: frontend
      template:
        metadata:
          labels:
            tier: frontend
        spec:
          containers:
          - name: nginx
            image: nginx
    cs
	4번 : 레플리카셋 이름
	5~7번 : 레플리카셋의 레이블(AWS의 태그와 동일한 개념으로 관리 규칙에 따라 엔지니어 임의로 작성 가능)
	9번: 실행을 보장할 파드 개수
	10~12번: 어떤 레이블을 레플리카셋에 연결 시킬것인지 설정
	15~16번: 레플리카셋에 연결될 파드의 레이블. 12번의 값과 일치해야함.

3. 명령어를 활용한 레플리카셋 핸들링

  • yaml 파일을 활용한 레플리카셋 생성
	kubectl apply -f [yaml_파일]
  • 레플리카셋 목록 확인
    kubectl get replicaset 
    kubectl get replicaset -n [네임스페이스]
    kubectl get replicaset -A 
    kubectl get replicaset -o wide
    kubectl get replicaset --watch
  • 레플리카셋 세부 정보 확인
	kubectl describe replicaset [레플리카셋_이름]
  • 레플리카셋 설정 수정
	kubectl edit replicaset [레플리카셋_이름]
  • 레플리카(실행을 유지할 파드 개수) 설정
	kubectl scale --replicas=[개수] replicaset [레플리카셋_이름]
    kubectl scale --replicas=[개수] -f [yaml_파일]
  • yaml 파일 변경
	kubectl replace --force -f [yaml_파일]
  • 레플리카셋 삭제
	kubectl delete replicaset [레플리카셋_이름]

4. 참고

  1. https://www.udemy.com/course/certified-kubernetes-administrator-with-practice-tests/
  2. https://kubernetes.io/ko/docs/concepts/workloads/controllers/replicaset/
  3. https://velog.io/@squarebird/Kubernetes-Replica-Set%EA%B3%BC-Deployment
profile
Security Compliance Engineer

0개의 댓글