投票構成除外API

投票構成除外リストからマスター資格のあるノードを追加または削除します。

リクエスト

POST /_cluster/voting_config_exclusions?node_names=<node_names>

POST /_cluster/voting_config_exclusions?node_ids=<node_ids>

DELETE /_cluster/voting_config_exclusions

前提条件

  • Elasticsearchのセキュリティ機能が有効になっている場合、このAPIを使用するにはmanage クラスター権限が必要です。
  • オペレーター権限機能が有効になっている場合、オペレーターユーザーのみがこのAPIを使用できます。

説明

デフォルトでは、クラスター内にマスター資格のあるノードが3つ以上ある場合、一度にマスター資格のあるノードを半分未満削除すると、投票構成は自動的に縮小されます。

投票構成を3つ未満に縮小したり、一度にマスター資格のあるノードの半分以上を削除したりしたい場合は、このAPIを使用して投票構成から離脱ノードを手動で削除します。このAPIは、指定された各ノードのエントリをクラスターの投票構成除外リストに追加します。その後、クラスターが指定されたノードを除外するように投票構成を再構成するまで待機します。

クラスターは通常の操作中に投票構成除外がないことが望ましいです。除外されたノードが停止したら、DELETE /_cluster/voting_config_exclusionsを使用して投票構成除外をクリアします。このAPIは、ノードがクラスターから完全に削除されるまで待機してから戻ります。クラスターにもはや削除するつもりのないノードの投票構成除外がある場合は、DELETE /_cluster/voting_config_exclusions?wait_for_removal=falseを使用してノードがクラスターを離れるのを待たずに投票構成除外をクリアします。

APIが失敗した場合、安全に再試行できます。成功した応答のみが、ノードが投票構成から削除され、再度追加されないことを保証します。

投票除外は、短期間にクラスターからマスター資格のあるノードの半分以上を削除する場合にのみ必要です。マスター資格のないノードやマスター資格のあるノードの半分未満を削除する場合には必要ありません。

詳細については、マスター資格のあるノードの削除を参照してください。

クエリパラメータ

  • node_names
  • 投票構成から除外するノードの名前のカンマ区切りリスト。指定した場合、?node_idsも指定することはできません。このAPIのPOST形式にのみ適用されます。
  • node_ids
  • 投票構成から除外するノードの永続IDのカンマ区切りリスト。指定した場合、?node_namesも指定することはできません。このAPIのPOST形式にのみ適用されます。
  • timeout
  • (オプション、時間単位) 投票構成除外を追加する際、APIは指定されたノードが投票構成から除外されるのを待ってから戻ります。待機する時間の期間は?timeoutクエリパラメータで指定されます。タイムアウトが適切な条件が満たされる前に切れると、リクエストは失敗し、エラーが返されます。デフォルトは30sです。このAPIのPOST形式にのみ適用されます。
  • master_timeout
  • (オプション、時間単位) クラスター内の現在のマスターノードにリクエストをルーティングしようとする間、どれくらい待機するかを定義します。デフォルトは30sです。このAPIのPOSTおよびDELETE形式の両方に適用されます。
  • wait_for_removal
  • (オプション、ブール値) 投票構成除外リストをクリアする前に、すべての除外ノードがクラスターから削除されるのを待つかどうかを指定します。デフォルトはtrueで、すべての除外ノードがクラスターから削除される必要があります。このAPIがアクションを取る前に。falseに設定すると、除外されたノードがまだクラスターに存在していても、投票構成除外リストがクリアされます。このAPIのDELETE形式にのみ適用されます。

  1. #### Python
  2. ``````python
  3. resp = client.cluster.post_voting_config_exclusions(
  4. node_names="nodeName1,nodeName2",
  5. )
  6. print(resp)
  7. `

Js

  1. const response = await client.cluster.postVotingConfigExclusions({
  2. node_names: "nodeName1,nodeName2",
  3. });
  4. console.log(response);

コンソール

  1. POST /_cluster/voting_config_exclusions?node_names=nodeName1,nodeName2

リストからすべての除外を削除します:

Python

  1. resp = client.cluster.delete_voting_config_exclusions()
  2. print(resp)

Js

  1. const response = await client.cluster.deleteVotingConfigExclusions();
  2. console.log(response);

コンソール

  1. DELETE /_cluster/voting_config_exclusions