希望するノードの作成または更新API
この機能は、Elasticsearch Service、Elastic Cloud Enterprise、およびElastic Cloud on Kubernetesによる間接的な使用を目的としています。直接の使用はサポートされていません。
希望するノードを作成または更新します。
リクエスト
Python
resp = client.perform_request(
"PUT",
"/_internal/desired_nodes/<history_id>/<version>",
headers={"Content-Type": "application/json"},
body={
"nodes": [
{
"settings": {
"node.name": "instance-000187",
"node.external_id": "instance-000187",
"node.roles": [
"data_hot",
"master"
],
"node.attr.data": "hot",
"node.attr.logical_availability_zone": "zone-0"
},
"processors": 8,
"memory": "58gb",
"storage": "2tb"
}
]
},
)
print(resp)
Js
const response = await client.transport.request({
method: "PUT",
path: "/_internal/desired_nodes/<history_id>/<version>",
body: {
nodes: [
{
settings: {
"node.name": "instance-000187",
"node.external_id": "instance-000187",
"node.roles": ["data_hot", "master"],
"node.attr.data": "hot",
"node.attr.logical_availability_zone": "zone-0",
},
processors: 8,
memory: "58gb",
storage: "2tb",
},
],
},
});
console.log(response);
コンソール
PUT /_internal/desired_nodes/<history_id>/<version>
{
"nodes" : [
{
"settings" : {
"node.name" : "instance-000187",
"node.external_id": "instance-000187",
"node.roles" : ["data_hot", "master"],
"node.attr.data" : "hot",
"node.attr.logical_availability_zone" : "zone-0"
},
"processors" : 8.0,
"memory" : "58gb",
"storage" : "2tb"
}
]
}
クエリパラメータ
master_timeout
- (オプション、時間単位)マスターノードを待機する期間。タイムアウトが切れる前にマスターノードが利用できない場合、リクエストは失敗し、エラーが返されます。デフォルトは
30s
です。リクエストがタイムアウトしないことを示すために-1
に設定することもできます。 dry_run
- (オプション、ブール値)
true
の場合、リクエストは更新をシミュレートし、dry_run
フィールドがtrue
に設定された応答を返します。
説明
このAPIは希望するノードを作成または更新します。外部オーケストレーターは、このAPIを使用してElasticsearchにクラスターのトポロジーを通知し、ノードの追加や削除などの将来の変更を含めることができます。この情報を使用することで、システムはより良い意思決定を行うことができます。
## 例
この例では、履歴`````Ywkh3INLQcuPT49f6kcppA`````を持つ希望するノードの新しいバージョンが作成されます。このAPIは単調に増加するバージョンのみを受け入れます。
#### Python
``````python
resp = client.perform_request(
"PUT",
"/_internal/desired_nodes/Ywkh3INLQcuPT49f6kcppA/100",
headers={"Content-Type": "application/json"},
body={
"nodes": [
{
"settings": {
"node.name": "instance-000187",
"node.external_id": "instance-000187",
"node.roles": [
"data_hot",
"master"
],
"node.attr.data": "hot",
"node.attr.logical_availability_zone": "zone-0"
},
"processors": 8,
"memory": "58gb",
"storage": "2tb"
}
]
},
)
print(resp)
`
Js
const response = await client.transport.request({
method: "PUT",
path: "/_internal/desired_nodes/Ywkh3INLQcuPT49f6kcppA/100",
body: {
nodes: [
{
settings: {
"node.name": "instance-000187",
"node.external_id": "instance-000187",
"node.roles": ["data_hot", "master"],
"node.attr.data": "hot",
"node.attr.logical_availability_zone": "zone-0",
},
processors: 8,
memory: "58gb",
storage: "2tb",
},
],
},
});
console.log(response);
コンソール
PUT /_internal/desired_nodes/Ywkh3INLQcuPT49f6kcppA/100
{
"nodes" : [
{
"settings" : {
"node.name" : "instance-000187",
"node.external_id": "instance-000187",
"node.roles" : ["data_hot", "master"],
"node.attr.data" : "hot",
"node.attr.logical_availability_zone" : "zone-0"
},
"processors" : 8.0,
"memory" : "58gb",
"storage" : "2tb"
}
]
}
コンソール-結果
{
"replaced_existing_history_id": false,
"dry_run": false
}
さらに、プロセッサの範囲を指定することも可能です。これは、Elasticsearchノードが、Elasticsearchプロセスが使用できるプロセッサの数が下限範囲以上で上限範囲まで保証されるホストにデプロイされる環境で役立ちます。これは、cgroupsが使用されるLinuxデプロイメントで一般的なシナリオです。
Python
resp = client.perform_request(
"PUT",
"/_internal/desired_nodes/Ywkh3INLQcuPT49f6kcppA/101",
headers={"Content-Type": "application/json"},
body={
"nodes": [
{
"settings": {
"node.name": "instance-000187",
"node.external_id": "instance-000187",
"node.roles": [
"data_hot",
"master"
],
"node.attr.data": "hot",
"node.attr.logical_availability_zone": "zone-0"
},
"processors_range": {
"min": 8,
"max": 10
},
"memory": "58gb",
"storage": "2tb"
}
]
},
)
print(resp)
Js
const response = await client.transport.request({
method: "PUT",
path: "/_internal/desired_nodes/Ywkh3INLQcuPT49f6kcppA/101",
body: {
nodes: [
{
settings: {
"node.name": "instance-000187",
"node.external_id": "instance-000187",
"node.roles": ["data_hot", "master"],
"node.attr.data": "hot",
"node.attr.logical_availability_zone": "zone-0",
},
processors_range: {
min: 8,
max: 10,
},
memory: "58gb",
storage: "2tb",
},
],
},
});
console.log(response);
コンソール
PUT /_internal/desired_nodes/Ywkh3INLQcuPT49f6kcppA/101
{
"nodes" : [
{
"settings" : {
"node.name" : "instance-000187",
"node.external_id": "instance-000187",
"node.roles" : ["data_hot", "master"],
"node.attr.data" : "hot",
"node.attr.logical_availability_zone" : "zone-0"
},
"processors_range" : {"min": 8.0, "max": 10.0},
"memory" : "58gb",
"storage" : "2tb"
}
]
}