• Русский
  • Доступ к Bookinfo

    В этом руководстве описывается, как получить доступ к Bookinfo через Istio Ingress Gateway и проверить его работоспособность. В данном руководстве Ingress Gateway использует классический API Istio VirtualService.

    Перед началом убедитесь, что:

    Для упрощения процесса настройки в этом руководстве используется метод NodePort для доступа к Ingress Gateway, что исключает необходимость в LoadBalancer. Доступ к приложению Bookinfo будет осуществляться через IP-адрес узла и порт узла.

    Содержание

    Шаг 1: Развертывание Ingress Gateway

    1. Создание проектов и пространств имен
      Перейдите на страницу Управление проектами, нажмите Создать проект, задайте имя platform и выберите кластер, в котором находится приложение Bookinfo.
      В деталях проекта, в левой навигационной панели, нажмите Namespaces и создайте пространство имен с именем platform-gateway.

    2. Развертывание Ingress Gateway
      Перейдите в Управление платформой, откройте Service Mesh > Gateways и нажмите Deploy Gateway. Заполните параметры шлюза:

      • Основная информация: имя public-ingressgw, тип шлюза — Ingress Gateway, выбор типа шлюза — Shared, остальные параметры оставьте по умолчанию.

      • Конфигурация развертывания: выберите пространство имен platform-gateway, метка узла — ingress:true, остальные параметры оставьте по умолчанию.

      • Сетевая конфигурация: выберите NodePort, установите HTTP порт хоста 30665, HTTPS порт хоста 30666.

      • Проверка доступности портов: выполните следующую команду, чтобы убедиться, что порты не заняты:

        kubectl get svc --all-namespaces -o custom-columns='NAMESPACE:.metadata.namespace,NAME:.metadata.name,TYPE:.spec.type,NODEPORT:.spec.ports[*].nodePort' | grep NodePort

    Шаг 2: Создание конфигурации Gateway

    1. Перейдите на страницу деталей шлюза, переключитесь на вкладку Gateway configuration и нажмите Create Gateway Configuration.
    2. Задайте имя public-ingressgw-gateway, выберите порт HTTP 80, установите Host в * и нажмите создать.

    Шаг 3: Создание Virtual Services

    1. Перейдите на вкладку Virtual Services, нажмите Create Routing configuration.
    2. Задайте имя public-ingressgw-vs, выберите пространство имен platform-gateway, в качестве маршрута назначения выберите Namespace: demo-dev, Service: productpage, Port: 9080.

    Тестирование входящего трафика

    1. Получите GATEWAY_IP_PORT:

      • Сначала найдите IP-адрес узла, на котором расположен Ingress Gateway, выполнив команду:

        kubectl get nodes -o wide
      • Используйте IP-адрес узла вместе с портом 30665, чтобы сформировать GATEWAY_IP_PORT, например, 192.168.130.0:30665.

    2. Выполните следующую команду, чтобы проверить корректность работы Ingress Gateway:

      export GATEWAY_IP_PORT=<node_IP>:30665
      curl -k -s http://$GATEWAY_IP_PORT/productpage | grep -o "<title>.*</title>"
    3. Ожидаемый вывод должен быть похож на:

      <title>Simple Bookstore App</title>