Solr と Kubernetes - liveness(稼働状態)をどのように設定するか

トピック作成者:ks-solruserml-bot (2024/06/12 15:30 投稿)
8
CloseClose

(The bot translated the original post https://lists.apache.org/thread/70xft3lyzzc26805bz37z1xsjk7kq2l1 into Japanese and reposted it under Apache License 2.0. The copyright of posted content is held by the original poster.)

みなさん、

Solrインスタンスが起動したとき、すべてのインデックスが正常に稼働していること、つまりインスタンスが正常であることを確認したいと考えています。健康状態(いわゆるliveness/readiness)は、特にKubernetes SolrCloudクラスターが設定管理の必要性から再起動される際に役立ちます。このとき、変更を一つのノードずつ適用したいのです。
私の知る限りでは、一度に一つのインデックスにしかpingを送ることができませんが、複数のインデックスがアクティブ(グリーンステータス)であることをテストする方法は、標準では提供されていません。
同じ問題に直面したことがありますか?皆さんはどう思いますか?

よろしくお願いします、
Vincenzo

--
Vincenzo D'Amore

返信投稿者:ks-solruserml-bot (2024/06/12 15:30 投稿)

次のようにコアのREST APIを確認してみてください:

http://localhost:8983/solr/admin/cores?action=STATUS&wt=json

失敗したコアは「initFailures」に表示され、起動したコアは「status」の下に表示されます。

Rob

返信投稿者:ks-solruserml-bot (2024/06/12 15:30 投稿)

ロブ、助けてくれてありがとう。
失敗した場合(initFailuresが空でない場合)、/solr/admin/coresのHTTPステータスコードが500(または200以外のもの)に変わるかどうか知っていますか?

--
Vincenzo D'Amore

返信投稿者:ks-solruserml-bot (2024/06/12 15:30 投稿)

Vincenzo、

もしSolr Operator https://solr.apache.org/operator/ を使用すれば、安全な方法でアップグレードを管理してくれます(次のノードに進む前に、x個のレプリカが正常であることを確認します)。

以下のドキュメントページが役立つことを願っています:

これを設定すれば、一度に最大1つのSolrノードだけをアップグレードし、任意の時点で各シャードのレプリカが不健康な状態になるのは1つだけにすることができます。

Houston

返信投稿者:ks-solruserml-bot (2024/06/12 15:31 投稿)

それはHTTPステータスコード200のままだと思います。コアのステータスを返しているだけなので。もし呼び出し自体が失敗すれば、当然その場合はHTTPステータスコードがそれを反映します。

Solrの管理UIは、クラウドページの1つでこの呼び出しを使用していると思います。

Rob

返信投稿者:ks-solruserml-bot (2024/06/12 15:31 投稿)

ありがとう、とてもおもしろいですね。

返信投稿者:ks-solruserml-bot (2024/06/12 15:31 投稿)

そうですね。

retVal=$(curl -s "http://localhost:8983/solr/admin/cores?action=STATUS&wt=json" | grep '"initFailures":{},')

全てが正常であれば、retValは0になります。今のところ、これでうまくいくはずです。

--
Vincenzo D'Amore

返信投稿者:ks-solruserml-bot (2024/06/12 15:31 投稿)

以下のURLを参照してください:https://solr.apache.org/guide/8_10/implicit-requesthandlers.html#admin-handlers

各ノードに対して以下のようにクエリを送信できます:

http://node:8983/api/node/health?requireHealthyCores=true

このURLは、ノード上のすべてのアクティブなコアが健康である(起動中や回復中のものがない)場合にのみHTTP 200を返します。

Jan

返信投稿者:ks-solruserml-bot (2024/06/12 15:31 投稿)

少し困惑しています。なぜUNHEALTHY_STATESにState.RECOVERY_FAILEDが含まれていないのでしょうか?

トピックへ返信するには、ログインが必要です。

KandaSearch

Copyright © 2006-2024 RONDHUIT Co, Ltd. All Rights Reserved.

投稿の削除

この投稿を削除します。よろしいですか?