Box

Allgemein

Profil

Minimal Redis from Operator » Historie » Zyklus 9

Peter Pfläging, 11.04.2022 09:09

1 1 Peter Pfläging
# Minimal Redis from Operator
2
3
Very much new workload inside OPenShift / OKD or Kubernetes using Redis as distributed cache or session storage.
4
5 8 Peter Pfläging
To address this there's an operator ( https://ot-container-kit.github.io/redis-operator/ )
6 1 Peter Pfläging
7 7 Peter Pfläging
It's best to use a real redis cluster. CPU and Memory usage is typically low:
8 4 Peter Pfläging
9 8 Peter Pfläging
*   Top of 0.6 CPU, 0.7 Gig memory and 6 pods
10
*   Average of 0.1 CPU and less than 0.1 Gig memory
11 4 Peter Pfläging
12
All values for a 3 count stateful set.
13
14
If you're using 1 Gig storage PVC's you're ending with 6 Gig storage consumption ;-)
15 1 Peter Pfläging
16
## Install
17
18 8 Peter Pfläging
*   Install the Redis operator like it's mentioned in https://ot-container-kit.github.io/redis-operator/guide/installation.html
19
*   or use the Operator Tab in OpenShift / OKD
20
*   or apply this YAML in OpenShift / OKD:
21
    
22 9 Peter Pfläging
    ~~~ yaml
23 8 Peter Pfläging
    apiVersion: operators.coreos.com/v1alpha1
24
    kind: Subscription
25
    metadata:
26
     name: redis-operator
27
     namespace: openshift-operators 
28
    spec:
29
     channel: stable
30
     installPlanApproval: Automatic
31
     name: redis-operator
32
     source: community-operators
33
     sourceNamespace: openshift-marketplace 
34
    ~~~
35
    
36 6 Peter Pfläging
37
## Usage
38
39
In your namespace use the following yaml to get a redundant redis cluster.
40
41
Pay special attentions to:
42
43 8 Peter Pfläging
*   storage size
44
*   storage class (should be block storage for best performance)
45 1 Peter Pfläging
46 8 Peter Pfläging
~~~ yaml
47 1 Peter Pfläging
apiVersion: redis.redis.opstreelabs.in/v1beta1
48 3 Peter Pfläging
kind: RedisCluster
49 1 Peter Pfläging
metadata:
50 3 Peter Pfläging
  name: redis-cluster
51 1 Peter Pfläging
spec:
52
  clusterSize: 3
53
  kubernetesConfig:
54
    image: 'quay.io/opstree/redis:v6.2.5'
55
    imagePullPolicy: IfNotPresent
56
    resources:
57
      limits:
58
        cpu: 101m
59
        memory: 128Mi
60
      requests:
61
        cpu: 101m
62
        memory: 128Mi
63
    serviceType: ClusterIP
64
  redisExporter:
65 3 Peter Pfläging
    enabled: false
66
    image: 'quay.io/opstree/redis-exporter:1.0'
67
  redisFollower:
68
    serviceType: ClusterIP
69 1 Peter Pfläging
  redisLeader:
70
    serviceType: ClusterIP
71
  storage:
72 3 Peter Pfläging
    volumeClaimTemplate:
73
      spec:
74 1 Peter Pfläging
        accessModes:
75
          - ReadWriteOnce
76
        resources:
77
          requests:
78
            storage: 1Gi
79
        storageClassName: rook-ceph-block
80 8 Peter Pfläging
~~~