我已经使用作为pod部署在kubernetes上的.yaml清单文件成功地将redis-slaves与Kubernetes上的redis-master连接起来。
但是当我尝试连接redis-sentinel到主机时,它给出连接被拒绝“无法连接到Redis在127.0.0.1:26379:连接被拒绝不是connected>”
下面是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: 6379Redis-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清单文件哪里错了吗?
发布于 2019-11-20 17:21:41
在部署Redis-sentinel时,您需要考虑一些在您的特定用例中可能出错的事情:
sentinel.conf和Redis配置文件- redis.conf。在运行Sentinel时,必须使用配置文件,因为系统将使用该文件来保存在重启时重新加载的当前状态。如果没有提供配置文件或者配置文件路径不可写,则Sentinel将拒绝启动。您可以在上面的一些信息here中找到更多信息。
如果有帮助,请让我知道。
发布于 2020-04-27 21:31:18
我只是假设您正在尝试从外部连接到pod。您正在连接到Kubernetes环境中不存在的127.0.0.1。您需要连接到Pod的IP,您只需运行以下命令即可
kubectl describe pod
或者,您可以创建一个服务,并在标记中使用该服务的名称作为环境变量。
发布于 2021-01-26 19:21:59
你不能这样连接它。您必须检查Kubernetes上的服务。您可以看到Redis服务的IP地址。您必须使用IP地址进行连接
https://stackoverflow.com/questions/58818798
复制相似问题