瀏覽代碼

redis master-slave

Dotbalo 6 年之前
父節點
當前提交
b0a6ecf3c4

+ 5 - 0
redis/redis-master-slaves/README.md

@@ -0,0 +1,5 @@
+````
+  此yaml为Redis哨兵模式,用于简单部署持久化Redis Sentinel
+  使用方法:
+
+````

+ 103 - 0
redis/redis-master-slaves/redis-sentinel-configmap.yaml

@@ -0,0 +1,103 @@
+kind: ConfigMap
+apiVersion: v1
+metadata:
+  name: redis-sentinel-config
+  namespace: public-service
+  labels:
+    addonmanager.kubernetes.io/mode: Reconcile
+data:
+    redis-master.conf: |
+      port 6379
+      tcp-backlog 511
+      timeout 0
+      tcp-keepalive 0
+      loglevel notice
+      databases 16
+      save 900 1
+      save 300 10
+      save 60 10000
+      stop-writes-on-bgsave-error yes
+      rdbcompression yes
+      rdbchecksum yes
+      dbfilename dump.rdb
+      dir /data/
+      slave-serve-stale-data yes
+      slave-read-only yes
+      repl-diskless-sync no
+      repl-diskless-sync-delay 5
+      repl-disable-tcp-nodelay no
+      slave-priority 100
+      appendonly no
+      appendfilename "appendonly.aof"
+      appendfsync everysec
+      no-appendfsync-on-rewrite no
+      auto-aof-rewrite-percentage 100
+      auto-aof-rewrite-min-size 64mb
+      aof-load-truncated yes
+      lua-time-limit 5000
+      slowlog-log-slower-than 10000
+      slowlog-max-len 128
+      latency-monitor-threshold 0
+      notify-keyspace-events ""
+      hash-max-ziplist-entries 512
+      hash-max-ziplist-value 64
+      list-max-ziplist-entries 512
+      list-max-ziplist-value 64
+      set-max-intset-entries 512
+      zset-max-ziplist-entries 128
+      zset-max-ziplist-value 64
+      hll-sparse-max-bytes 3000
+      activerehashing yes
+      client-output-buffer-limit normal 0 0 0
+      client-output-buffer-limit slave 256mb 64mb 60
+      client-output-buffer-limit pubsub 64mb 16mb 60
+      hz 10
+      aof-rewrite-incremental-fsync yes
+    redis-slave.conf: |
+      port 6379
+      slaveof redis-sentinel-master-ss-0.redis-sentinel-master-ss.public-service.svc.cluster.local 6379
+      tcp-backlog 511
+      timeout 0
+      tcp-keepalive 0
+      loglevel notice
+      databases 16
+      save 900 1
+      save 300 10
+      save 60 10000
+      stop-writes-on-bgsave-error yes
+      rdbcompression yes
+      rdbchecksum yes
+      dbfilename dump.rdb
+      dir /data/
+      slave-serve-stale-data yes
+      slave-read-only yes
+      repl-diskless-sync no
+      repl-diskless-sync-delay 5
+      repl-disable-tcp-nodelay no
+      slave-priority 100
+      appendonly no
+      appendfilename "appendonly.aof"
+      appendfsync everysec
+      no-appendfsync-on-rewrite no
+      auto-aof-rewrite-percentage 100
+      auto-aof-rewrite-min-size 64mb
+      aof-load-truncated yes
+      lua-time-limit 5000
+      slowlog-log-slower-than 10000
+      slowlog-max-len 128
+      latency-monitor-threshold 0
+      notify-keyspace-events ""
+      hash-max-ziplist-entries 512
+      hash-max-ziplist-value 64
+      list-max-ziplist-entries 512
+      list-max-ziplist-value 64
+      set-max-intset-entries 512
+      zset-max-ziplist-entries 128
+      zset-max-ziplist-value 64
+      hll-sparse-max-bytes 3000
+      activerehashing yes
+      client-output-buffer-limit normal 0 0 0
+      client-output-buffer-limit slave 256mb 64mb 60
+      client-output-buffer-limit pubsub 64mb 16mb 60
+      hz 10
+      aof-rewrite-incremental-fsync yes

