Leer en inglés

Compartir a través de

Kubernetes 托管的客户端应用程序

本文提供了在 Kubernetes 托管的客户端应用程序中使用 Azure Redis 缓存的最佳做法。

交错多个连接

确保交错 Pod 与 Redis 服务器的多个连接。 在短时间内同时启动多个 Pod 而不分散启动时间,会导致客户端连接数突然激增,从而增加 Redis 服务器的负载,并可能导致超时。

另外,避免同时关闭多个 Pod。 未能以交错方式关闭可能会导致连接数急剧下降,从而造成 CPU 压力。

提供足够的 Pod 资源

请确保为运行客户端应用程序的 Pod 提供足够的 CPU 和内存资源。 运行接近其资源限制的客户端应用程序可能会导致超时。

提供足够的节点资源

运行客户端应用程序的 Pod 可能会受到同一个节点上运行的其他 Pod 的影响,进而限制 Redis 连接或输入输出操作。 确保运行客户端应用程序 Pod 的节点有足够的内存、CPU 和网络带宽。 这些资源的数量不足可能会导致连接问题。

检查 Linux 应用程序的 TCP 设置

如果 Azure Redis 客户端应用程序在基于 Linux 的容器上运行,请确保 TCP 设置与 Linux 托管客户端应用程序的 TCP 设置匹配。

避免与 Istio 发生连接冲突

如果将 Istio 与 Azure 托管 Redis 群集配合使用,请考虑排除具有以下 Istio 注释的潜在冲突端口:

annotations:
  traffic.sidecar.istio.io/excludeOutboundPorts: "15000,15001,15004,15006,15008,15009,15020"

为了避免连接干扰:

  • 请考虑改用非聚集缓存或 Azure 托管 Redis 缓存。
  • 避免在运行 Azure Redis 客户端代码的 Pod 上配置 Istio 挎斗。