Helm部署Redis
2021-07-16 本文已影响0人
行者深蓝
环境信息
- Kubernetes:v1.20.6
- StorageClass:csi-udisk-rssd
- Helm:v3.5.2
添加 Helm仓库
这里选用BitNami提供的chart仓库
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update
同步海外镜像
在国内环境部署应用,经常因为获取国外源站容器镜像超时,导致部署失败,可以提前将容器镜像同步到本地镜像仓库中,以自有镜像仓库 uhub.service.ucloud.cn/ucloud_pts 为例:
docker login uhub.service.ucloud.cn/ucloud_pts
docker pull docker.io/bitnami/redis:6.2.4-debian-10-r13
docker tag docker.io/bitnami/redis:6.2.4-debian-10-r13 \
uhub.service.ucloud.cn/ucloud_pts/redis:6.2.4-debian-10-r13
docker push uhub.service.ucloud.cn/ucloud_pts/redis:6.2.4-debian-10-r13
创建 imagePullSecrets
创建容器集群访问 uhub.service.ucloud.cn/ucloud_pts 需要的 secret
kubectl create namespace db
kubectl create secret docker-registry registry-secret-name \
--namespace=db \
--docker-server=uhub.service.ucloud.cn/ucloud_pts \
--docker-username='xxxxxx' \
--docker-password='xxxxxx'
使用Helm部署redis
cat > redis-values.yaml << EOF
clusterDomain: cluster.local
image:
registry: uhub.service.ucloud.cn/ucloud_pts
repository: redis
tag: 6.2.4-debian-10-r13
global:
imagePullSecrets:
- registry-secret-name
storageClass: csi-udisk-rssd
redis:
password: redispwxxxxx
EOF
helm install gitlib-cache -f redis-values.yaml bitnami/redis -n db
如果需要部署不同redis版本,选择同步不同版本镜像即可:
- redis 6: bitnami/redis:6.2.4-debian-10-r33
- redis 5: bitnami/redis:5.0.12-debian-10-r120
更多版本可以参考,https://hub.docker.com/r/bitnami/redis/tags?page=1&ordering=last_updated
验证部署
-
k8s集群内域名和端口
cache-redis-master.gitlib.svc.cluster.local for read/write operations (port 6379) cache-redis-replicas.gitlib.svc.cluster.local for read-only operations (port 6379)
-
获取Redis auth密码
export REDIS_PASSWORD=$(kubectl get secret --namespace db cache-redis -o jsonpath="{.data.redis-password}" | base64 --decode)
- 连接 Redis(TM) server
kubectl run --namespace db redis-client --restart='Never' --env REDIS_PASSWORD=$REDIS_PASSWORD --image uhub.service.ucloud.cn/ucloud_pts/redis:6.2.4-debian-10-r13 --command -- sleep infinity kubectl exec --tty -i redis-client --namespace db -- bash redis-cli -h test-redis-master -a $REDIS_PASSWORD redis-cli -h test-redis-replicas -a $REDIS_PASSWORD