我们已经完成了有状态Redis服务的部署,现在需要让它能被前端调用。为此我们创建了两个不同的Kubernetes服务。第一个服务用于从Redis中读取数据。由于Redis会将数据复制到StatefulSet的所有三个成员,因此我们并不关心请求会进入哪一个副本。我们使用一个基本的服务来开放数据读取服务:
为了支持数据写入,你需要将Redis的主服务器(副本#0)作为写入的目标。为此,你可以创建一个无头服务,它没有绑定集群IP地址,而是为StatefulSet中的每个Pod编写一个DNS条目。这意味着我们可以通过DNS名称
redis-0.redis-write
来访问主服务器:
因此,当我们想要连接Redis来写入数据或执行事务性读/写操作时,就可以构建一个单独的写客户端连接到
redis-0.redis
服务器。