Развертывание Bookinfo

Это руководство поможет вам развернуть приложение Bookinfo в вашей среде и проверить успешность развертывания.

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

  • У вас есть аккаунт в Customer Portal с правом загрузки из App Market. Если у вас нет аккаунта, обратитесь в техническую поддержку.

Содержание

Шаг 1: Создайте проект и namespace для Bookinfo

  1. Создайте проект и namespace
    В разделе Project Management нажмите Create Project, задайте имя demo и выберите кластер, в котором планируете развернуть приложение Bookinfo.
    После создания проекта перейдите на страницу его деталей. В левой навигационной панели выберите Namespaces, затем нажмите Create Namespace и задайте имя demo-dev.
    Если у вас уже есть проект и namespace, подходящие для развертывания Bookinfo, этот шаг можно пропустить, заменив namespace в последующих командах на ваш.

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

Шаг 2: Загрузите ресурсы Bookinfo

  1. Войдите и скачайте
    Войдите в Customer Portal, найдите "Bookinfo" в App Market и скачайте необходимые ресурсы.

Шаг 3: Загрузите образы

  1. Загрузите и распакуйте пакет
    Загрузите скачанный пакет на сервер или ПК с доступом к вашему реестру образов. Распакуйте пакет, чтобы получить следующие файлы:

    tar -xzvf <package>
    • bookinfo-images-arm64.tar: образы Bookinfo для архитектуры ARM.
    • bookinfo-images-amd64.tar: образы Bookinfo для архитектуры x86.
    • push-images.sh: скрипт для загрузки образов, автоматически обновляющий ссылки на образы в bookinfo.yaml.
    • bookinfo.yaml: YAML-файл для развертывания Bookinfo, включающий конфигурации Service и Deployment.
  2. Назначьте права на выполнение скрипта

    chmod +x push-images.sh
  3. Запустите скрипт для загрузки образов

    Выполните команду для загрузки образов в целевой реестр:

    # Пример ./push-images.sh ./bookinfo-images-amd64.tar 192.168.143.0:32767 true admin 'Aa123!@#' bookinfo-demo
    ./push-images.sh <source-image> <target-registry> <requires-auth> [username] [password] [harbor-project]

    Описание параметров:

    • source-image: путь к файлу образа.
    • target-registry: адрес и порт реестра образов. Важно: префикс https:// или http:// указывать не нужно.
    • requires-auth: требуется ли аутентификация. Если нет — false, если да — true с указанием username и password.
    • username: имя пользователя реестра образов.
    • password: пароль для реестра образов. Рекомендуется заключать пароль в одинарные кавычки, чтобы избежать ошибок разбора командной строки из-за специальных символов.
    • harbor-project: при использовании Harbor укажите имя проекта в Harbor; при использовании Docker Registry этот параметр можно оставить пустым.

Шаг 4: Разверните приложение Bookinfo

  1. Разверните с помощью kubectl
    Откройте платформу контейнеров или страницу управления платформой, затем нажмите инструмент kubectl в правом нижнем углу.

  2. Примените YAML-файл
    С помощью vi или другого терминального редактора вставьте содержимое bookinfo.yaml и выполните команду:

    kubectl apply -f bookinfo.yaml -n <your-namespace>
  3. Проверьте успешность развертывания

    • Убедитесь, что все Pods находятся в состоянии Running:

      kubectl get pods -n <your-namespace>
    • Проверьте доступность приложения:

      kubectl exec "$(kubectl get pod -n <your-namespace> -l app=ratings -o jsonpath='{.items[0].metadata.name}')" \
          -n <your-namespace> -c ratings -- curl -s productpage:9080/productpage | \
          grep -o "<title>.*</title>"

      Ожидаемый вывод:

      <title>Simple Bookstore App</title>