启用 istio 时访问 SMTP 服务器

Accessing an SMTP server when istio is enabled

尝试使用 curl 通过 smtp 发送电子邮件时出现错误 curl: (56) response reading failed。检查了 sidecar 的 isto-proxy 日志,但没有看到任何与此主机相关的 error 日志。也尝试了 中提到的解决方案,但没有用。

服务入口

apiVersion: networking.istio.io/v1beta1
kind: ServiceEntry
metadata:
  name: smtp
spec:
  addresses:
  - 192.168.8.45/32
  hosts:
  - smtp.example.com"
  location: MESH_EXTERNAL
  ports:
    - name: tcp-smtp
      number: 2255
      protocol: TCP

很可能是端口号导致了错误,如果不是,请尝试删除网格策略

另外请根据以下几点进行验证:

1.If 你最近更新了 istio 尝试降级它。 2.Look 再次 Sidecar logs 以解决任何冲突或尝试禁用它。 3.When 到了curl 56 错误包传输;限制可能是问题所在。

当启用 istio 时,来自主容器的 curl 请求通过 sidecar 路由,来自 smtp 服务器的响应被 sidecar 伪装并返回到主容器,这是非常误导的。

禁用 Istio 并尝试在 smtp 端口上执行 curl 时,curl 请求失败并出现错误 Failed to connect to smtp.example.com port 2255: Operation timed out。这是因为从集群到 smtp 服务器端口的防火墙没有打开。

虽然启用了 istio,但 curl 响应没有给出超时错误,但给出了 curl: (56) response reading failed,这误导我认为响应来自 smtp 服务器。