
kubernetes 发布的redis服务端口为 31250
通过命令查询
[mini@ecs-88500735 /]$ minikube service redis --url
http://192.168.49.2:31250
[root@ecs-88500735 /]# vi /etc/nginx/nginx.conf
配置nginx.conf
stream {
upstream redis {
server 192.168.49.2:31250;
}
server {
listen 63790;
proxy_pass redis;
}
}
[root@ecs-88500735 /]# nginx -s reload
[root@ecs-88500735 /]# redis-cli -h 127.0.0.1 -p 63790
127.0.0.1:63790> get me
(nil)
127.0.0.1:63790> set me good
OK
127.0.0.1:63790> get me
"good"
127.0.0.1:63790>

只适用于pod为1,如果有多个pod则通过LoadBalancer分发到任何节点上,如果节点上的redis没有同步则后续get值可能会返回nil。
本案例旨在演示nginx代理redis,借用kubernetes运行的redis实例进行演示,真实项目一般数据流向为F5到SLB(HAProxy)到Kubernetes集群部署的容器里部署的应用。