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 | ~~~ |