• Русский
  • Настройка внедряемого gateway для входящего трафика

    Когда gateway устанавливается с помощью внедрения gateway injection, вы можете настроить его для обработки входящего трафика, используя ресурсы Istio Gateway и VirtualService вместе. Ресурс Istio Gateway определяет балансировщик нагрузки, который работает на границе mesh, обрабатывая входящие или исходящие HTTP/TCP соединения. Спецификация Gateway описывает набор портов для экспонирования, используемый протокол и настройки Server Name Indication (SNI) для балансировщика нагрузки. VirtualServices используются для определения правил маршрутизации для Istio Gateway, аналогично тому, как они определяют правила маршрутизации для трафика внутри mesh.

    В следующем примере ресурс Istio Gateway настраивает прокси gateway для работы в качестве точки входа для внешнего трафика. Эта конфигурация открывает порт 443 (HTTPS) для хоста bookinfo.com. Настройка применяется к pod с меткой istio: ingressgateway. Режим tls установлен в SIMPLE, что означает, что входящий HTTPS трафик завершается с использованием предоставленного TLS Secret.

    Пример конфигурации

    apiVersion: networking.istio.io/v1
    kind: Gateway
    metadata:
      name: bookinfo-gateway
      namespace: bookinfo
    spec:
      selector:
        istio: ingressgateway
      servers:
        - port:
            number: 443
            name: https-443
            protocol: HTTPS
          hosts:
            - bookinfo.com
          tls:
            mode: SIMPLE
            credentialName: bookinfo-credential

    Ниже приведён VirtualService, связанный с ресурсом Istio Gateway из предыдущего примера конфигурации. Его спецификация создаёт правила для направления трафика с префиксом пути /reviews/ к сервису reviews в пространстве имён bookinfo. VirtualService явно ссылается на ранее показанный ресурс Gateway, гарантируя, что эти правила маршрутизации применяются только к трафику, проходящему через этот конкретный gateway.

    Пример конфигурации

    kind: VirtualService
    metadata:
      name: bookinfo-rule
      namespace: bookinfo
    spec:
      hosts:
        - bookinfo.com
      gateways:
        - bookinfo/bookinfo-gateway
      http:
        - match:
            - uri:
                prefix: /reviews/
          route:
            - destination:
                port:
                  number: 9080
                host: reviews.bookinfo.svc.cluster.local