kubernetes 中的 Redis - sidecar 还是客户端-服务器模型?

sac*_*hin 5 caching persistent-storage redis kubernetes sidecar

在kubernetes中使用redis作为sidecar有什么优点和缺点?在每个app pod中添加redis容器时是否可以有持久化缓存?这会影响缓存的可用性可扩展性吗?

Dav*_*aze 9

我很难想象将 Redis 作为 sidecar 运行有什么好处。我总是将其作为单独的部署(如果启用了持久性,则为有状态集)与单独的服务一起运行。

如果 Redis 在自己的 pod 中,则:

  • 如果您的应用程序有多个副本,它们都将共享同一个 Redis
  • 当您重新部署应用程序时,它也不会终止并重新启动 Redis
  • 如果为 Redis 启用了持久性,则无需使用持久性存储来配置应用程序 Pod

考虑到 Redis 的整体功能(主要是内存存储、有限的数据类型支持),简单地将缓存数据存储在应用程序中的单例对象中或多或少相当于将 Redis 作为 sidecar 运行(每个 pod 一份缓存数据副本) ,当pod被删除时数据会丢失)。