Kubernetes 客户端错误:`BANhttp://varnish`导致“405不允许”响应

Kubernetes 客户端错误:`BANhttp://varnish`导致“405不允许”响应,kubernetes,api-platform.com,Kubernetes,Api Platform.com,我已经使用kops在AWS上安装了一个k8s集群,并且我已经按照说明使用helm在该集群上部署api平台 我不明白为什么当php pod试图将缓存失效到varnish pod中时,php pod日志显示405 在/usr/local/etc/Varnish/default.vcl内的Varnish pod中,我的白名单是默认白名单 # Hosts allowed to send BAN requests acl invalidators { "localhost"; "php"; }

我已经使用kops在AWS上安装了一个k8s集群,并且我已经按照说明使用helm在该集群上部署api平台

我不明白为什么当php pod试图将缓存失效到varnish pod中时,php pod日志显示405

在/usr/local/etc/Varnish/default.vcl内的Varnish pod中,我的白名单是默认白名单

# Hosts allowed to send BAN requests
acl invalidators {
  "localhost";
  "php";
}

更新我认为问题可以这样概括:从服务a中的pod a我想调用服务B。我需要在请求(在pod B中接收)中保留服务a的IP而不是pod a的IP。

我最初的问题可以总结为:

从服务a中的一个pod a,我想调用服务B。我需要在请求中(在pod B中接收)保留在源站中的服务a的IP,而不是pod a的IP

但Kubernetes的网络模型需要:

  • 所有容器都可以在没有NAT的情况下与所有其他容器通信
  • 所有节点都可以在没有NAT的情况下与所有容器通信(反之亦然)
  • 容器将自身视为的IP与其他容器将其视为的IP相同
所以我的需要不能得到满足


因此,我的解决方案是使用而不是依赖varnish vcl配置中基于ip的白名单。

这里有一个来自api平台的更简单的解决方案:


我想他们会用这个更新掌舵图

你按照什么说明部署api平台?这是我写的完整指南链接很棒,但如果你能总结出一种可能的方法来纠正问题中概述的问题,那将更有帮助。是的,内容现在不见了,404:(