Minimal Redis from Operator » Historie » Zyklus 8
Peter Pfläging, 11.04.2022 09:08
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 | ~~~ |
||
23 | 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 | ~~~ |