helm repo add bitnami https://charts.bitnami.com/bitnami
下面是默认安装,不过前往别直接拿着下面安装命令就安装,官方默认安装的默认参数配置往往和我们实际场景不一样,需要配置一些参数
helm install my-redis bitnami/redis --version 18.7.0
helm pull bitnami/redis --version 18.7.0
如果环境中没有storageclass,就需自己安装存储支持或者采用云厂商的storageclass,内网环境推荐openebs,测试nfs就行了。
我的默认storageclass是openebs-hostpath,我的k8s环境上安装的openebs来做存储支持。当然如果有其他支持storageclass的也可以,比如nfs、云厂商sc,这里不做过多解释。
[root@k8s-master01 redis]# kubectl get storageclass
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
openebs-device openebs.io/local Delete WaitForFirstConsumer false 20d
openebs-hostpath (default) openebs.io/local Delete WaitForFirstConsumer false 20d
不过在这里因为是安装单机版,并且需要配置一些参数,所以需要通过--values配置一些参数
global:
storageClass: "openebs-hostpath"
redis:
password: "redis123"
architecture: standalone
commonConfiguration: |-
appendonly yes
save "300 10"
master:
resources:
limits:
cpu: 2
memory: 4Gi
requests:
cpu: 500m
memory: 2Gi
nodeSelector: {}
tolerations: []
persistence:
size: 10Gi
service:
type: NodePort
nodePorts:
redis: "30202"
安装前测试:
helm -n newland install redis -f my-values.yaml ./redis --dry-run
安装:
helm -n newland install redis -f my-values.yaml ./redis
我用的比较多的是直接修改values.yaml,修改的参数和上面的一样,找到对应的位置修改
安装测试:
[root@k8s-master01 redis]# helm install redis -n newland ../redis --dry-run
安装:
[root@k8s-master01 redis]# helm install redis -n newland ../redis
helm查看安装:
[root@k8s-master01 redis]# helm list
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
[root@k8s-master01 redis]# helm list -n newland
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
elasticsearch newland 3 2024-01-01 11:26:33.538207701 +0800 CST deployed elasticsearch-7.7.1 7.7.1
kibana newland 3 2024-01-01 11:45:37.329407575 +0800 CST deployed kibana-7.7.1 7.7.1
redis newland 1 2024-01-21 14:36:37.627113594 +0800 CST deployed redis-18.7.0 7.2.4
查看k8s安装情况:
[root@k8s-master01 redis]# kubectl get pod -n newland
NAME READY STATUS RESTARTS AGE
elasticsearch-master-0 1/1 Running 0 20d
kibana-kibana-59f98df5c9-fn6n8 1/1 Running 0 20d
redis-master-0 1/1 Running 0 3m8s
[root@k8s-master01 redis]# kubectl get service -n newland
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
elasticsearch-master NodePort 10.0.0.93 9200:32478/TCP,9300:30815/TCP 20d
elasticsearch-master-headless ClusterIP None 9200/TCP,9300/TCP 20d
kibana-kibana NodePort 10.0.0.246 5601:30062/TCP 20d
redis-headless ClusterIP None 6379/TCP 3m52s
redis-master NodePort 10.0.0.123 6379:30379/TCP 3m52s
[root@k8s-master01 redis]# kubectl get pv,pvc -n newland
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
persistentvolume/pvc-2909b96d-6de8-4dd1-9684-d084fde78bac 30Gi RWO Delete Bound newland/elasticsearch-master-elasticsearch-master-0 openebs-hostpath 20d
persistentvolume/pvc-746fb993-a14e-4d41-a9a5-ea188e66da68 8Gi RWO Delete Bound newland/redis-data-redis-master-0 openebs-hostpath 4m25s
persistentvolume/pvc-a9524463-9bdf-4ce6-9b2b-cbb3277235ae 20Gi RWO Delete Bound kubesphere-monitoring-system/prometheus-k8s-db-prometheus-k8s-0 openebs-hostpath 20d
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
persistentvolumeclaim/elasticsearch-master-elasticsearch-master-0 Bound pvc-2909b96d-6de8-4dd1-9684-d084fde78bac 30Gi RWO openebs-hostpath 20d
persistentvolumeclaim/redis-data-redis-master-0 Bound pvc-746fb993-a14e-4d41-a9a5-ea188e66da68 8Gi RWO openebs-hostpath 4m29s
[root@k8s-master01 redis]# kubectl exec -n newland redis-master-0 -it -- /bin/sh
$ redis-cli -a 密码
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
127.0.0.1:6379> get a
(nil)
通过测试可以看出安装成功了,我们本地需要连接redis直接使用nodeport端口30379,如果是k8s内直接使用service:6379就行了