我已经使用部署在kubernetes上的pod的.yaml清单文件成功地将redis-slaves与Kubernetes上的redis-master连接了。
但是当我尝试将redis-sentinel连接到master时,它拒绝连接“无法在127.0.0.1:26379上连接到Redis:连接拒绝未连接>”
以下是redis主,从和定点清单文件:
Redis-Master.yaml
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
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
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清单文件在哪里出问题吗?
部署Redis-sentinel时,您需要考虑的一些事情在您的特定用例中可能会出错:
检查防火墙规则。确保服务器的端口26379已打开。默认情况下,Sentinels运行以侦听与TCP端口26379的连接。否则,Sentinels无法交谈,也不能同意该怎么做。
检查Sentinel配置文件-sentinel.conf
和Redis配置文件-redis.conf
。在运行Sentinel时必须使用配置文件,因为系统将使用此文件来保存当前状态,以便在重启时重新加载。如果未提供配置文件或配置文件路径不可写,Sentinel只会拒绝启动。
您至少需要三个 Sentinel实例才能进行可靠的部署。
您可以找到有关上述某些信息here的更多信息。
请让我知道是否有帮助。