클러스터 해체 API

클러스터 해체 API (Cluster Decommission API)

다중 zone 배포에서 업그레이드를 통제된 방식으로 적용하고 싶을 때가 있죠? 클러스터 해체 API가 awareness 기반의 해체(decommission) 연산을 지원해요. 장애 발생 시 비정상 zone을 해체해서 복제 요청이 멈추거나 요청 백로그가 너무 커지는 것을 방지할 수 있어요.

출처: 문서

본문

1.0에서 도입

클러스터 해체 연산은 awareness 기반 해체를 지원해요. 이는 zones 같은 awareness 속성이 클러스터에 새 업그레이드를 통제된 방식으로 적용하는 데 도움이 되는 다중 zone 배포에서 큰 이점이 있어요. 특히 장애 중에는 비정상 zone을 해체해 복제 요청이 중단되는 것을 방지하고 요청 백로그가 너무 커지지 않도록 할 수 있어요.

엔드포인트

PUT  /_cluster/decommission/awareness/{awareness_attribute_name}/{awareness_attribute_value}
GET  /_cluster/decommission/awareness/{awareness_attribute_name}/_status
DELETE /_cluster/decommission/awareness

경로 파라미터

Parameter Type Description
awareness_attribute_name String awareness 속성의 이름으로, 보통 zone이에요.
awareness_attribute_value String awareness 속성의 값이에요. 예를 들어 서로 다른 두 zone에 샤드가 할당돼 있다면 각 zone에 zone-a 또는 zoneb 값을 줄 수 있어요. 클러스터 해체 연산은 메서드에 나열된 zone을 해체해요.

예시 요청

다음 예시들은 클러스터 해체 API를 사용하는 방법을 보여줘요.

zone 해체 및 재가동하기 (Decommissioning and recommissioning a zone)

다음 예시 요청들은 zone을 해체하고 재가동하는 방법을 보여줘요.

다음 예시 요청은 zone-a를 해체해요.

PUT /_cluster/decommission/awareness/<zone>/<zone-a>

해체된 zone을 재가동하려면 DELETE 메서드를 사용해요.

DELETE /_cluster/decommission/awareness

zone 해체 상태 가져오기

다음 예시 요청은 모든 zone의 해체 상태를 반환해요.

GET /_cluster/decommission/awareness/zone/_status
예시 응답

다음 예시 응답은 성공적인 zone 해체를 보여줘요.

{
      "acknowledged": true
}

다음 예시 응답은 모든 zone의 해체 상태를 반환해요.

{
    "zone-1": "INIT | DRAINING | IN_PROGRESS | SUCCESSFUL | FAILED"
}

다음 단계

  • zone awareness와 가중치에 대한 자세한 내용은 Cluster awareness를 참고하세요.
  • allocation awareness에 대한 자세한 내용은 Cluster formation을 참고하세요.

더 알아보기 (Learn more)

  • zone awareness와 가중치 설정은 Cluster awareness 페이지를 참고하세요.
  • allocation awareness의 개념은 Cluster formation에서 다뤄요.