0

我想从我控制不多(就代码而言)的 pod 到第三方出口端点(我根本无法控制)获取出口跟踪和指标。您可以将其视为例如从 wordpress 安装到api.wordpress.org.

我计划终止出口上的 tls,然后从那里创建一个新的 tls 会话。api.wordpress.org为此,我从可以注入 pod 的 CA生成证书。

我有以下配置:

---
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
  name: egress-api-wordpress-org
spec:
  hosts:
    - api.wordpress.org
  gateways:
    - mesh
    - egress-api-wordpress-org
  tls:
    - match:
        - gateways:
            - mesh
          port: 443
          sniHosts:
            - api.wordpress.org
      route:
        - destination:
            host: istio-egressgateway.istio-egress.svc.cluster.local
            port:
              number: 443
  http:
    - match:
        - gateways:
            - egress-api-wordpress-org
          port: 443
      route:
        - destination:
            host: api.wordpress.org
            port:
              number: 443
---
apiVersion: networking.istio.io/v1beta1
kind: ServiceEntry
metadata:
  name: egress-api-wordpress-org
spec:
  hosts:
    - api.wordpress.org
  location: MESH_EXTERNAL
  ports:
    - number: 443
      name: https
      protocol: HTTPS
  resolution: DNS
---
apiVersion: networking.istio.io/v1beta1
kind: DestinationRule
spec:
  host: api.wordpress.org
  trafficPolicy:
    loadBalancer:
      simple: ROUND_ROBIN
    portLevelSettings:
      - port:
          number: 443
        tls:
          mode: SIMPLE

通过此设置,我可以看到通过出口的流量(并且我有指标和跟踪出口端)。然而,没有关于起源的细节——这是有道理的,因为边车的特使看不到里面的交通情况。

有没有办法在不破解源 pod 源代码的情况下向出口提供源详细信息?如果可以设置它,我通常对 tls-in-tls 之类的奇怪东西很好(我不确定我是否可以在出口处终止 tls 两次——对于 istio_mutual 和简单层)。

4

0 回答 0