[k8s] 5. Replication Controller

3155 단어 k8sk8s

#success: 프로브가 실패 후에 다시 성공 상태로 돌아오기 위해 성공해야 하는 기준 횟수

레플리케이션 컨트롤러

동작

  • 실행 명령을 내린 파드의 실행, 숫자를 보장함
  • 클러스터에서 노드가 off 된 경우, 사라진 파드를 감지하고 대체 파드를 생성
  • 초과 복제본이 생긴 경우에는 제거한다 (수동으로 생성함, 기존 파드의 type 변경, rc의 관리 파드 설정 값 변경)

구성 요소

  • 레이블 셀렉터: rc가 관리하는 파드 범위
  • 레플리카 수: 실행할 파드의 수
  • 파드 템플릿: 새 레플리카 생성
    ! 레이블 셀렉터와 파드 템플릿은 기존 실행된 파드에는 영향을 미치지 않는다

명령어

kubectl get rc // desired, current, ready
kubectl get rc <rcName>

노드 장애 케이스

  • wide 옵션으로 pod가 실행되고 있는 node를 찾았다
  • 노드에 접속하여 강제로 네트워크 인터페이스 종료
  • 노드 상태 확인
  • 접근 불가 pod이 종료되고 새로운 pod이 실행됨

파드 이동

  • 한 rc에서 다른 rc로 파드를 이동할 수도 있다

다양한 케이스

  • rc의 레이블 셀렉터에서 벗어나기

  • rc의 레이블 셀렉터 변경: 일반적으로 발생하는 케이스는 아니다

  • rc의 파드 템플릿 변경: 기존 파드를 삭제해야 새로운 파드를 생성하고 rc가 관리하게 된다 (9장에서 더 나은 업데이트 방법을 배울 예정)

  • 수평 확장

kubectl scale rc kubia --replicas=<Number>
  • rc 정의 편집: spec.replicas 필드값 수정
  • 15장에서 수평 파드 오토스케일링 활성화에 대해 배움
  • rc의 삭제
    • 관리하는 파드도 삭제 or 파드는 삭제 하지 않음
kubectl delete rc <rcName> --cascade=true // false (파드는 삭제 하지 않음)

리플리카셋

특징

  • 상위 수준의 디플로이먼트 리소스를 생성할 때 자동으로 생성되게 하는 것이 일반 적이다
  • 파드 셀렉터에 더 다양한 표현식이 가능하다

정의하기

  • 레플리카셋은 v1 API의 일부가 아니므로, 적절한 apiVersion을 지정해야 한다(apps/v1beta2)
  • 셀렉터를 정의하는 풍부한 옵션이 가능하다, matchLabels 셀렉터 이외에 Expressions를 사용하여 가능(In, NotIn, Exists, DoesNotExist)
  • matchLabels와 matchExpression을 모두 지정하면 모든 조건이 true로 평가되는 파드가 매칭된다

좋은 웹페이지 즐겨찾기