Box

Allgemein

Profil

Minimal Redis from Operator » Historie » Zyklus 6

Peter Pfläging, 11.04.2022 09:03

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 2 Peter Pfläging
To address this there's an operator (https://ot-container-kit.github.io/redis-operator/)
6 1 Peter Pfläging
7 4 Peter Pfläging
It's best to use a reald redis cluster. CPU and Memory usage is typically low:
8
9
- 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
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
16
## Install
17
18
- 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 5 Peter Pfläging
     ```yaml
23 4 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 5 Peter Pfläging
     ```
35 4 Peter Pfläging
36 6 Peter Pfläging
## Usage
37
38
In your namespace use the following yaml to get a redundant redis cluster.
39
40
Pay special attentions to:
41
42
- storage size
43
- storage class (should be block storage for best performance)
44 4 Peter Pfläging
45 1 Peter Pfläging
```yaml
46
apiVersion: redis.redis.opstreelabs.in/v1beta1
47 3 Peter Pfläging
kind: RedisCluster
48 1 Peter Pfläging
metadata:
49 3 Peter Pfläging
  name: redis-cluster
50 1 Peter Pfläging
spec:
51 3 Peter Pfläging
  clusterSize: 3
52 1 Peter Pfläging
  kubernetesConfig:
53
    image: 'quay.io/opstree/redis:v6.2.5'
54
    imagePullPolicy: IfNotPresent
55
    resources:
56
      limits:
57
        cpu: 101m
58
        memory: 128Mi
59
      requests:
60
        cpu: 101m
61
        memory: 128Mi
62
    serviceType: ClusterIP
63
  redisExporter:
64
    enabled: false
65
    image: 'quay.io/opstree/redis-exporter:1.0'
66 3 Peter Pfläging
  redisFollower:
67
    serviceType: ClusterIP
68
  redisLeader:
69
    serviceType: ClusterIP
70 1 Peter Pfläging
  storage:
71
    volumeClaimTemplate:
72
      spec:
73 3 Peter Pfläging
        accessModes:
74
          - ReadWriteOnce
75 1 Peter Pfläging
        resources:
76
          requests:
77
            storage: 1Gi
78
        storageClassName: rook-ceph-block
79
```