Развертывание демонстрационного приложения Bookinfo
Обратитесь к этому документу для развертывания приложения Bookinfo в одном и том же namespace на нескольких кластерах внутри сервисной сетки для проверки возможностей мультикластерной сервисной сетки.
Содержание
Подготовка проектов и namespace
Подготовьте проекты и namespace для развертывания приложения с учетом следующих требований к конфигурации:
-
Все кластеры должны быть связаны с существующими проектами платформы как associated clusters.
-
В каждом кластере должен существовать namespace с одинаковым именем для развертывания приложения.
Примечание: Межрегиональное аварийное восстановление или балансировка нагрузки на основе мультикластерной сервисной сетки возможны только между сервисами с одинаковыми именами в namespace с одинаковыми именами на кластерах внутри сервисной сетки.
Вы можете подготовить проекты и namespace, следуя инструкциям ниже:
- Обратитесь к Create a Project для создания проекта на платформе, включающего associated clusters
c1иc2.
- Обратитесь к Create a Namespace для создания namespace с именем
ns1в кластерахc1иc2.
Развертывание приложения Bookinfo на нескольких кластерах
Разверните приложение Bookinfo в namespace с именем ns1 в кластерах c1 и c2.
Предварительные условия
У вас должен быть репозиторий образов, доступный платформе, и возможность загружать образы в этот репозиторий.
В этом документе в качестве примера используется Harbor. Вам необходимо подготовить проект в Harbor для загрузки образов (с уровнем доступа access level установленным в public) и назначить этот проект для использования проектом, подготовленным для Bookinfo на платформе. Вы можете развернуть или интегрировать инструмент управления образами Harbor на платформе и назначить проект для загрузки образов в Harbor проекту, подготовленному для Bookinfo на платформе.
Введение в приложение
Bookinfo — это пример приложения, предоставляемого Istio, имитирующий онлайн-книжный магазин. Оно состоит из четырёх отдельных сервисов, которые вместе обеспечивают функциональность просмотра описания книги, деталей книги (ISBN, количество страниц и т. д.) и некоторых отзывов о книге.
Сервисы, составляющие Bookinfo, следующие:
Ниже показана сквозная архитектура Bookinfo.
Подготовка образов и YAML-файлов
Перед развертыванием приложения Bookinfo на платформе необходимо скачать образы и YAML-файлы, необходимые для развертывания приложения Bookinfo, из системы Customer Portal.
Выполнив скрипт, выполните тегирование образов и загрузите их в репозиторий образов, доступный платформе, а также измените адреса образов в YAML-файлах соответственно. Убедитесь, что платформа сможет без проблем подтягивать необходимые образы при развертывании приложения.
Шаги
-
Войдите в Customer Portal, найдите Bookinfo в Application Marketplace и скачайте предоставленные файлы продукта на локальный компьютер.
TIPДля доступа к системе Customer Portal обратитесь в техническую поддержку.
-
Откройте локальный терминал и выполните следующие команды для распаковки скачанных файлов и загрузки образов.
NOTEПосле распаковки вы получите следующие файлы:
images.tar: пакет образов Bookinfo.bookinfo.yaml: YAML-файл Bookinfo.docker_script.sh: скрипт для тегирования образов, загрузки образов и изменения адресов образов в YAML-файле.
-
Выполните команду для входа в репозиторий образов, доступный платформе.
NOTEЗамените
<Harbor address>на фактический доступный адрес Harbor на платформе, например:registry-harbor.example.com.NOTEЕсли после ввода имени пользователя и пароля вы получите следующую ошибку, измените конфигурацию Docker Engine, добавив адрес Harbor в insecure-registries, затем повторите команду входа.
-
Отредактируйте скрипт docker_script.sh.
Замените
<Harbor address>на адрес проекта Harbor, куда вы хотите загрузить образы, например:registry-harbor.example.com/bookinfo. -
Последовательно выполните следующие команды.
Эти команды выполняют скрипт docker_script.sh для тегирования образов, загрузки образов в проект Harbor и изменения адресов образов в файле bookinfo.yaml.
Развертывание приложения в один клик
На платформе Container Platform создайте native application с помощью YAML в namespace ns1 кластеров c1 и c2 для развертывания приложения Bookinfo.
Шаги
-
В верхней панели навигации переключитесь на продуктовый вид Container Platform и перейдите в namespace
ns1кластераc1. -
В левой панели навигации выберите Application Management > Native Application.
-
Нажмите Create Native Application и выберите One-Click Create with YAML.
-
Введите имя приложения, нажмите Import в редакторе YAML, выберите bookinfo.yaml и нажмите Create.
-
Повторите описанные шаги для развертывания приложения Bookinfo в namespace
ns1кластераc2.
Внедрение Sidecar в сервисы приложения
На платформе Service Mesh добавьте сервисы productpage, details, reviews и ratings, составляющие приложение Bookinfo, в платформу Service Mesh с режимом управления Service Mesh governance mode. При добавлении сервисов платформа автоматически внедряет Sidecar в сервисы.
После внедрения Sidecar архитектура Bookinfo выглядит следующим образом.
Шаги
-
В верхней панели навигации переключитесь на продуктовый вид Service Mesh.
-
В левой панели навигации выберите Service List.
-
Нажмите Add Service и выберите Service Mesh Governance Mode.
-
Настройте соответствующие параметры и нажмите Create.
NOTEЕсли не указано иное, выберите Deployment и используйте значения параметров по умолчанию на интерфейсе.
- Повторите описанные шаги для добавления сервисов
productpage,details,reviewsиratingsв namespacens1кластеров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.
Ниже показана топология вызовов сервисов.
