• Русский
  • Развертывание демонстрационного приложения Bookinfo

    Используйте этот документ, чтобы развернуть приложение Bookinfo в одном и том же namespace в нескольких кластерах внутри service mesh, чтобы проверить возможности multi-cluster service mesh.

    Подготовка проектов и namespace

    Подготовьте проекты и namespace для развертывания приложения со следующими требованиями к конфигурации:

    • Все кластеры должны быть связаны с существующими проектами платформы в качестве associated clusters.

    • Namespace с одинаковым именем, используемый для развертывания приложения, должен существовать во всех кластерах.

      Примечание: Межрегиональное аварийное восстановление или балансировка нагрузки на основе multi-cluster service mesh может выполняться только между сервисами с одинаковыми именами в namespace с одинаковыми именами во всех кластерах внутри service mesh.

    Подготовьте проекты и namespace, следуя приведенным ниже инструкциям:

    1. Обратитесь к Create a Project и создайте на платформе проект, включающий associated clusters c1 и c2.

    2. Обратитесь к Create a Namespace и создайте namespace с именем ns1 в кластерах c1 и c2.

    Развертывание приложения Bookinfo в нескольких кластерах

    Разверните приложение Bookinfo в namespace ns1 с одинаковым именем в кластерах c1 и c2.

    Предварительные требования

    У вас должен быть образный репозиторий, доступный платформе, и вы должны иметь возможность загружать в него образы.

    NOTE

    В этом документе в качестве примера используется Harbor. Вам необходимо подготовить проект в Harbor для загрузки образов (с установленным access level public) и назначить этот проект для использования проекту, подготовленному для Bookinfo на платформе. Вы можете развернуть или интегрировать инструмент управления образами Harbor на платформе и назначить проект для загрузки образов в Harbor проекту, подготовленному для Bookinfo на платформе.

    Описание приложения

    Bookinfo — это демонстрационное приложение, предоставляемое Istio, которое имитирует интернет-магазин книг. Оно состоит из четырех отдельных сервисов, которые вместе обеспечивают просмотр описания книги, сведений о книге (ISBN, количество страниц и т. д.) и некоторых отзывов о книге.

    Сервисы, входящие в состав Bookinfo, перечислены ниже:

    Имя сервисаОписание
    productpageВызывает сервисы details и reviews для формирования страницы.
    detailsСодержит информацию о книге.
    reviewsСодержит отзывы о книге и вызывает сервис ratings.

    Сервис reviews имеет три версии:
    v1: Не вызывает сервис ratings.
    v2: Вызывает сервис ratings и отображает оценку в виде от 1 до 5 звезд .
    v3: Вызывает сервис ratings и отображает оценку в виде от 1 до 5 звезд .
    Совет: По умолчанию развертывается версия v2.
    ratingsСодержит информацию об оценках, сформированную на основе отзывов о книге.

    Ниже показана сквозная архитектура Bookinfo.

    Подготовка образов и YAML-файлов

    Перед развертыванием приложения Bookinfo на платформе необходимо загрузить образы и YAML-файлы, требуемые для развертывания приложения Bookinfo, из системы Customer Portal.

    Выполнив скрипт, пометьте образы тегами и загрузите их в образный репозиторий, доступный платформе, а также соответствующим образом измените адреса образов в YAML-файлах. Убедитесь, что платформа может без проблем извлекать необходимые образы при развертывании приложения.

    Шаги

    1. Войдите в Customer Portal, найдите Bookinfo в Application Marketplace и загрузите предоставленные файлы продукта на локальный компьютер.

      TIP

      Для доступа к системе Customer Portal обратитесь в техническую поддержку.

    2. Откройте локальный терминал и выполните следующие команды, чтобы распаковать загруженные файлы и загрузить образы.

      unzip <file_name>.zip
      crictl load -i images.tar
      NOTE

      После распаковки вы получите следующие файлы:

      • images.tar: Пакет образов Bookinfo.
      • bookinfo.yaml: YAML-файл Bookinfo.
      • crictl_script.sh: Скрипт для назначения тегов образам, загрузки образов и изменения адресов образов в YAML-файле.
    3. Выполните следующую команду, чтобы войти в образный репозиторий, доступный платформе.

      NOTE

      Замените <Harbor address> на фактический доступный адрес Harbor на платформе, например: registry-harbor.example.com.

      crictl login <Harbor address>
      NOTE

      Если после ввода имени пользователя и пароля вы получите следующую ошибку, измените конфигурацию container runtime, добавив адрес Harbor в insecure-registries, а затем повторно выполните команду входа.

      Error response from daemon: Get "https://<Harbor address>/v2/": http: server gave HTTP response to HTTPS client
    4. Измените файл сценария crictl_script.sh.

      Замените <Harbor address> на адрес проекта Harbor, в который вы хотите загрузить образы, например: registry-harbor.example.com/bookinfo.

    5. Последовательно выполните следующие команды.

      Следующие команды запускают скрипт crictl_script.sh для назначения тегов образам, загрузки образов в проект Harbor и изменения адресов образов в файле bookinfo.yaml.

      chmod +x crictl_script.sh
      ./crictl_script.sh

    Развертывание приложения в один клик

    В платформе Container Platform используйте YAML для создания нативного приложения в namespace ns1 кластеров c1 и c2, чтобы развернуть приложение Bookinfo.

    Шаги

    1. В верхней панели навигации нажмите переключатель представления продукта, чтобы перейти в Container Platform, и откройте namespace ns1 в кластере c1.

    2. В левой панели навигации нажмите Application Management > Native Application.

    3. Нажмите Create Native Application и выберите One-Click Create with YAML.

    4. Введите имя приложения, нажмите Import в редакторе YAML, выберите bookinfo.yaml и нажмите Create.

    5. Повторите указанные выше шаги, чтобы развернуть приложение Bookinfo в namespace ns1 кластера c2.

    Внедрение Sidecar в сервисы приложения

    В платформе Service Mesh добавьте сервисы productpage, details, reviews и ratings, из которых состоит приложение Bookinfo, в платформу Service Mesh в режиме Service Mesh governance mode. При добавлении сервисов платформа автоматически внедряет Sidecar в сервисы.

    После внедрения Sidecar архитектура Bookinfo выглядит следующим образом.

    Шаги

    1. В верхней панели навигации нажмите переключатель представления продукта, чтобы перейти в Service Mesh.

    2. В левой панели навигации нажмите Service List.

    3. Нажмите Add Service и выберите Service Mesh Governance Mode.

    4. Настройте соответствующие параметры и нажмите Create.

      NOTE

      Если не указано иное, выберите Deployment и используйте значения параметров по умолчанию в интерфейсе.

      • Повторите указанные выше шаги, чтобы добавить сервисы productpage, details, reviews и ratings на платформу в namespace ns1 кластеров c1 и c2.

    Доступ к приложению Bookinfo через Ingress Gateway

    Шаги

    Обратитесь к Using Ingress Gateway, чтобы развернуть ingress gateway в кластере c1 и создать конфигурацию gateway и конфигурацию маршрутизации для доступа к приложению Bookinfo, развернутому в кластере, через браузер.

    Настройте соответствующие параметры согласно требованиям и при необходимости задайте другие параметры.

    • Ingress Gateway:

      • Internal Routing Type: LoadBalancer.

      • Порт включает порт протокола HTTP.

    • Gateway Configuration: Выберите порт с протоколом HTTP.

    • Routing Configuration: В Routing Destination выберите namespace ns1 in cluster c1, internal routing productpage и порт 9080.

    Проверка доступа

    Нажмите External Access Address в конфигурации маршрутизации, выберите в нижней левой части открывшейся страницы тип имитируемого пользователя (Normal user/Test user), после чего вы сможете получить доступ к сервису productpage и увидеть отображаемую информацию об оценках, которую показывает версия сервиса reviews, вызываемая сервисом productpage.

    Ниже показана топология вызовов сервисов.