Развертывание демонстрационного приложения Bookinfo
Используйте этот документ, чтобы развернуть приложение Bookinfo в одном и том же namespace в нескольких кластерах внутри service mesh, чтобы проверить возможности multi-cluster service mesh.
Содержание
Подготовка проектов и namespaceРазвертывание приложения Bookinfo в нескольких кластерахПредварительные требованияОписание приложенияПодготовка образов и YAML-файловШагиРазвертывание приложения в один кликШагиВнедрение Sidecar в сервисы приложенияШагиДоступ к приложению Bookinfo через Ingress GatewayШагиПроверка доступаПодготовка проектов и namespace
Подготовьте проекты и namespace для развертывания приложения со следующими требованиями к конфигурации:
-
Все кластеры должны быть связаны с существующими проектами платформы в качестве associated clusters.
-
Namespace с одинаковым именем, используемый для развертывания приложения, должен существовать во всех кластерах.
Примечание: Межрегиональное аварийное восстановление или балансировка нагрузки на основе multi-cluster service mesh может выполняться только между сервисами с одинаковыми именами в namespace с одинаковыми именами во всех кластерах внутри service mesh.
Подготовьте проекты и 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.crictl_script.sh: Скрипт для назначения тегов образам, загрузки образов и изменения адресов образов в YAML-файле.
-
Выполните следующую команду, чтобы войти в образный репозиторий, доступный платформе.
NOTEЗамените
<Harbor address>на фактический доступный адрес Harbor на платформе, например:registry-harbor.example.com.NOTEЕсли после ввода имени пользователя и пароля вы получите следующую ошибку, измените конфигурацию container runtime, добавив адрес Harbor в insecure-registries, а затем повторно выполните команду входа.
-
Измените файл сценария crictl_script.sh.
Замените
<Harbor address>на адрес проекта Harbor, в который вы хотите загрузить образы, например:registry-harbor.example.com/bookinfo. -
Последовательно выполните следующие команды.
Следующие команды запускают скрипт crictl_script.sh для назначения тегов образам, загрузки образов в проект Harbor и изменения адресов образов в файле bookinfo.yaml.
Развертывание приложения в один клик
В платформе Container Platform используйте 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.
Ниже показана топология вызовов сервисов.
