コンテキスト:
Cassandraクラスタがあり、3つのノードがOpenshiftのステートフルセットとしてデプロイされています。3つのノードは同じデータセンター、同じラックに構成されています。
また、Cassandra整合性レベルのエラーをテストするスクリプトを作成しました。これはOpenshift内のポッドとして実行され、クラスターに接続して選択クエリをループで実行します。すべてのIPアドレスを知っています。 Cassandraノード。
問題:
ステートフルセット(そのノードでnodetool drain
も実行する)でレプリカの数を3から2に減らすと、スクリプトはクラスターに接続できなくなります。次のエラーが発生します。
cassandra.cluster.NoHostAvailable:( 'Unable to connect to any servers'、{'172.17.0.10':OSError(None、 "Tried connections to [( '172.17.0.10'、9042)]。Last error:timed out") 、 '172.17.0.9':AuthenticationFailed( 'Failed to authentication to 172.17.0.9:Err or from server:code = 0100 [Bad credentials] message = "Error during authentication of user admin:org.Apache.cassandra.excepti ons.UnavailableException :整合性レベルLOCAL_ONE "'、)、' 172.17.0.8 'を達成できません:ConnectionRefusedError(111、" Tried co nnecting to [(' 172.17.0.8 '、9042)]。最後のエラー:Connection refused ")、' 172.17.0.11 ':AuthenticationFailed(' Failed to authenticate to 172.17.0.11:Error from server:code = 0100 [Bad credentials] message = "Error during authentication of user admin:org.Apache.cassandra.exceptions.UnavailableException:Ca n'tないし整合性レベルLOCAL_ONE" '、)})
質問:
2つのノードがまだ利用可能であるため、認証でLOCAL_ONE整合性レベルを取得できないのはなぜですか、またどうすれば問題を解決できますか?
クラスターを作成したとき-system_auth
キースペースのレプリケーション係数を変更しましたか?そうでない場合は、そのノードを元に戻し、その複製係数を3に変更する必要があります。
詳細な手順 こちら を参照してください。