pods 之间的亲和力和反亲和力。确保 Web 应用程序连接到本地 Redis 缓存
affintity and anti-affinity between pods. ensure webapp connect to local redis cache
在关于 kubernetes 的亲和性和反亲和性规则的文档中,有一个 web application and a local redis cache 的实用用例。
- redis 部署配置了 PodAntiAffinity 以确保调度程序不会在单个节点上共同定位副本。
- Web 应用程序部署具有 pod 亲和力,以确保应用程序与具有标签存储 (Redis) 的 pod 一起调度。
要从 webapp 连接到 redis,我们必须定义一个服务。
问题:我们如何确定 webapp 将始终使用位于同一节点而不是另一个节点上的 redis?如果我从 Kubernetes v1.2 读取 version compatibility,kube-proxy 的 iptables 模式 变成了 default。
阅读有关 iptable mode for kube-proxy 的文档,它说 默认情况下 ,iptables 模式下的 kube-proxy 随机选择后端 .
所以我对这个问题的回答是:
不,我们不能确定。如果您想确定,那么将 redis 和 webapp 放在一个 pod 中?
这个可以在(redis)Service中配置,但一般不推荐:
Setting spec.externalTrafficPolicy
to the value Local
will only proxy requests to local endpoints, never forwarding traffic to other nodes
这是一个复杂的话题,请在此处阅读更多内容:
在关于 kubernetes 的亲和性和反亲和性规则的文档中,有一个 web application and a local redis cache 的实用用例。
- redis 部署配置了 PodAntiAffinity 以确保调度程序不会在单个节点上共同定位副本。
- Web 应用程序部署具有 pod 亲和力,以确保应用程序与具有标签存储 (Redis) 的 pod 一起调度。
要从 webapp 连接到 redis,我们必须定义一个服务。
问题:我们如何确定 webapp 将始终使用位于同一节点而不是另一个节点上的 redis?如果我从 Kubernetes v1.2 读取 version compatibility,kube-proxy 的 iptables 模式 变成了 default。
阅读有关 iptable mode for kube-proxy 的文档,它说 默认情况下 ,iptables 模式下的 kube-proxy 随机选择后端 .
所以我对这个问题的回答是:
不,我们不能确定。如果您想确定,那么将 redis 和 webapp 放在一个 pod 中?
这个可以在(redis)Service中配置,但一般不推荐:
Setting
spec.externalTrafficPolicy
to the valueLocal
will only proxy requests to local endpoints, never forwarding traffic to other nodes
这是一个复杂的话题,请在此处阅读更多内容: