helm部署redis高可用集群
2023-12-27 01:50:54
1. 添加helm源
helm repo add bitnami https://charts.bitnami.com/bitnami
2. 下载最新版的redis的charts
helm search repo redis
helm fetch bitnami/redis
3. 解压并备份values文件
tar -xf redis-18.6.1.tgz
cd redis/
cp values.yaml values.yaml.bak
4. 修改values文件
vim values.yaml
global:
...
...
# 配置sc
storageClass: "nfs-client"
# redis的密码
redis:
password: "pass_123456"
...
...
# 开启哨兵模式
sentinel:
enabled: true
quorum: 3
5. 部署到k8s集群中
helm install redis . -f values.yaml
6. 验证
# 获取redis的密码
export REDIS_PASSWORD=$(kubectl get secret --namespace default redis -o jsonpath="{.data.redis-password}" | base64 -d)
# 运行redis-client容器
kubectl run --namespace default redis-client --restart='Never' --env REDIS_PASSWORD=$REDIS_PASSWORD --image docker.io/bitnami/redis:7.2.3-debian-11-r2 --command -- sleep infinity
# 进入redis-client容器
kubectl exec --tty -i redis-client \
--namespace default -- bash
# 在redis-cli容器中使用redis-cli命令连接集群
REDISCLI_AUTH="$REDIS_PASSWORD" redis-cli -h redis -p 6379 # Read only operations
REDISCLI_AUTH="$REDIS_PASSWORD" redis-cli -h redis -p 26379 # Sentinel access
# 暴露redis的端口,使外部的服务可以访问redis集群
kubectl port-forward --namespace default svc/redis 6379:6379 & REDISCLI_AUTH="$REDIS_PASSWORD" redis-cli -h 127.0.0.1 -p 6379
redis集群信息,可以发现node-1是主节点
kubectl exec -it redis-node-0 -- redis-cli -h redis -a $(kubectl get secret redis -o jsonpath="{.data.redis-password}" | base64 -d) info replication
kubectl exec -it redis-node-1 -- redis-cli -h redis -a $(kubectl get secret redis -o jsonpath="{.data.redis-password}" | base64 -d) info replication
kubectl exec -it redis-node-2 -- redis-cli -h redis -a $(kubectl get secret redis -o jsonpath="{.data.redis-password}" | base64 -d) info replication
查看哨兵信息
7. 模拟冗灾
kill掉node-1的pod,可以看到master已经到了node-2中
kubectl delete pod redis-node-1
8. 使用
查看redis的svc
将redis的svc通过nodeport的方式暴露出来,然后通过node_ip:nodeport
的方式访问redis即可
kubectl edit svc redis
...
...
type: NodePort #由LoadBalancer改为NodePort
...
...
文章来源:https://blog.csdn.net/weixin_44729138/article/details/135231596
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!