[k8s] 5. Replication Controller
#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로 평가되는 파드가 매칭된다
Author And Source
이 문제에 관하여([k8s] 5. Replication Controller), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@hje0510/k8s-5.-Replication-Controller저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)