+ 56 - 0
redis/redis-master-slaves/redis-sentinel-pv.yaml

@@ -0,0 +1,56 @@
+apiVersion: v1
+kind: PersistentVolume
+metadata:
+  name: pv-redis-sentinel-0
+spec:
+  capacity:
+    storage: 4Gi
+  accessModes:
+    - ReadWriteMany
+  volumeMode: Filesystem
+  persistentVolumeReclaimPolicy: Recycle
+  storageClassName: "redis-sentinel-storage-class"
+  nfs:
+    # real share directory
+    path: /k8s/redis-sentinel/0
+    # nfs real ip
+    server: 192.168.2.2
+
+---
+apiVersion: v1
+kind: PersistentVolume
+metadata:
+  name: pv-redis-sentinel-1
+spec:
+  capacity:
+    storage: 4Gi
+  accessModes:
+    - ReadWriteMany
+  volumeMode: Filesystem
+  persistentVolumeReclaimPolicy: Recycle
+  storageClassName: "redis-sentinel-storage-class"
+  nfs:
+    # real share directory
+    path: /k8s/redis-sentinel/1
+    # nfs real ip
+    server: 192.168.2.2
+
+---
+
+apiVersion: v1
+kind: PersistentVolume
+metadata:
+  name: pv-redis-sentinel-2
+spec:
+  capacity:
+    storage: 4Gi
+  accessModes:
+    - ReadWriteMany
+  volumeMode: Filesystem
+  persistentVolumeReclaimPolicy: Recycle
+  storageClassName: "redis-sentinel-storage-class"
+  nfs:
+    # real share directory
+    path: /k8s/redis-sentinel/2
+    # nfs real ip
+    server: 192.168.2.2

+ 32 - 0
redis/redis-master-slaves/redis-sentinel-rbac.yaml

@@ -0,0 +1,32 @@
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+  name: redis-sentinel
+  namespace: public-service
+---
+kind: Role
+apiVersion: rbac.authorization.k8s.io/v1beta1
+metadata:
+  name: redis-sentinel
+  namespace: public-service
+rules:
+  - apiGroups:
+      - ""
+    resources:
+      - endpoints
+    verbs:
+      - get
+---
+kind: RoleBinding
+apiVersion: rbac.authorization.k8s.io/v1beta1
+metadata:
+  name: redis-sentinel
+  namespace: public-service
+roleRef:
+  apiGroup: rbac.authorization.k8s.io
+  kind: Role
+  name: redis-sentinel
+subjects:
+- kind: ServiceAccount
+  name: redis-sentinel
+  namespace: public-service

+ 15 - 0
redis/redis-master-slaves/redis-sentinel-service.yaml

@@ -0,0 +1,15 @@
+kind: Service
+apiVersion: v1
+metadata:
+  labels:
+    app: redis-sentinel-master-ss
+  name: redis-sentinel-master-ss
+  namespace: public-service
+spec:
+  clusterIP: None
+  ports:
+  - name: redis
+    port: 6379
+    targetPort: 6379
+  selector:
+    app: redis-sentinel-master-ss

+ 57 - 0
redis/redis-master-slaves/redis-sentinel-ss-master.yaml

@@ -0,0 +1,57 @@
+kind: StatefulSet
+apiVersion: apps/v1beta1
+metadata:
+  labels:
+    app: redis-sentinel-master-ss
+  name: redis-sentinel-master-ss
+  namespace: public-service
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      app: redis-sentinel-master-ss
+  serviceName: redis-sentinel-master-ss
+  template:
+    metadata:
+      labels:
+        app: redis-sentinel-master-ss
+    spec:
+      containers:
+      - args:
+        - -c
+        - redis-server /mnt/redis-master.conf
+        command:
+        - sh
+        image: redis
+        imagePullPolicy: IfNotPresent
+        name: redis
+        ports:
+        - containerPort: 6379
+          name: redis-port
+          protocol: TCP
+        volumeMounts:
+        - mountPath: /mnt/
+          name: config-volume
+          readOnly: false
+        - mountPath: /data/
+          name: redis-sentinel-master-storage
+          readOnly: false
+      serviceAccountName: redis-sentinel
+      terminationGracePeriodSeconds: 30
+      volumes:
+      - configMap:
+          items:
+          - key: redis-master.conf
+            path: redis-master.conf
+          name: redis-sentinel-config 
+        name: config-volume
+  volumeClaimTemplates:
+  - metadata:
+      name: redis-sentinel-master-storage
+    spec:
+      accessModes:
+      - ReadWriteMany
+      storageClassName: "redis-sentinel-storage-class"
+      resources:
+        requests:
+          storage: 4Gi

