2017-07-18 11 views
0

Kubernetes内に着火クラスタを配置すると、クラスタメンバーがグループに参加できないという問題が発生します。私がreadinessProbeとlivenessProbeを使用すると、たとえ10秒という遅れであっても、ノードは決して互いに結合しません。私がそれらのプローブを取り除くと、彼らはお互いをうまく見つけます。Ignite ReadinessProbe

私の質問は次のとおりです。これらのプローブを使用してノードの正常性を監視し、適切な場合は適切な設定を調べることができます。それに加えて、Igniteの健全な健康診断は、とにかく何が良いでしょうか?

+1

私はそれがこれらのプローブでこれまでにテストされたとは思っていません。あなたの設定や、あなたが何をやっているのか、何が期待どおりに動かないのかを明確にするために必要な情報を提供できますか? –

+0

これはapacheignite/ignite:2.0.0から作成された独自仕様の画像ですので、あまり詳しく説明することはできませんが、それは点火コンテナのクラスタで、いくつかのキャッシュが前面にカサンドラリング。発見のためのサービスは、いくつかの値を除いて、ドキュメントで提供されているものの逐語的なコピーです。私は発見ステップが、readlinessProbeの初期遅延のために自分自身を見ることさえできないという事実によって妨害されると仮定することしかできないので、それは奇妙な状態になります。 – CyrusK

+0

初期遅延を0に落としても、それでも干渉します。 – CyrusK

答えて

0

更新:

After posting on the ignite mailing list, it looks like StatefulSets are the way to go. (Thanks Dmitry!)

私は自己癒すうまくいけば、それは多くの場合、トリガされませんが、任意のセグメンテーション問題に以下のロジックに残すつもりだと思います。

オリジナルの答え:

我々は同じ問題を抱えていると私は、我々は可能な解決策を持っていると思います。 Kubernetesの発見スパイは、準備が整うとサービスをリストします。

起動時に準備ポッドが存在しない場合、インスタンスを起動するとすべてが最初のものであると考えられ、独自のグリッドを作成することを意味します。

「正式な」グリッドに含まれていないポッドに失敗するという決定的なやり方がある場合、クラスタは自己修復することができます。

これを行うために、TcpDiscoveryKubernetesIpFinderを参照して定期的に着火ポッドのリストを確認します。

インスタンスがリストのアルファベット順の最初のIPを含まないクラスタの一部である場合、セグメントトポロジがあることがわかります。その状態に入るポッドを殺すと、サービスリストを見て正しいトポロジに参加する必要があります。