Redis
Redis 是一个开源的内存数据库,支持多种数据结构,如字符串、哈希、列表、集合和有序集合等。它常用于缓存、会话管理和实时数据分析等场景,具有高性能和低延迟的特点。Redis 支持数据持久化,可以将内存中的数据保存到磁盘,重启后恢复数据。
Redis Cluster 是 Redis 的分布式实现,用于实现数据的自动分片和高可用性。它将数据分布在多个节点上,每个节点存储一部分数据,并通过哈希槽(hash slots)进行管理,共有 16384 个槽位。Redis Cluster 支持无中心架构,具有自动故障转移功能,当部分节点失效时,其他节点可以接管数据,实现无缝的服务。它适用于需要高扩展性和高性能的场景。
集群网络模式
只能在k8s集群内部访问
查看版本
helm search repo bitnami/redis-cluster -l1
下载chart
helm pull bitnami/redis-cluster --version 12.0.21
修改配置
values.yaml是修改后的配置,可以根据环境做出适当修改
cat values-prod.yaml1
创建标签,运行在标签节点上
kubectl label nodes server02.lingo.local kubernetes.service/redis="true"
kubectl label nodes server03.lingo.local kubernetes.service/redis="true"1
2
2
创建服务
helm install redis -n kongyu -f values-clusterip.yaml redis-cluster-12.0.2.tgz1
查看服务
kubectl get -n kongyu pod,svc,pvc -l app.kubernetes.io/instance=redis
kubectl logs -f -n kongyu redis-01
2
2
使用服务
创建客户端容器
kubectl run redis-client --rm --tty -i --restart='Never' --image registry.lingo.local/bitnami/redis-cluster:8.0.1 --namespace kongyu --env REDISCLI_AUTH=Admin@123 --command -- bash1
内部网络访问-headless
redis-cli -c -h redis-0.redis-headless.kongyu cluster nodes1
内部网络访问
redis-cli -c -h redis cluster nodes1
查看模块
redis-cli -c -h redis MODULE LIST1
删除服务以及数据
helm uninstall -n kongyu redis
kubectl delete -n kongyu pvc -l app.kubernetes.io/instance=redis1
2
2
主机网络模式
可以通过集群主机的IP访问
查看版本
helm search repo bitnami/redis-cluster -l1
下载chart
helm pull bitnami/redis-cluster --version 12.0.21
修改配置
values.yaml是修改后的配置,可以根据环境做出适当修改
cat values-prod.yaml1
创建标签,运行在标签节点上
kubectl label nodes server02.lingo.local kubernetes.service/redis="true"
kubectl label nodes server03.lingo.local kubernetes.service/redis="true"1
2
2
创建服务
helm install redis -n kongyu -f values-hostnet.yaml redis-cluster-12.0.2.tgz1
查看服务
kubectl get -n kongyu pod,svc,pvc -l app.kubernetes.io/instance=redis
kubectl logs -f -n kongyu redis-01
2
2
使用服务
创建客户端容器
kubectl run redis-client --rm --tty -i --restart='Never' --image registry.lingo.local/bitnami/redis-cluster:8.0.1 --namespace kongyu --env REDISCLI_AUTH=Admin@123 --command -- bash1
访问服务
redis-cli -c -h redis cluster nodes1
查看模块
redis-cli -c -h redis MODULE LIST1
删除服务以及数据
helm uninstall -n kongyu redis
kubectl delete -n kongyu pvc -l app.kubernetes.io/instance=redis1
2
2
LoadBalancer模式
使用LoadBalancer将集群暴露到集群外部访问
查看版本
helm search repo bitnami/redis-cluster -l1
下载chart
helm pull bitnami/redis-cluster --version 12.0.21
修改配置
values.yaml是修改后的配置,可以根据环境做出适当修改
cat values-dev.yaml1
创建标签,运行在标签节点上
kubectl label nodes server02.lingo.local kubernetes.service/redis="true"
kubectl label nodes server03.lingo.local kubernetes.service/redis="true"1
2
2
创建服务
helm install redis -n kongyu -f values-lb.yaml redis-cluster-12.0.2.tgz1
查看服务
kubectl get -n kongyu pod,svc,pvc -l app.kubernetes.io/instance=redis
kubectl logs -f -n kongyu redis-01
2
2
使用服务
创建客户端容器
kubectl run redis-client --rm --tty -i --restart='Never' --image registry.lingo.local/bitnami/redis-cluster:8.0.1 --namespace kongyu --env REDISCLI_AUTH=Admin@123 --command -- bash1
内部网络访问-headless
redis-cli -c -h redis-0.redis-headless.kongyu cluster nodes1
内部网络访问
redis-cli -c -h redis cluster nodes1
集群网络访问
使用集群+LoadBalancer访问
redis-cli -c -h 192.168.1.41 -p 6379 cluster nodes1
查看模块
redis-cli -c -h redis MODULE LIST1
删除服务以及数据
helm uninstall -n kongyu redis
kubectl delete -n kongyu pvc -l app.kubernetes.io/instance=redis1
2
2