gpt4 book ai didi

kubernetes - 如何在 ISTIO 中配置 TLS 源?

转载 作者:行者123 更新时间:2023-12-01 04:28:43 24 4
gpt4 key购买 nike

Istio 不会通过 TLS 发起路由到外部 HTTPs 服务。

我有一个包含两个容器的 pods :
- 应用
- ISTIO 代理

应用程序调用驻留在 https://someurl.somedomain.com/v1/some-service 上的外部第三方 API

应用程序通过调用 http://someurl.somedomain.com/v1/some-service 向该服务发送 HTTP 请求- 请注意,它是 HTTP 而不是 HTTPs。

然后我在 ISTIO 中配置了以下内容:

  • 将 HTTP 流量路由到端口 443 的虚拟服务:
  • ---
    apiVersion: networking.istio.io/v1alpha3
    kind: VirtualService
    metadata:
    name: someservice-vs
    spec:
    hosts:
    - someurl.somedomain.com
    http:
    - match:
    - port: 80
    route:
    - destination:
    host: someurl.somedomain.com
    port:
    number: 443
    timeout: 40s
    retries:
    attempts: 10
    perTryTimeout: 4s
    retryOn: gateway-error,connect-failure,refused-stream,retriable-4xx,5xx
  • 允许流量流出的服务入口。如您所见,我们指定服务在网格外部,我们打开了 443 和 80,它们都使用 HTTP,但 443 配置为 TLS 发起。
  • apiVersion: networking.istio.io/v1alpha3
    kind: ServiceEntry
    metadata:
    name: someservice-se
    spec:
    hosts:
    - someurl.somedomain.com
    location: MESH_EXTERNAL
    ports:
    - number: 443
    name: http-port-for-tls-origination
    protocol: HTTP
    - number: 80
    name: http-port
    protocol: HTTP
    resolution: DNS


    最后,我有一个将简单 TLS 应用于传出流量的目标规则:

    ---
    apiVersion: networking.istio.io/v1alpha3
    kind: DestinationRule
    metadata:
    name: someservice-destinationrule
    spec:
    host: someurl.somedomain.com
    trafficPolicy:
    loadBalancer:
    simple: ROUND_ROBIN
    portLevelSettings:
    - port:
    number: 443
    tls:
    mode: SIMPLE # initiates HTTPS when accessing someurl.somedomain.com


    出于某种原因,这不起作用,当我从我的应用程序容器调用服务时得到 404,这表明流量没有通过 TLS 加密。

    我使用 TLS 发起的原因是因为我需要在我的虚拟服务中应用重试,我只能使用 HTTP 路由执行此操作,否则 ISTIO 无法看到请求并使用它。

    我已经挠了两天了,需要一些帮助,请:-)

    最佳答案

    到了这一步。 ISTIO 文档是正确的 - TLS 发起和重试按预期工作。

    该问题是由过低的 perTryTimeout 值引起的。请求未在分配的时间内完成,因此网关超时。它让我们感到震惊,因为最近外部服务的性能下降了,我们没有考虑检查它。

    关于kubernetes - 如何在 ISTIO 中配置 TLS 源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56055431/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com