9.4.2. Cassandra コンポーネントのスケーリング
Cassandra ノードは永続ストレージを使用します。そのため、レプリケーションコントローラーでスケールアップまたはスケールダウンを実行できません。
Cassandra クラスターのスケーリングには、openshift_metrics_cassandra_replicas
変数を変更して、デプロイメント を再実行する必要があります。デフォルトでは Cassandra クラスターは単一ノードのクラスターとなっています。
OpenShift Container Platform メトリクスの hawkular Pod を 2 つのレプリカにスケールアップするには、以下を実行します。
# oc scale -n openshift-infra --replicas=2 rc hawkular-metrics
または、インベントリーファイルを更新して、デプロイメント を再実行します。
Cassandra クラスターに対して、新規ノードを追加したり、既存のノードを削除した場合は、クラスターに保存したデータの負荷がクラスター全体で再度分散されます。
スケールダウンの方法:
コンテナーにリモートからアクセスする場合は、削除する Cassandra ノードに対して以下を実行します。
$ oc exec -it <hawkular-cassandra-pod> nodetool decommission
コンテナーにローカルでアクセスする場合には、代わりに以下を実行します。
$ oc rsh <hawkular-cassandra-pod> nodetool decommission
このコマンドは、クラスター全体のデータをコピーするので、実行にしばらく時間がかかります。停止の進捗状況は
nodetool netstats -H
でモニターリングできます。先のコマンドに成功すると、Cassandra インスタンスの
rc
を0
にスケールダウンします。# oc scale -n openshift-infra --replicas=0 rc <hawkular-cassandra-rc>
これで Cassandra Pod が削除されます。
スケールダウンプロセスが完了し、既存の Cassandra ノードが予想どおりに機能する場合には、この Cassandra インスタンスと対応する Persistent Volume Claim (PVC、永続ボリューム要求) の rc
も削除できます。PVC を削除すると、この Cassandra インスタンスに関連付けられているデータが完全に削除されるので、スケールダウンが完全かつ正常に完了しなかった場合に、失われたデータを復元することはできません。