본문 바로가기
K8S

리플리카셋으로 포드 관리

by Rainbound-IT 2021. 8. 2.
반응형

클러스터에 여러 개의 포드를 디플로이하여 자기복구기능을 구현하는 리플리카셋을 알아보자.

 

리플리카셋(ReplicaSet)

리플리카셋은 클러스터 안에서 움직이는 포드의 수를 유지하는 장치이다.

애플리케이션 오류나 노드 장애들으로 포드가 정지 됐을 경우 리플리카 셋이 자동으로 새로운 포드를 시작한다.

 

라벨 셀렉터의 조건에 따라 포드를 검색하여 가동 중인 포드의 수가 매니페스트 파일의 replicas의 수와 일치하는지 아닌지 체크한다. 일치하지 않으면 추가하거나 정지 시킨다.

 가동중인 애플리케이션 수를 변경하고 싶으면 리플리카셋의 replicas의 값을 수정하면 된다. 

 

매니페스트 파일 

# (1) 기본항목
apiVersion: apps/v1
kind: ReplicaSet  # 리플리카셋을 만들것이다.
metadata:
  name: nginx-replicaset

# (2) ReplicaSet 스펙
spec:
  replicas: 5 #pod의 수
  selector: #pod 템플릿의 검색 조건
    matchLabels:
      app: photo-view

  # (3) Pod 템플릿        //어떤 포드를 기동시킬지 템플릿을 지정
  template:
    metadata:
      labels:
        app: photo-view
        
    # (4) Pod 스펙    // 움직일 컨테이너 애플리케이션의 스펙
    spec:
      containers:
      - image: nginx
        name: photoview-container

특이한건 포드를 가동시킬 수를 적는 replicas 필드가 있다는것이다.

 

1. 매니페스트의 기본항목

  • apiVersion(문자열): api 버전. 최신은'apps/V1' 안적으면 오루난다.
  • kind(문자열) : 쿠버네티스의 리소스 종류 
  • metadata(object) : 리플리카셋의 이름이나 label 같은 메타 데이터
  • spec(PodSpec) : 리플리카셋의 상세정보를 설정

 

2. 리플리카셋 스펙

  • replicas(정수) : 클러스터 안에서 가동시킬 포드의 수. 기본 값은 1
  • selector(LabelSelector) : 어떤 포드를 가동시킬지에 대한 셀렉터. 포드의 Template에 설정된 라벨과 일치해야함
  • Template(PodTemplateSpec) : 실제로 클러스터 안에서 움직이는 포드의 수가 replicas에 설정된 포드의 수를 만족시키지 않을 떄 새로 작성되는 포드의 템플릿

 

3. 포드 템플릿

  • metadata(Object): 템플릿의 이름이나 Label과 같은 메타데이터
  • spec(PodSpec): 포드의 상세정보 설정

 

4. 포드 스펙

replica에 spec에는 포드의 상세정보 설정이다. 전에 포스팅한곳에 포드스펙과 같은 설정이다.

 

 

 

 

반응형

'K8S' 카테고리의 다른 글

쿠버네티스 클러스터의 서비스 계정에 대한 IAM 역할 활성화  (0) 2021.10.08
컨트롤 플레인  (0) 2021.09.30
포드 모니터링  (0) 2021.07.28
노드의 리소스 관리  (0) 2021.07.28
관리 ID  (0) 2021.07.28

댓글