gpt4 book ai didi

kubernetes - 如何使用 istio virtualservice 将请求转发到公共(public)服务(如 cdn)?

转载 作者:行者123 更新时间:2023-12-02 12:13:10 34 4
gpt4 key购买 nike

我正在尝试使用 istio 虚拟服务进行反向代理

可以在虚拟服务中转发请求吗? (如 nginx 的 proxy_pass)

结果,

  • http://myservice.com/about/ * -> 将请求转发到 CDN(k8s 系统外的外部服务 - aws s3 等....)
  • http://myservice.com/ * -> my-service-web(内部服务包含在 istio 网格中)

  • 定义了服务入口,但它只是“重定向”,而不是转发请求。

    这是我的 serviceentry.yaml 和 virtualservice.yaml
  • 服务入口.yaml
  • apiVersion: networking.istio.io/v1alpha3
    kind: ServiceEntry
    metadata:
    name: my-service-proxy
    namespace: my-service
    spec:
    hosts:
    - CDN_URL
    location: MESH_EXTERNAL
    ports:
    - number: 80
    name: http
    protocol: HTTP
    - number: 443
    name: https
    protocol: TLS
    resolution: DNS

  • 虚拟服务.yaml
  • apiVersion: networking.istio.io/v1alpha3
    kind: VirtualService
    metadata:
    name: my-service
    namespace: my-service
    spec:
    hosts:
    - myservice.com
    gateways:
    - myservice
    http:
    - match:
    - uri:
    prefix: /about
    rewrite:
    authority: CDN_URL
    uri: /
    route:
    - destination:
    host: CDN_URL
    - route:
    - destination:
    host: my-service-web.svc.cluster.local
    port:
    number: 80


    虚拟服务可以像 nginx-igress 一样工作吗?

    最佳答案

    基于此istio discuss

    用户@palic 在这里问了同样的问题

    Shouldn’t it be possible to let ISTIO do the reverse proxy thing, so that no one needs a webserver (httpd/nginx/ lighthttpd/…) to do the reverse proxy job?



    @Daniel_Watrous 提供的答案

    The job of the Istio control plane is to configure a fleet of reverse proxies. The purpose of the webserver is to serve content, not reverse proxy. The reverse proxy technology at the heart of Istio is Envoy, and Envoy can be use as a replacement for HAProxy, nginx, Apache, F5, or any other component that is being used as a reverse proxy.



    it is possible forward request in virtual service



    基于此,我会说在虚拟服务中是不可能的,它只是重写(重定向),我认为它对你有用。

    when i need function of reverse proxy, then i have to using nginx ingresscontroller (or other things) instead of istio igress gateway?



    如果我们谈论反向代理,那么是的,您需要使用 istio 本身以外的其他技术。

    就我而言,您可以使用一些 nginx pod,它将被配置为外部服务的反向代理,它将成为您的虚拟服务的主机。

    所以它看起来像下面的例子。

    示例

    入口网关 -> 虚拟服务 -> nginx pod(在 nginx 上配置反向代理)
    服务入口 -> 集群外 URL 的可访问性

    如果您还有其他问题,请告诉我。

    关于kubernetes - 如何使用 istio virtualservice 将请求转发到公共(public)服务(如 cdn)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60053270/

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