投票構成除外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
形式にのみ適用されます。
例
#### Python
``````python
resp = client.cluster.post_voting_config_exclusions(
node_names="nodeName1,nodeName2",
)
print(resp)
`
Js
const response = await client.cluster.postVotingConfigExclusions({
node_names: "nodeName1,nodeName2",
});
console.log(response);
コンソール
POST /_cluster/voting_config_exclusions?node_names=nodeName1,nodeName2
リストからすべての除外を削除します:
Python
resp = client.cluster.delete_voting_config_exclusions()
print(resp)
Js
const response = await client.cluster.deleteVotingConfigExclusions();
console.log(response);
コンソール
DELETE /_cluster/voting_config_exclusions