kubernetes - Redis Cluster K8s - 复制密码
问题描述
我正在尝试让我的 redis 集群启动并运行,但我无法为我的客户端正确设置密码身份验证。一旦我使用--requirepass
复制设置密码就不再起作用了。所以我用谷歌搜索发现redis使用单独的密码进行复制。这可以使用 进行设置masterauth
,另请参阅:https ://redis.io/topics/replication 。所以我也尝试过,--masterauth
但没有成功。有人知道是否--masterauth
可以用作参数我可以redis-server
在启动时传递给命令,因为文档没有直接引用它。在提到 helm 之前,请注意我的整个部署是使用设置的kustomize.io
,helm
目前不是我首选的方式。
我也尝试过这样的事情,但没有成功。
这就是我的 redis-cluster.yaml 的样子:
apiVersion: v1
kind: Service
metadata:
name: redis
spec:
type: LoadBalancer
ports:
- protocol: TCP
port: 6379
targetPort: 6379
name: redis
selector:
name: redis
---
apiVersion: v1
kind: Service
metadata:
name: redis-slave
spec:
type: LoadBalancer
ports:
- protocol: TCP
port: 6379
targetPort: 6379
name: redis
selector:
name: redis-slave
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: redis
labels:
name: redis
spec:
replicas: 1
selector:
matchLabels:
name: redis
template:
metadata:
labels:
name: redis
spec:
subdomain:
containers:
- name: redis
image: redis:6.0.9-alpine
command:
- redis-server
args:
- "--protected-mode"
- "no"
ports:
- containerPort: 6379
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: redis-slave
labels:
name: redis-slave
spec:
replicas: 2
selector:
matchLabels:
name: redis-slave
template:
metadata:
labels:
name: redis-slave
spec:
subdomain: redis-slave
containers:
- name: redis
image: redis:6.0.9-alpine
command:
- "redis-server"
args:
- "--slaveof"
- "redis.default.svc.cluster.local"
- "6379"
- "--protected-mode"
- "no"
ports:
- containerPort: 6379
解决方案
在 redis 容器上配置密码有两种方式:
- 快速实施:
containers:
- args:
- -c
- |-
echo -e 'maxmemory 183500800
maxmemory-policy allkeys-lru
stop-writes-on-bgsave-error no
slaveof redis-master.default.svc.cluster.local
requirepass YOUR_PASSWORD
masterauth MASTER_PASSWORD' | docker-entrypoint.sh -
command:
- /bin/sh
image: redis:6.0.9-alpine
name: redis-slave
- 更好的做法:
- 为每个部署使用 ConfigMap,安装在 上,具有特定配置并在没有or
/etc/redis/redis.conf
的情况下运行容器。args
command
更多 Redis 6.0 配置参数和文档可以在这里找到:https ://raw.githubusercontent.com/redis/redis/6.0/redis.conf
推荐阅读
- python - 用一个 numpy 数组中的所有零替换
- swift - 为什么模型中存在的数据不能在 UILabel 中显示
- r - 在 highcharter 向下钻取 barplot 中获取第一列和第二列名称
- machine-learning - 单 GPU 上的 Transformer 模型微调
- python - Pandas:从长到宽的数据帧的分组和自定义转换
- java - 通过 JDBC 语句执行 DDL 删除模式的 Spring Boot 错误
- blender - 如何使用 Python 搅拌器从另一个具有相同骨骼名称的骨架复制旋转约束
- postgresql - Postgres SQL:要命名的行,值 json 对
- angular - AngularJS:所选选项不起作用
- amazon-web-services - 更改已在运行的 Amazon MQ 代理的子网