+ 57 - 0
redis/redis-master-slaves/redis-sentinel-ss-slave.yaml

@@ -0,0 +1,57 @@
+kind: StatefulSet
+apiVersion: apps/v1beta1
+metadata:
+  labels:
+    app: redis-sentinel-slave-ss
+  name: redis-sentinel-slave-ss
+  namespace: public-service
+spec:
+  replicas: 2
+  selector:
+    matchLabels:
+      app: redis-sentinel-slave-ss
+  serviceName: redis-sentinel-slave-ss
+  template:
+    metadata:
+      labels:
+        app: redis-sentinel-slave-ss
+    spec:
+      containers:
+      - args:
+        - -c
+        - redis-server /mnt/redis-slave.conf
+        command:
+        - sh
+        image: redis
+        imagePullPolicy: IfNotPresent
+        name: redis
+        ports:
+        - containerPort: 6379
+          name: redis-port
+          protocol: TCP
+        volumeMounts:
+        - mountPath: /mnt/
+          name: config-volume
+          readOnly: false
+        - mountPath: /data/
+          name: redis-sentinel-slave-storage
+          readOnly: false
+      serviceAccountName: redis-sentinel
+      terminationGracePeriodSeconds: 30
+      volumes:
+      - configMap:
+          items:
+          - key: redis-slave.conf
+            path: redis-slave.conf
+          name: redis-sentinel-config 
+        name: config-volume
+  volumeClaimTemplates:
+  - metadata:
+      name: redis-sentinel-slave-storage
+    spec:
+      accessModes:
+      - ReadWriteMany
+      storageClassName: "redis-sentinel-storage-class"
+      resources:
+        requests:
+          storage: 4Gi

+ 5 - 0
redis/redis-sentinel/README.md

@@ -0,0 +1,5 @@
+````
+  此yaml为Redis哨兵模式,用于简单部署持久化Redis Sentinel
+  使用方法:https://www.cnblogs.com/dukuan/p/9913420.html
+
+````

+ 103 - 0
redis/redis-sentinel/redis-sentinel-configmap.yaml

