2020年5月16日土曜日

「Solr cloud: No registered leader was found after waiting for 4000ms」の対処方法

Solr Cloudを使っています。設定変更をしてサーバを立ち上がったらなかなかステータスが「active」になってくれない。

以下のコマンドで動作を確認しみました。

solr healthcheck -c core_name -z zkhost:2181

冒頭に以下のエラーが表示されていました↓

No registered leader was found after waiting for 4000ms

ログに何か他の情報があるかなと思って探ってみましたが特に有力な情報が見つけませんでした。

更にネットでググったらそれも対して対処法を見つけませんでした。

ダメ元でサーバを全部シャットダウンして、一台だけを立ち上がってみたら無事に「active」になってくれました。残りのサーバも立ち上がってみたら無事に復活できました。

恐らく同時に複数台を立ち上がるとリーダーの選出がうまくできてないじゃないかなと思われます。

まず一台だけを立ち上がったら間違いなくリーダーなってくれるはずです。


他のもっといい方法があれば教えていただきたいです。

2020年5月10日日曜日

「kubectl run」コマンドで存続し続けるPodを作成する方法

ネットワークのトラブルシューティングや、DBの接続確認などでテスト用Podを使いたい時があります。その都度yamlファイルを作成してデプロイするのは面倒に感じますよね。
以下のコマンドを使えば、ワンラインで存続し続けるPodを作成することができます。
kubectl run [pod名] --image=[イメージ名] --restart=Never --command sleep infinity
例↓ mysql接続テストするためのpodを作成
kubectl run mysql-test --image=mysql:5.6 --restart=Never --command sleep infinity
オプション「–-command」はpodが立ち上がったら実行するコマンドを意味します。
そして「sleep infinity」は「無限に待つ」になります。つまり永遠停止しないことになります。

statefulsetのロールアウト履歴確認する方法

自分のプロジェクトはstatefulsetを使ってpodを管理しています。
最近statefulsetのロールアウト履歴を確認する必要があったので調査してみました。
まず確認用コマンドです↓
kubectl rollout history statefulset [statefulsetの名前]
実行例↓
kubectl rollout history statefulset web-front
statefulset.apps/web-front
REVISION
0
0
0
0
0
0
0
0
0
0
0
0
45
46
47
48
49
50
51
52
53
54
55
56