docker部署redis集群 redis集群適合放到docker上嗎?如果是k8s集群,持久化數(shù)據(jù)怎么辦?
redis集群適合放到docker上嗎?如果是k8s集群,持久化數(shù)據(jù)怎么辦?您可以使用動(dòng)態(tài)持久存儲(chǔ),如CEPH或glusterfs我不知道Eureka是什么,但我理解您描述的問題。讓我告訴你一些類似于
redis集群適合放到docker上嗎?如果是k8s集群,持久化數(shù)據(jù)怎么辦?
您可以使用動(dòng)態(tài)持久存儲(chǔ),如CEPH或glusterfs
我不知道Eureka是什么,但我理解您描述的問題。讓我告訴你一些類似于redis的東西,希望能給你帶來一些想法。
在redis4.0之前,在docker中構(gòu)建redis群集不支持natted環(huán)境。Redis集群具有碎片化的概念,即一個(gè)密鑰的數(shù)據(jù)按照碎片化規(guī)則落在不同的節(jié)點(diǎn)上。當(dāng)您訪問落在節(jié)點(diǎn)B上的密鑰時(shí),redis server會(huì)返回move,但是在docker中,我們使用私有IP地址和端口來映射容器,所以redis server返回給redis客戶端的移動(dòng)信息是B節(jié)點(diǎn)的私有IP地址和B節(jié)點(diǎn)所在容器的映射端口。因此,redis客戶端無法訪問B節(jié)點(diǎn)的私有IP地址和端口。
在redis 4.0之前,我們?cè)赿ocker中構(gòu)建了一個(gè)redis集群。我們使用了--net主機(jī)網(wǎng)絡(luò)模式。redis4.0之后,正式提供了natted環(huán)境下IP地址和端口的映射。
解決方案1:運(yùn)行容器時(shí)設(shè)置--net host,使容器可以直接使用主機(jī)的IP和端口,但每個(gè)容器的Eureka對(duì)應(yīng)的配置端口應(yīng)該設(shè)置為不同的,否則會(huì)出現(xiàn)端口沖突。
解決方案2:配置Eureka時(shí),將容器和主機(jī)的專用IP地址和端口之間的映射關(guān)系寫入Eureka配置。