k8s_redis_cluster_2
クバネティス(Kubernetes) 環境で Redis-Cluster 構築 実戦ガイド ②
構築(ポッド(Pod) 生成)
1. YAML ファイルの順次適用(生成)
1) Config 生成
2) Service 生成
3) Statefulset 生成
ここまで単独(standalone) Redis 6個が実行された状態です。まだ Redis クラスタは構成されていません。
2. Redis-Cluster 構成
1) Redis-Cluster 構成スクリプトの作成、実行
'cluster_create.sh' を実行すると Master 3個、Replica 3個で Redis-Cluster が構成(生成)されます。
🧑💻 主な内容の説明
- VM では IP:Port を書きますが、クバネティス(Kubernetes)では次のように書きます。
redis-cluster-0.${SERVICE_NAME}.${NAMESPACE}.svc.cluster.local:${PORT}
redis-cluster-0~5 まですべて書きます。 - --cluster-replicas 1 # Master 1 -> Replica 1 に設定します。
- --cluster-yes # このオプションを使うと、次の質問に自動で 'yes' と答えます。
Can I set the above configuration? (type 'yes' to accept): yes
このオプションなしで実行すると 'yes' を入力する必要があります。
🖧 Redis クラスタ構成(生成)過程
📍 3個の Master にスロットが均等に割り当てられました。
Master[0] -> Slots 0 - 5460
Master[1] -> Slots 5461 - 10922
Master[2] -> Slots 10923 - 16383
📍 Replica -> Master 関係の設定
Adding replica redis-cluster-4 to redis-cluster-0
Adding replica redis-cluster-5 to redis-cluster-1
Adding replica redis-cluster-3 to redis-cluster-2
📍 OK 成功! すべてのスロットが割り当てられました。
[OK] All 16384 slots covered.
内容をすべて見る
2) cluster info 照会
3) cluster nodes 照会
便宜上、ノード(Node)順に表示しました。実際はランダムに出ます。
nodes.conf ファイルの内容と同じです。
3. 🖧 Redis-Cluster ポッド(Pod) ダイアグラム
4. 💽 データ入力
Failover(障害対応)テストをしようとして Redis-0 ポッド(Pod)をダウン(削除)すると、2秒以内に redis-0 ポッド(Pod)が復活します。 cluster-node-timeout が3秒なので Redis-0 のダウンを検知できません。 そこでデータを約1千万件入力して、5秒以上かかるようにします。
1) データ入力の確認
① 各ノード(Node)のキー確認: dbsize
② AOF ファイルサイズの確認
③ メモリ確認
➡ ポッド(Pod)も生成し、データも入力したので、Failover(障害対応)テストに行きましょう。
| << K8s Redis-Cluster 準備 ① | K8s Redis-Cluster テスト ③ >> |
|---|
