小编Khe*_*mbo的帖子

如何使用 Istio Service Mesh 从 Kubernetes 集群内访问外部 SMTP 服务器

我有一个 kubernetes 集群,其中的应用程序在 Istio 服务网格中运行。在一个应用程序中,我尝试使用 SMTP 发送电子邮件。如何设置 Istio 规则以允许我的应用程序使用我的外部 SMTP 服务器?

最初我收到一个异常“无法连接到 SMTP 主机:in-v3.mailjet.com,端口:587,响应:-1。” 详细信息请参见此处。访问该网站后,我意识到我需要提供出口规则,我按照以下方式执行了操作

apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
  name: mailjet
spec:
  hosts:
  - "in-v3.mailjet.com"
  location: MESH_EXTERNAL
  ports:
  - number: 587
    name: tls
    protocol: TLS
  resolution: DNS
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: mailjet
spec:
  hosts:
  - "*.mailjet.com"
  tls:
  - match:
    - port: 587
      sni_hosts:
      - "*.mailjet.com"
    route:
    - destination:
        host: "*.mailjet.com"
        port:
          number: 587
      weight: 100
Run Code Online (Sandbox Code Playgroud)

我不再收到“无法连接到 SMTP 主机”异常,但收到 SocketTieoutException

[0m[31m06:56:39,048 ERROR [stderr] (default task-55) …
Run Code Online (Sandbox Code Playgroud)

smtp mailjet kubernetes istio

1
推荐指数
1
解决办法
6856
查看次数

标签 统计

istio ×1

kubernetes ×1

mailjet ×1

smtp ×1