@@ -0,0 +1,103 @@
+kind: ConfigMap
+apiVersion: v1
+metadata:
+  name: redis-sentinel-config
+  namespace: public-service
+  labels:
+    addonmanager.kubernetes.io/mode: Reconcile
+data:
+    redis-master.conf: |
+      port 6379
+      tcp-backlog 511
+      timeout 0
+      tcp-keepalive 0
+      loglevel notice
+      databases 16
+      save 900 1
+      save 300 10
+      save 60 10000
+      stop-writes-on-bgsave-error yes
+      rdbcompression yes
+      rdbchecksum yes
+      dbfilename dump.rdb
+      dir /data/
+      slave-serve-stale-data yes
+      slave-read-only yes
+      repl-diskless-sync no
+      repl-diskless-sync-delay 5
+      repl-disable-tcp-nodelay no
+      slave-priority 100
+      appendonly no
+      appendfilename "appendonly.aof"
+      appendfsync everysec
+      no-appendfsync-on-rewrite no
+      auto-aof-rewrite-percentage 100
+      auto-aof-rewrite-min-size 64mb
+      aof-load-truncated yes
+      lua-time-limit 5000
+      slowlog-log-slower-than 10000
+      slowlog-max-len 128
+      latency-monitor-threshold 0
+      notify-keyspace-events ""
+      hash-max-ziplist-entries 512
+      hash-max-ziplist-value 64
+      list-max-ziplist-entries 512
+      list-max-ziplist-value 64
+      set-max-intset-entries 512
+      zset-max-ziplist-entries 128
+      zset-max-ziplist-value 64
+      hll-sparse-max-bytes 3000
+      activerehashing yes
+      client-output-buffer-limit normal 0 0 0
+      client-output-buffer-limit slave 256mb 64mb 60
+      client-output-buffer-limit pubsub 64mb 16mb 60
+      hz 10
+      aof-rewrite-incremental-fsync yes
+    redis-slave.conf: |
+      port 6379
+      slaveof redis-sentinel-master-ss-0.redis-sentinel-master-ss.public-service.svc.cluster.local 6379
+      tcp-backlog 511
+      timeout 0
+      tcp-keepalive 0
+      loglevel notice
+      databases 16
+      save 900 1
+      save 300 10
+      save 60 10000
+      stop-writes-on-bgsave-error yes
+      rdbcompression yes
+      rdbchecksum yes
+      dbfilename dump.rdb
+      dir /data/
+      slave-serve-stale-data yes
+      slave-read-only yes
+      repl-diskless-sync no
+      repl-diskless-sync-delay 5
+      repl-disable-tcp-nodelay no
+      slave-priority 100
+      appendonly no
+      appendfilename "appendonly.aof"
+      appendfsync everysec
+      no-appendfsync-on-rewrite no
+      auto-aof-rewrite-percentage 100
+      auto-aof-rewrite-min-size 64mb
+      aof-load-truncated yes
+      lua-time-limit 5000
+      slowlog-log-slower-than 10000
+      slowlog-max-len 128
+      latency-monitor-threshold 0
+      notify-keyspace-events ""
+      hash-max-ziplist-entries 512
+      hash-max-ziplist-value 64
+      list-max-ziplist-entries 512
+      list-max-ziplist-value 64
+      set-max-intset-entries 512
+      zset-max-ziplist-entries 128
+      zset-max-ziplist-value 64
+      hll-sparse-max-bytes 3000
+      activerehashing yes
+      client-output-buffer-limit normal 0 0 0
+      client-output-buffer-limit slave 256mb 64mb 60
+      client-output-buffer-limit pubsub 64mb 16mb 60
+      hz 10
+      aof-rewrite-incremental-fsync yes

+ 56 - 0
redis/redis-sentinel/redis-sentinel-pv.yaml

@@ -0,0 +1,56 @@
+apiVersion: v1
+kind: PersistentVolume
+metadata:
+  name: pv-redis-sentinel-0
+spec:
+  capacity:
+    storage: 4Gi
+  accessModes:
+    - ReadWriteMany
+  volumeMode: Filesystem
+  persistentVolumeReclaimPolicy: Recycle
+  storageClassName: "redis-sentinel-storage-class"
+  nfs:
+    # real share directory
+    path: /k8s/redis-sentinel/0
+    # nfs real ip
+    server: 192.168.2.2
+
+---
+apiVersion: v1
+kind: PersistentVolume
+metadata:
+  name: pv-redis-sentinel-1
+spec:
+  capacity:
+    storage: 4Gi
+  accessModes:
+    - ReadWriteMany
+  volumeMode: Filesystem
+  persistentVolumeReclaimPolicy: Recycle
+  storageClassName: "redis-sentinel-storage-class"
+  nfs:
+    # real share directory
+    path: /k8s/redis-sentinel/1
+    # nfs real ip
+    server: 192.168.2.2
+
+---
+
+apiVersion: v1
+kind: PersistentVolume
+metadata:
+  name: pv-redis-sentinel-2
+spec:
+  capacity:
+    storage: 4Gi
+  accessModes:
+    - ReadWriteMany
+  volumeMode: Filesystem
+  persistentVolumeReclaimPolicy: Recycle
+  storageClassName: "redis-sentinel-storage-class"
+  nfs:
+    # real share directory
+    path: /k8s/redis-sentinel/2
+    # nfs real ip
+    server: 192.168.2.2

+ 32 - 0
redis/redis-sentinel/redis-sentinel-rbac.yaml

