컨트롤러 StatefulSet 컨트롤러를 학습는 Kubernetes

StatefulSet 소개

A, StatefulSet 개요
StatefulSet을 관리하는 데 사용됩니다 적용 (상태) 상태
StatefulSet 관리 포드가의 ID 포드는 순차적 인 성장이 있는지 확인 때
와 가장 큰 차이는 항상 포드에 할당 된 같은 이름의 시리즈 StatefulSet 배포입니다.이 포드는 템플릿에서 생성되지만 서로 바꿀 수없는
두 StatefulSet 이용 시나리오
는 다음 청구 범위의 적용, StatefulSet 적합
필요한 안정적인 고유 네트워크 식별 (dNSName)
각 각각 항상 포드 저장 경로에 대응 (PersistantVolumeClaimTemplate)
작성자 주문 증가의 사본은 사본을 줄이고 복사 감소 정리를 수행
자동 롤링 업데이트를 수행 할 보안 순서를

응용 프로그램이 안정적인 네트워크 ID를 필요로하지 않는, 또는 배포를 위해 필요하지 않은 경우, 증가를 복사해야 배포 (무) 컨트롤러를 삭제

세, StatefulSet 제한

포드는 하나의 저장 전에 클러스터 관리자 저장 CLA를 PersistentVolume 제공자 대응하여 제공하거나 생성

따라서 데이터 보안을 보장, 삭제 또는 해당 데이터 볼륨을 삭제되지 않습니다 StatefulSet을 축소

당신이 StatefulSet을 삭제하면, 포드가 정상적으로 종료 보장되지 않습니다. 포드는 우아한에서 종료 StatefulSet의 순서에 따라, 이전에 StatefulSet을 삭제할 수있는 경우, 다운 스케일을 0으로 

기본 포드 관리 정책 (OrderedReady) 지속적 업데이트를 사용하는 경우, 당신은 오류 상태를 입력하고 수동 개입이 필요할 수 있습니다

예에 대한 철저한 이해와 StatefulSet

StatefulSet 예제 만들기

다음은하기 조성에 의해 StatefulSet의 예이다 :

  • 네트워크 도메인을 제어하기위한 헤드리스 서비스라고 nginx를 서비스
  • 2 사본, 웹 StatefulSet 호출
apiVersion : V1 
종류 : 서비스 
메타 데이터 : 
  이름 : nginx를 서비스 #headless 서비스 이름 
  레이블 : 
    응용 프로그램 : nginx를 # 사용자 정의 라벨 
사양 : 
  포트 :
   - 포트 : 80 
    이름 : 웹 
  clusterIP : 없음 
  선택기 : 
    응용 프로그램 : nginx를 # 관련 응용 프로그램 : 의 nginx 포드
 --- 
apiVersion : 앱 / V1 
종류 : StatefulSet 
메타 데이터 : 
  이름 : 웹-D #statefulset 컨트롤러 이름 
사양 : 
  선택기 : 
    matchLabels : 
      응용 프로그램 : # 협회의 nginx 응용 프로그램 : nginx를 제어 포드 
  서비스 명 : " nginx- 서비스 " # 서비스는 헤드리스 지정된 
  복제본 :2 
  틀 : 
    메타 데이터 : 
      레이블 : 
        응용 프로그램 : nginx를 #pod 라벨 
    사양 : 
      terminationGracePeriodSeconds : 10 개 
      컨테이너 :
       - 이름 : nginx를 #pod의에서 선박의 이름 
        이미지 :의 nginx : 1.7 . 9 
        포트 :
         - containerPort : 80 
          이름 : 웹

포드 로고

포드 StatefulSet는 다음의 구성 요소로 이루어진 고유 한 식별자를 포함

  • 아니오.
  • 안정적인 네트워크 정체성
  • 안정적인 저장

아니오.

StatefulSet 매수 제로에서부터 포드 원하는 개수, StatefulSet에서 고유 할 필요가 할당되고, 각각의 N, 가정하자.

이름 포드이다 StatefulSet에게 이름 + 참조 그러한 구성 파일로서, 두 개의 카피들이있다, 제 이름 포드 웹 D-0, 두 번째는 이름 포드 웹 D-1

안정적인 네트워크 ID

1) StatefulSet 호스트 포드 포맷 $ (statefulSet 이름)로 - $ POD (번호), 상기 실시 예 2 포드, 제 포드의 이름을 생성 할 것이다 : 웹 D-0, 제 포드 이름 그것은 웹 D-1

2) StatefulSet 헤드리스 서비스는 도메인을 제어하는 ​​데 사용 될 수있다 자신의 포드, 형식 필드 :. $ (도메인) (서비스 이름) $ (네임 스페이스) .svc.cluster.local;

상기 필드의 예는 다음의 nginx-service.defaule.svc.cluster.local

3) StatefulSet 포드는 각각 dnsNmae, 형식 :. $ (포드 이름) $ (도메인)가 할당된다

예컨대 상기 포드 dnsName 다른 창은 주소를 찾을 수 있으며 웹 - 디 - 0.nginx-server.default.svc.cluster.local이고

 

 

 

추천

출처www.cnblogs.com/chadiandianwenrou/p/11934700.html