我已经解决了这个问题,并使用此状态集yaml创建了redis集群。问题是我没有在持久卷中装入 文件。群集配置文件包含其他节点的位置。现在,群集配置文件将在Pod重新启动后持续存在。
由于redis集群适用于八卦协议。它只需要一个活动节点即可获得整个集群的配置。
现在,有状态集的最终配置为:
apiVersion: apps/v1
kind: StatefulSet
Metadata:
generation: 1
labels:
app: demo-app
name: demo-app
namespace: default
spec:
podManagementPolicy: OrderedReady
replicas: 6
revisionHistoryLimit: 10
selector:
matchLabels:
app: demo-app
serviceName: ""
template:
Metadata:
creationTimestamp: null
labels:
app: demo-app
spec:
containers:
- command:
- redis-server
- --port 6379
- --cluster-enabled yes
- --cluster-node-timeout 5000
- --appendonly yes
- --cluster-config-file /var/cluster-config.conf
- --appendfilename appendonly-6379.aof
image: redis
imagePullPolicy: Always
name: demo-app
resources: {}
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- name: redis-pvc
mountPath: /var
- image: Nginx:1.12
imagePullPolicy: IfNotPresent
name: redis-exporter
resources: {}
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
updateStrategy:
rollingUpdate:
partition: 0
type: RollingUpdate
volumeClaimTemplates:
- Metadata:
name: redis-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
我所做的唯一更改是在启动redis-server时添加了 参数。