mirror of
https://github.com/marcel-dempers/docker-development-youtube-series.git
synced 2025-06-06 17:01:30 +00:00
86 lines
1.9 KiB
YAML
86 lines
1.9 KiB
YAML
---
|
|
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
name: redis-cluster
|
|
data:
|
|
update-node.sh: |
|
|
#!/bin/sh
|
|
REDIS_NODES="/data/nodes.conf"
|
|
sed -i -e "/myself/ s/[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}/${POD_IP}/" ${REDIS_NODES}
|
|
exec "$@"
|
|
redis.conf: |+
|
|
cluster-enabled yes
|
|
cluster-require-full-coverage no
|
|
cluster-node-timeout 15000
|
|
cluster-config-file /data/nodes.conf
|
|
cluster-migration-barrier 1
|
|
appendonly yes
|
|
protected-mode no
|
|
---
|
|
apiVersion: apps/v1
|
|
kind: StatefulSet
|
|
metadata:
|
|
name: redis-cluster
|
|
spec:
|
|
serviceName: redis-cluster
|
|
replicas: 6
|
|
selector:
|
|
matchLabels:
|
|
app: redis-cluster
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: redis-cluster
|
|
spec:
|
|
containers:
|
|
- name: redis
|
|
image: redis:5.0.1-alpine
|
|
ports:
|
|
- containerPort: 6379
|
|
name: client
|
|
- containerPort: 16379
|
|
name: gossip
|
|
command: ["/conf/update-node.sh", "redis-server", "/conf/redis.conf"]
|
|
env:
|
|
- name: POD_IP
|
|
valueFrom:
|
|
fieldRef:
|
|
fieldPath: status.podIP
|
|
volumeMounts:
|
|
- name: conf
|
|
mountPath: /conf
|
|
readOnly: false
|
|
- name: data
|
|
mountPath: /data
|
|
readOnly: false
|
|
volumes:
|
|
- name: conf
|
|
configMap:
|
|
name: redis-cluster
|
|
defaultMode: 0755
|
|
volumeClaimTemplates:
|
|
- metadata:
|
|
name: data
|
|
spec:
|
|
accessModes: [ "ReadWriteOnce" ]
|
|
storageClassName: "hostpath"
|
|
resources:
|
|
requests:
|
|
storage: 50Mi
|
|
---
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
name: redis-cluster
|
|
spec:
|
|
type: ClusterIP
|
|
ports:
|
|
- port: 6379
|
|
targetPort: 6379
|
|
name: client
|
|
- port: 16379
|
|
targetPort: 16379
|
|
name: gossip
|
|
selector:
|
|
app: redis-cluster |