Установите Egress Gateway Istio с помощью Helm

Вопрос или проблема

Я уже установил Istio Ingress Gateway в своем кластере AKS, используя Helm (используемые чарты istio/base, istio/istiod, istio/gateway с https://istio-release.storage.googleapis.com/charts).

Теперь я хочу также установить Istio Egress Gateway, но я не знаю, есть ли другой Helm чарт или мне нужно снова установить istio/gateway и настроить его как Egress.

Может кто-то помочь мне с этим, потому что в документации Istio нет четкой инструкции по установке с использованием Helm?

Что мне следует установить и настроить, чтобы направить весь кластерный трафик через этот Egress Gateway и ограничить доступ к определенным хостам для каждой рабочей нагрузки. например:

apiVersion: networking.istio.io/v1
kind: ServiceEntry
metadata:
  name: external-svc-https
  namespace: testing
spec:
  hosts:
  - api.dropboxapi.com
  - www.googleapis.com
  - api.facebook.com
  location: MESH_EXTERNAL
  exportTo: "."
  ports:
  - number: 443
    name: https
    protocol: TLS
  resolution: NONE

Я уже нашел способ разрешить доступ только к определенным хостам по пространству имен, используя ServiceEntry и изменив следующую конфигурацию для установки istiod.

meshConfig:
  outboundTrafficPolicy:
    mode: REGISTRY_ONLY

Ответ или решение

Установка Istio Egress Gateway с использованием Helm

Введение

В этой статье мы подробно рассмотрим процесс установки Istio Egress Gateway в кластере AKS с использованием Helm, а также конфигурацию, необходимую для маршрутизации трафика через шлюз. Установив Istio Ingress Gateway, следующий логичный шаг — это настройка Egress Gateway для управления исходящим трафиком.

Подготовка к установке

  1. Требования:

    • Убедитесь, что у вас установлен Helm (версия 3.0 и выше).
    • Проверьте, что у вас есть доступ к AKS-кластерам и вы можете выполнять команды kubectl.
  2. Добавление репозитория Helm:
    Для начала добавьте репозиторий для Istio, если вы еще этого не сделали:

    helm repo add istio https://istio-release.storage.googleapis.com/charts
    helm repo update

Установка Istio Egress Gateway

Istio Egress Gateway устанавливается через Helm-пакет, который является частью набора Helm-чартов Istio. В отличие от Ingress Gateway, вам не нужно повторно устанавливать istio/gateway. Вместо этого необходимо установить istio/egressgateway, что позволяет обрабатывать исходящий трафик.

  1. Установка Egress Gateway:

    Используйте следующую команду, чтобы установить Egress Gateway:

    helm install istio-egress istio/egressgateway --namespace istio-system

    Этот шаблон создаст службу, необходимую для обработки исходящего трафика. По умолчанию Egress Gateway будет настроен на использование стандартных параметров.

Настройка маршрутизации трафика через Egress Gateway

После установки необходимо настроить маршрутизацию трафика через Egress Gateway и ограничения доступа к конкретным хостам. Для этого создадим соответствующую конфигурацию ServiceEntry и изменим настройки в meshConfig.

  1. Создание ServiceEntry:

    Для ограничения доступа к внешним сервисам создайте YAML-файл с вашим определением ServiceEntry:

    apiVersion: networking.istio.io/v1
    kind: ServiceEntry
    metadata:
     name: external-svc-https
     namespace: testing
    spec:
     hosts:
       - api.dropboxapi.com
       - www.googleapis.com
       - api.facebook.com
     location: MESH_EXTERNAL
     exportTo: "."
     ports:
       - number: 443
         name: https
         protocol: TLS
     resolution: NONE

    Примените созданный файл с помощью команды:

    kubectl apply -f service-entry.yaml
  2. Настройки MeshConfig:

    Важно изменить параметры outboundTrafficPolicy для Istiod, чтобы разрешить трафик только через Egress Gateway. Чтобы задать режим REGISTRY_ONLY, выполните команду изменения конфигурации:

    meshConfig:
     outboundTrafficPolicy:
       mode: REGISTRY_ONLY

    Для применения обновлений используйте следующую команду:

    kubectl apply -f mesh-config.yaml

Заключение

Установка и конфигурация Istio Egress Gateway в вашем AKS-кластере с использованием Helm может значительно улучшить управление исходящим трафиком и безопасность вашего приложения. Вы можете гибко настраивать доступ для различных рабочих нагрузок, что позволяет контролировать и управлять сетевым трафиком более эффективно.

Не забудьте регулярно проверять документацию Istio для получения актуальной информации о версиях и новых возможностях. Если у вас будут возникать вопросы или потребуется помощь, сообщество Istio всегда готово поддержать вас в вашем пути.

Оцените материал
Добавить комментарий

Капча загружается...