@@ -0,0 +1,32 @@
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+  name: redis-sentinel
+  namespace: public-service
+---
+kind: Role
+apiVersion: rbac.authorization.k8s.io/v1beta1
+metadata:
+  name: redis-sentinel
+  namespace: public-service
+rules:
+  - apiGroups:
+      - ""
+    resources:
+      - endpoints
+    verbs:
+      - get
+---
+kind: RoleBinding
+apiVersion: rbac.authorization.k8s.io/v1beta1
+metadata:
+  name: redis-sentinel
+  namespace: public-service
+roleRef:
+  apiGroup: rbac.authorization.k8s.io
+  kind: Role
+  name: redis-sentinel
+subjects:
+- kind: ServiceAccount
+  name: redis-sentinel
+  namespace: public-service

+ 15 - 0
redis/redis-sentinel/redis-sentinel-service.yaml

@@ -0,0 +1,15 @@
+kind: Service
+apiVersion: v1
+metadata:
+  labels:
+    app: redis-sentinel-master-ss
+  name: redis-sentinel-master-ss
+  namespace: public-service
+spec:
+  clusterIP: None
+  ports:
+  - name: redis
+    port: 6379
+    targetPort: 6379
+  selector:
+    app: redis-sentinel-master-ss

+ 57 - 0
redis/redis-sentinel/redis-sentinel-ss-master.yaml

@@ -0,0 +1,57 @@
+kind: StatefulSet
+apiVersion: apps/v1beta1
+metadata:
+  labels:
+    app: redis-sentinel-master-ss
+  name: redis-sentinel-master-ss
+  namespace: public-service
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      app: redis-sentinel-master-ss
+  serviceName: redis-sentinel-master-ss
+  template:
+    metadata:
+      labels:
+        app: redis-sentinel-master-ss
+    spec:
+      containers:
+      - args:
+        - -c
+        - redis-server /mnt/redis-master.conf
+        command:
+        - sh
+        image: redis
+        imagePullPolicy: IfNotPresent
+        name: redis
+        ports:
+        - containerPort: 6379
+          name: redis-port
+          protocol: TCP
+        volumeMounts:
+        - mountPath: /mnt/
+          name: config-volume
+          readOnly: false
+        - mountPath: /data/
+          name: redis-sentinel-master-storage
+          readOnly: false
+      serviceAccountName: redis-sentinel
+      terminationGracePeriodSeconds: 30
+      volumes:
+      - configMap:
+          items:
+          - key: redis-master.conf
+            path: redis-master.conf
+          name: redis-sentinel-config 
+        name: config-volume
+  volumeClaimTemplates:
+  - metadata:
+      name: redis-sentinel-master-storage
+    spec:
+      accessModes:
+      - ReadWriteMany
+      storageClassName: "redis-sentinel-storage-class"
+      resources:
+        requests:
+          storage: 4Gi

+ 57 - 0
redis/redis-sentinel/redis-sentinel-ss-slave.yaml

@@ -0,0 +1,57 @@
+kind: StatefulSet
+apiVersion: apps/v1beta1
+metadata:
+  labels:
+    app: redis-sentinel-slave-ss
+  name: redis-sentinel-slave-ss
+  namespace: public-service
+spec:
+  replicas: 2
+  selector:
+    matchLabels:
+      app: redis-sentinel-slave-ss
+  serviceName: redis-sentinel-slave-ss
+  template:
+    metadata:
+      labels:
+        app: redis-sentinel-slave-ss
+    spec:
+      containers:
+      - args:
+        - -c
+        - redis-server /mnt/redis-slave.conf
+        command:
+        - sh
+        image: redis
+        imagePullPolicy: IfNotPresent
+        name: redis
+        ports:
+        - containerPort: 6379
+          name: redis-port
+          protocol: TCP
+        volumeMounts:
+        - mountPath: /mnt/
+          name: config-volume
+          readOnly: false
+        - mountPath: /data/
+          name: redis-sentinel-slave-storage
+          readOnly: false
+      serviceAccountName: redis-sentinel
+      terminationGracePeriodSeconds: 30
+      volumes:
+      - configMap:
+          items:
+          - key: redis-slave.conf
+            path: redis-slave.conf
+          name: redis-sentinel-config 
+        name: config-volume
+  volumeClaimTemplates:
+  - metadata:
+      name: redis-sentinel-slave-storage
+    spec:
+      accessModes:
+      - ReadWriteMany
+      storageClassName: "redis-sentinel-storage-class"
+      resources:
+        requests:
+          storage: 4Gi