我正在使用https://hub.docker.com/r/redislabs/rejson/
apiVersion: v1
kind: Service
metadata:
name: redis
spec:
ports:
- port: 6379
name: redis
clusterIP: None
selector:
app: redis
---
apiVersion: apps/v1beta2
kind: StatefulSet
metadata:
name: redis
spec:
selector:
matchLabels:
app: redis
serviceName: redis
replicas: 1
template:
metadata:
labels:
app: redis
spec:
containers:
- name: redis
image: redislabs/rejson
args: ["--requirepass", "pass", "--appendonly", "yes", "--save", "900", "1", "--save", "30", "2"]
ports:
- containerPort: 6379
name: redis
volumeMounts:
- name: redis-volume
mountPath: /data
volumeClaimTemplates:
- metadata:
name: redis-volume
spec:
accessModes: [ "ReadWriteOnce" ]
resources:
requests:
storage: 1Gi
我正在将arg传递给kubernetes配置,用于使用"--appendonly", "yes"
的persistenseense数据存储
如果我没有传递arg,它将与
一起运行`redis-cli:6379 > JSON.SET foo . '"bar"'`
OK
如果我将arg传递给kubernetes配置,它将生成错误并且Redis中的json模块不起作用
`redis-cli:6379 > JSON.SET foo . '"bar"'`
(error) ERR unknown command `JSON.SET`, with args beginning with: `foo`, `.`, `"bar"`,
我正在关注:https://estl.tech/deploying-redis-with-persistence-on-google-kubernetes-engine-c1d60f70a043
答案 0 :(得分:3)
redislabs/rejson
图像还需要具有loadmodule
开关作为CMD参数-这应该起作用:
...
args: ["--requirepass", "pass", "--appendonly", "yes", "--save", "900", "1", "--save", "30", "2", "--loadmodule", "/usr/lib/redis/modules/rejson.so"]
...