2017-07-12 14 views
0

Kubernetesでredis clusterをセットアップしようとしています。私の要件の1つは、(電源障害のような問題のため)クラスタ再起動の場合、私のredisクラスタは復元力がなければならないということです。Redis cluster on kubernetes

私はKubernetes statefulsetと展開を試みました。
ステートフルセットの場合、再起動時に新しいIPアドレスセットがポッドに割り当てられ、redisクラスタはIPアドレスで動作するため、他のredisインスタンスおよびフォームクラスタに再度接続することはできません。
静的IPを個々のredisインスタンスに配備するサービスの場合、スタティックサービスのIPアドレスを使用してクラスタを作成した場合でも、rediはPodのIPを格納するため、再起動時に他のredisインスタンスおよびフォームクラスタに再度接続することはできません。

My redis-cluster statefulset config
My redis-cluster deployment config

答えて

1

Redis-4.0.0 Redisの上でサービスの静的IPとしてcluster announce node IP and Port

設定cluster-announce-ipのサポートを追加することで、この問題を解決した:私はstatefulset内の個々のノードにトラフィックをルーティングする好ましい方法であると思いますインスタンスkubernetesの展開。

設定手順へのリンク:https://github.com/zuxqoj/kubernetes-redis-cluster/blob/master/README-using-statefulset.md

0

あなたは、IPアドレスの代わりにDNS名を使用することができますか?

https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#stable-network-id

+0

ありがとう@pnovotnak。私は、DNS名を使用してクラスタを作成しており、サービスを呼び出すためにDNS名を使用していますが、redisは内部的にクラスタ構成用のポッドのIPアドレスを維持し、この情報をnodes.conf – banjara

関連する問題