1、配置helm redis repo
helm repo add bitnami https://charts.bitnami.com/bitnami
2 安装下载helm redis
下面是默认安装,不过前往别直接拿着下面安装命令就安装,官方默认安装的默认参数配置往往和我们实际场景不一样,需要配置一些参数
helm install my-redis bitnami/redis --version 18.7.0
2.1 下载helm redis
helm pull bitnami/redis --version 18.7.0
2.2 查看storageclass
如果环境中没有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
2.3 通过指定my-values.yaml安装
不过在这里因为是安装单机版,并且需要配置一些参数,所以需要通过--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"
- storageClass可以不用配置,因为我的默认storageClass已经配置。
- password 配置密码
- architecture 配置单机部署
- commonConfiguration 配置redis的存储策略
- master 主redis相关配置
安装前测试:
helm -n newland install redis -f my-values.yaml ./redis --dry-run
安装:
helm -n newland install redis -f my-values.yaml ./redis
2.4 直接修改values.yaml
我用的比较多的是直接修改values.yaml,修改的参数和上面的一样,找到对应的位置修改
安装测试:
[root@k8s-master01 redis]# helm install redis -n newland ../redis --dry-run
安装:
[root@k8s-master01 redis]# helm install redis -n newland ../redis
2.5 查看安装情况
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 <none> 9200:32478/TCP,9300:30815/TCP 20d elasticsearch-master-headless ClusterIP None <none> 9200/TCP,9300/TCP 20d kibana-kibana NodePort 10.0.0.246 <none> 5601:30062/TCP 20d redis-headless ClusterIP None <none> 6379/TCP 3m52s redis-master NodePort 10.0.0.123 <none> 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
2.6 测试redis安装情况
[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就行了