mirror of
https://github.com/marcel-dempers/docker-development-youtube-series.git
synced 2025-06-06 17:01:30 +00:00
add files
This commit is contained in:
parent
09223e2dcb
commit
02db1d7098
32
kubernetes/statefulsets/example-app.yaml
Normal file
32
kubernetes/statefulsets/example-app.yaml
Normal file
@ -0,0 +1,32 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: hit-counter-lb
|
||||
spec:
|
||||
type: LoadBalancer
|
||||
ports:
|
||||
- port: 80
|
||||
protocol: TCP
|
||||
targetPort: 5000
|
||||
selector:
|
||||
app: myapp
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: hit-counter-app
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: myapp
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: myapp
|
||||
spec:
|
||||
containers:
|
||||
- name: myapp
|
||||
image: calinrus/api-redis-ha:1.0
|
||||
ports:
|
||||
- containerPort: 5000
|
9
kubernetes/statefulsets/notes.sh
Normal file
9
kubernetes/statefulsets/notes.sh
Normal file
@ -0,0 +1,9 @@
|
||||
|
||||
|
||||
# Enable Redis Cluster
|
||||
$IPs = $(kubectl -n example get pods -l app=redis-cluster -o jsonpath='{range.items[*]}{.status.podIP}:6379 ')
|
||||
kubectl -n example exec -it redis-cluster-1 -- /bin/sh -c "redis-cli -h 127.0.0.1 -p 6379 --cluster create ${IPs}"
|
||||
kubectl -n example exec -it redis-cluster-0 -- /bin/sh -c "redis-cli -h 127.0.0.1 -p 6379 cluster info"
|
||||
|
||||
# More info
|
||||
https://rancher.com/blog/2019/deploying-redis-cluster
|
86
kubernetes/statefulsets/statefulset.yaml
Normal file
86
kubernetes/statefulsets/statefulset.yaml
Normal file
@ -0,0 +1,86 @@
|
||||
---
|
||||
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
|
Loading…
x
Reference in New Issue
Block a user