Google Container Engine(GKE-Kubernetes)上的Redis集群

时间:2018-07-18 04:44:00

标签: java google-kubernetes-engine redis-cluster

我在Kubernetes(Google容器引擎)上设置了redis-cluster。引用自:https://github.com/zuxqoj/kubernetes-redis-cluster/blob/master/README-using-statefulset.md

因此,当前状态是,在Kubernetes Cluster的单个节点下有6个Pod,其中3个Pod作为主节点,3个Pod作为从节点。已经将所有Pod放入Redis集群,并且一切正常。

但是,当我尝试关闭一个主/从Pod时,kubernetes会自动启动一个具有新IP的新Pod。并且新IP将在其自身节点配置以外的所有其他Pod节点配置中自动更新。 有什么我想念的吗?

我正在使用Redis 4.0.0

Redis Cluster Yaml:https://drive.google.com/open?id=1oSQzYu-pAJmehaAfU_HdIa3qAJBx1n5C

2 个答案:

答案 0 :(得分:1)

尝试使用DNS主机名代替IP地址。

请参阅可以做到的头盔图表:

答案 1 :(得分:0)

您需要在nodes.conf中更新新容器的IP。 您可以通过在Pod的初始化中运行此脚本来做到这一点。

#!/bin/sh

set -e

REDIS_NODES_FILE="/data/nodes.conf"

if [ -f ${REDIS_NODES_FILE} ]; then
  if [ -z "${POD_IP}" ]; then
    echo "Unable to determine Pod IP address!"
    exit 1
  fi
  echo "Updating my IP to ${POD_IP}"
  sed -i.bak -e "/myself/ s/[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}/${POD_IP}/" ${REDIS_NODES_FILE}
fi

来自: https://github.com/antirez/redis/issues/5417