This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.3.3.8. Elasticsearch クラスターのローリング再起動の実行
elasticsearch
設定マップまたは elasticsearch-*
デプロイメント設定のいずれかを変更する際にローリング再起動を実行します。
さらにローリング再起動は、Elasticsearch Pod が実行されるノードで再起動が必要な場合に推奨されます。
前提条件
- クラスターロギングおよび Elasticsearch がインストールされている。
手順
クラスターのローリング再起動を実行するには、以下を実行します。
openshift-logging
プロジェクトに切り替えます。oc project openshift-logging
$ oc project openshift-logging
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Elasticsearch Pod の名前を取得します。
oc get pods | grep elasticsearch-
$ oc get pods | grep elasticsearch-
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Fluentd Pod をスケールダウンし、新規ログの Elasticsearch への送信を停止します。
oc -n openshift-logging patch daemonset/logging-fluentd -p '{"spec":{"template":{"spec":{"nodeSelector":{"logging-infra-fluentd": "false"}}}}}'
$ oc -n openshift-logging patch daemonset/logging-fluentd -p '{"spec":{"template":{"spec":{"nodeSelector":{"logging-infra-fluentd": "false"}}}}}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift Container Platform es_util ツールを使用してシャードの同期フラッシュを実行して、シャットダウンの前にディスクへの書き込みを待機している保留中の操作がないようにします。
oc exec <any_es_pod_in_the_cluster> -c elasticsearch -- es_util --query="_flush/synced" -XPOST
$ oc exec <any_es_pod_in_the_cluster> -c elasticsearch -- es_util --query="_flush/synced" -XPOST
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下に例を示します。
oc exec -c elasticsearch-cdm-5ceex6ts-1-dcd6c4c7c-jpw6 -c elasticsearch -- es_util --query="_flush/synced" -XPOST
$ oc exec -c elasticsearch-cdm-5ceex6ts-1-dcd6c4c7c-jpw6 -c elasticsearch -- es_util --query="_flush/synced" -XPOST
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
{"_shards":{"total":4,"successful":4,"failed":0},".security":{"total":2,"successful":2,"failed":0},".kibana_1":{"total":2,"successful":2,"failed":0}}
{"_shards":{"total":4,"successful":4,"failed":0},".security":{"total":2,"successful":2,"failed":0},".kibana_1":{"total":2,"successful":2,"failed":0}}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift Container Platform es_util ツールを使用して、ノードを意図的に停止する際のシャードのバランシングを防ぎます。
oc exec <any_es_pod_in_the_cluster> -c elasticsearch -- es_util --query="_cluster/settings" -XPUT -d '{ "persistent": { "cluster.routing.allocation.enable" : "primaries" } }'
$ oc exec <any_es_pod_in_the_cluster> -c elasticsearch -- es_util --query="_cluster/settings" -XPUT -d '{ "persistent": { "cluster.routing.allocation.enable" : "primaries" } }'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下に例を示します。
oc exec elasticsearch-cdm-5ceex6ts-1-dcd6c4c7c-jpw6 -c elasticsearch -- es_util --query="_cluster/settings" -XPUT -d '{ "persistent": { "cluster.routing.allocation.enable" : "primaries" } }'
$ oc exec elasticsearch-cdm-5ceex6ts-1-dcd6c4c7c-jpw6 -c elasticsearch -- es_util --query="_cluster/settings" -XPUT -d '{ "persistent": { "cluster.routing.allocation.enable" : "primaries" } }'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
{"acknowledged":true,"persistent":{"cluster":{"routing":{"allocation":{"enable":"primaries"}}}},"transient":
{"acknowledged":true,"persistent":{"cluster":{"routing":{"allocation":{"enable":"primaries"}}}},"transient":
Copy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドが完了したら、ES クラスターのそれぞれのデプロイメントについて、以下を実行します。
デフォルトで、OpenShift Container Platform Elasticsearch クラスターはノードのロールアウトをブロックします。以下のコマンドを使用してロールアウトを許可し、Pod が変更を取得できるようにします。
oc rollout resume deployment/<deployment-name>
$ oc rollout resume deployment/<deployment-name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下に例を示します。
oc rollout resume deployment/elasticsearch-cdm-0-1
$ oc rollout resume deployment/elasticsearch-cdm-0-1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
deployment.extensions/elasticsearch-cdm-0-1 resumed
deployment.extensions/elasticsearch-cdm-0-1 resumed
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新規 Pod がデプロイされます。Pod に準備状態のコンテナーがある場合、次のデプロイメントに進むことができます。
oc get pods | grep elasticsearch-
$ oc get pods | grep elasticsearch-
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME READY STATUS RESTARTS AGE elasticsearch-cdm-5ceex6ts-1-dcd6c4c7c-jpw6k 2/2 Running 0 22h elasticsearch-cdm-5ceex6ts-2-f799564cb-l9mj7 2/2 Running 0 22h elasticsearch-cdm-5ceex6ts-3-585968dc68-k7kjr 2/2 Running 0 22h
NAME READY STATUS RESTARTS AGE elasticsearch-cdm-5ceex6ts-1-dcd6c4c7c-jpw6k 2/2 Running 0 22h elasticsearch-cdm-5ceex6ts-2-f799564cb-l9mj7 2/2 Running 0 22h elasticsearch-cdm-5ceex6ts-3-585968dc68-k7kjr 2/2 Running 0 22h
Copy to Clipboard Copied! Toggle word wrap Toggle overflow デプロイメントが完了したら、ロールアウトを許可しないように Pod をリセットします。
oc rollout pause deployment/<deployment-name>
$ oc rollout pause deployment/<deployment-name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下に例を示します。
oc rollout pause deployment/elasticsearch-cdm-0-1
$ oc rollout pause deployment/elasticsearch-cdm-0-1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
deployment.extensions/elasticsearch-cdm-0-1 paused
deployment.extensions/elasticsearch-cdm-0-1 paused
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Elasticsearch クラスターが
green
またはyellow
状態にあることを確認します。oc exec <any_es_pod_in_the_cluster> -c elasticsearch -- es_util --query=_cluster/health?pretty=true
$ oc exec <any_es_pod_in_the_cluster> -c elasticsearch -- es_util --query=_cluster/health?pretty=true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記直前のコマンドで使用した Elasticsearch Pod でロールアウトを実行した場合、Pod は存在しなくなっているため、ここで新規 Pod 名が必要になります。
以下に例を示します。
oc exec elasticsearch-cdm-5ceex6ts-1-dcd6c4c7c-jpw6 -c elasticsearch -- es_util --query=_cluster/health?pretty=true
$ oc exec elasticsearch-cdm-5ceex6ts-1-dcd6c4c7c-jpw6 -c elasticsearch -- es_util --query=_cluster/health?pretty=true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 次に進む前に、このパラメーターが
green
またはyellow
であることを確認します。
- Elasticsearch 設定マップを変更した場合、それぞれの Elasticsearch Pod についてこれらの手順を繰り返します。
クラスターのすべてのデプロイメントがロールアウトされたら、シャードのバランシングを再度有効にします。
oc exec <any_es_pod_in_the_cluster> -c elasticsearch -- es_util --query="_cluster/settings" -XPUT -d '{ "persistent": { "cluster.routing.allocation.enable" : "all" } }'
$ oc exec <any_es_pod_in_the_cluster> -c elasticsearch -- es_util --query="_cluster/settings" -XPUT -d '{ "persistent": { "cluster.routing.allocation.enable" : "all" } }'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下に例を示します。
oc exec elasticsearch-cdm-5ceex6ts-1-dcd6c4c7c-jpw6 -c elasticsearch -- es_util --query="_cluster/settings" -XPUT -d '{ "persistent": { "cluster.routing.allocation.enable" : "all" } }'
$ oc exec elasticsearch-cdm-5ceex6ts-1-dcd6c4c7c-jpw6 -c elasticsearch -- es_util --query="_cluster/settings" -XPUT -d '{ "persistent": { "cluster.routing.allocation.enable" : "all" } }'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Fluentd Pod をスケールアップして、新規ログを Elasticsearch に送信します。
oc -n openshift-logging patch daemonset/logging-fluentd -p '{"spec":{"template":{"spec":{"nodeSelector":{"logging-infra-fluentd": "true"}}}}}'
$ oc -n openshift-logging patch daemonset/logging-fluentd -p '{"spec":{"template":{"spec":{"nodeSelector":{"logging-infra-fluentd": "true"}}}}}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow