Helm搭建redis集群环境 电脑版发表于:2021/9/9 11:58  >#Helm搭建redis集群环境 [TOC] 先决条件 ------------ tn2>需要有k8s的集群 安装Helm ------------ tn2>这里安装3.6.3的Helm 获取最新版本:https://github.com/kubernetes/helm/releases ```bash wget https://get.helm.sh/helm-v3.6.3-linux-amd64.tar.gz tar -xvf helm-v3.6.3-linux-amd64.tar.gz mv linux-amd64/helm /usr/local/bin/ # 查看版本 helm version ``` tn2>安装后,初始化更新本地缓存以将最新的可用包与环境同步。 ```bash helm repo add bitnami https://charts.bitnami.com/bitnami helm repo update ``` 安装Redis集群 ------------ >### 创建存储 tn2>在本地创建3个redis数据的文件夹,并赋予权限。 ```bash mkdir /mnt/data{1..4} chmod 777 -R /mnt/data* ``` tn2>编写redis需要的pv.yaml ```bash kind: PersistentVolume apiVersion: v1 metadata: name: pv-volume1 labels: type: local spec: capacity: storage: 10Gi accessModes: - ReadWriteOnce hostPath: path: "/mnt/data1" --- kind: PersistentVolume apiVersion: v1 metadata: name: pv-volume2 labels: type: local spec: capacity: storage: 10Gi accessModes: - ReadWriteOnce hostPath: path: "/mnt/data2" --- kind: PersistentVolume apiVersion: v1 metadata: name: pv-volume3 labels: type: local spec: capacity: storage: 10Gi accessModes: - ReadWriteOnce hostPath: path: "/mnt/data3" --- kind: PersistentVolume apiVersion: v1 metadata: name: pv-volume4 labels: type: local spec: capacity: storage: 10Gi accessModes: - ReadWriteOnce hostPath: path: "/mnt/data4" ``` tn2>在k8s中创建redis的存储。 ```bash kubectl apply -f pv.yaml ```  >### 创建Redis集群 ```bash helm install redis bitnami/redis ``` tn2>更多参数请参考官方:https://artifacthub.io/packages/helm/bitnami/redis  tn2>这里我们可以看到都绑定成功了,副本数量默认是三个,接着我们来看看pv的绑定情况。  tn2>可以从您的集群内通过以下DNS名称访问: ```bash redis-master.default.svc.cluster.local:6379 redis-replicas.default.svc.cluster.local:6379 ``` tn2>redis的密码存储于`secrets/redis`中,可以通过如下命令进行查看与提取。 ```bash kubectl get secrets redis -o yaml # 获取redis密码 export REDIS_PASSWORD=$(kubectl get secret --namespace default redis -o jsonpath="{.data.redis-password}" | base64 --decode) # 查看 echo $REDIS_PASSWORD ```  >### 测试连接 tn2>我们可以跑一个小的Pod镜像测试连接redis集群 ```bash kubectl run --namespace default redis-client --restart='Never' --env REDIS_PASSWORD=$REDIS_PASSWORD --image docker.io/bitnami/redis:6.2.5-debian-10-r34 --command -- sleep infinity ``` tn2>进入到容器中 ```bash kubectl exec --tty -i redis-client \ --namespace default -- bash ```  >### 本地测试 ```bash kubectl port-forward --namespace default svc/redis-master 6379:6379 redis-cli -h 127.0.0.1 -p 6379 -a $REDIS_PASSWORD ```