首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Kubernetes上将redis-sentinel连接到redis-master

在Kubernetes上将redis-sentinel连接到redis-master
EN

Stack Overflow用户
提问于 2019-11-12 20:29:48
回答 3查看 1.1K关注 0票数 0

我已经使用作为pod部署在kubernetes上的.yaml清单文件成功地将redis-slaves与Kubernetes上的redis-master连接起来。

但是当我尝试连接redis-sentinel到主机时,它给出连接被拒绝“无法连接到Redis在127.0.0.1:26379:连接被拒绝不是connected>”

下面是redis的主、从和前哨清单文件:

Redis-Master.yaml

代码语言:javascript
复制
kind: Deployment
metadata:
  labels:
    name: redis
    redis-sentinel: "true"
    role: master
  name: redis-master
spec:
  selector:
    matchLabels:
      app: redis
      role: master
      tier: backend
  replicas: 1
  template:
    metadata:
      labels:
        app: redis
        role: master
        tier: backend
    spec:
      containers:
      - name: master
        image: k8s.gcr.io/redis:e2e  # or just image: redis
        env:
          - name: MASTER
            value: "true"
        resources:
          requests:
            cpu: 100m
            memory: 100Mi
        ports:
        - containerPort: 6379

Redis-Slave.yaml

代码语言:javascript
复制
apiVersion: apps/v1
kind: Deployment
metadata:
  name: redis-slave
  labels:
    app: redis
    role: slave
    tier: backend
spec:
  strategy:
    type: RollingUpdate
  replicas: 3
  selector:
    matchLabels:
      app: redis
      role: slave
      tier: backend
  template:
    metadata:
      labels:
        app: redis
        role: slave
        tier: backend
    spec:
      containers:
        - name: slave
          image: gcr.io/google_samples/gb-redisslave:v3
          ports:
            - name: redis-server
              containerPort: 6379
          env:
            - name: ALLOW_EMPTY_PASSWORD
              value: "yes"
            - name: REDIS_REPLICATION_MODE
              value: slave
            - name: REDIS_MASTER_HOST
              value: redis-master
            - name: REDIS_MASTER_PORT_NUMBER
              value: "6379"

Redis-sentinel

代码语言:javascript
复制
apiVersion: apps/v1
kind: Deployment
metadata:
  name: redis-sentinel
  labels:
    app: redis
    role: sentinel  
    tier: backend
spec:
  strategy:
    type: RollingUpdate
  replicas: 3
  selector:
    matchLabels:
      app: redis
      role: sentinel
      tier: backend
  template:
    metadata:
      labels:
        name: redis-sentinel
        redis-sentinel: "true"
        app: redis
        role: sentinel
        tier: backend
    spec:
      containers:
        - name: sentinel
          image: gcr.io/google_samples/gb-redisslave:v3
          ports:
            - name: redis-sentinel
              containerPort: 26379
          env:
            - name: ALLOW_EMPTY_PASSWORD
              value: "yes"
            - name: REDIS_REPLICATION_MODE
              value: sentinel
            - name: REDIS_MASTER_HOST
              value: redis-master
            - name: REDIS_MASTER_PORT_NUMBER
              value: "6379"   

你能告诉我redis-sentinel清单文件哪里错了吗?

EN

回答 3

Stack Overflow用户

发布于 2019-11-20 17:21:41

在部署Redis-sentinel时,您需要考虑一些在您的特定用例中可能出错的事情:

  1. 检查防火墙规则。确保您的服务器的端口26379已打开。默认情况下,Sentinels运行侦听TCP端口26379的连接。
  2. 检查你的前哨配置文件- sentinel.conf和Redis配置文件- redis.conf。在运行Sentinel时,必须使用配置文件,因为系统将使用该文件来保存在重启时重新加载的当前状态。如果没有提供配置文件或者配置文件路径不可写,则Sentinel将拒绝启动。
  3. 您至少需要3个 Sentinel实例才能进行可靠的部署。

您可以在上面的一些信息here中找到更多信息。

如果有帮助,请让我知道。

票数 0
EN

Stack Overflow用户

发布于 2020-04-27 21:31:18

我只是假设您正在尝试从外部连接到pod。您正在连接到Kubernetes环境中不存在的127.0.0.1。您需要连接到Pod的IP,您只需运行以下命令即可

kubectl describe pod

或者,您可以创建一个服务,并在标记中使用该服务的名称作为环境变量。

票数 0
EN

Stack Overflow用户

发布于 2021-01-26 19:21:59

你不能这样连接它。您必须检查Kubernetes上的服务。您可以看到Redis服务的IP地址。您必须使用IP地址进行连接

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58818798

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档