Приложения хостинга CISCO IOS XR

Хостинг приложений на IOS XR
В этом разделе объясняются различные виды хостинга приложений и демонстрируется, как простое приложение может размещаться в собственном или в стороннем контейнере на IOS XR.
- Хостинг приложений с использованием Docker-контейнеров.
- Хостинг контейнерных приложений на базе Docker.
Хостинг приложений с использованием Docker-контейнеров
Хостинг приложений на IOS XR поддерживает контейнеры Docker. Вы можете создать свой собственный контейнер в IOS XR с помощью Docker и размещать приложения в контейнере. Приложения можно разрабатывать с использованием любого дистрибутива Linux. Это хорошо подходит для приложений, использующих системные библиотеки, отличные от предоставляемых корнем IOS XR. file система. Cisco NCS 540 поддерживает только хостинг приложений на базе Docker.
Хостинг контейнерных приложений на базе Docker
В этом разделе представлена концепция хостинга контейнерных приложений и описан рабочий процесс. Хостинг контейнерных приложений позволяет размещать приложения в их собственной среде и пространстве процессов (пространстве имен) внутри контейнера Linux на Cisco IOS XR. Разработчик приложения имеет полный контроль над средой разработки приложений и может использовать любой дистрибутив Linux по своему выбору. Приложения изолированы от процессов плоскости управления IOS XR; тем не менее, они могут подключаться к сетям за пределами XR через интерфейсы XR GigE. Приложения также могут легко получить доступ к локальным file системы на iOS XR.
Использование Docker для размещения приложений на Cisco IOS XR
Docker — это контейнер, используемый для размещения приложений на Cisco IOS XR. Docker обеспечивает изоляцию процессов приложения от базовых процессов хоста в XR с помощью сетевых пространств имен Linux.
Необходимость Docker на Cisco IOS XR
Docker становится предпочтительной моделью упаковки для приложений в сфере виртуализации. Docker обеспечивает основу для автоматизации управления жизненным циклом приложений. Docker следует многоуровневому подходу, который состоит из базового образа внизу и поддержки слоев приложений сверху. Базовые образы общедоступны в репозитории, в зависимости от типа приложения, которое вы хотите установить поверх. Вы можете управлять образами Docker, используя индекс Docker и реестр. Docker обеспечивает рабочий процесс, подобный git, для разработки контейнерных приложений и поддерживает механизм «тонкого обновления», при котором обновляются только различия в исходном коде, что приводит к более быстрому обновлению. Docker также предоставляет механизм «тонкой загрузки», при котором новые приложения загружаются быстрее благодаря совместному использованию общих базовых слоев Docker между несколькими контейнерами Docker. Совместное использование слоев докеров между несколькими контейнерами докеров приводит к уменьшению занимаемой площади для контейнеров докеров в XR.
Архитектура Docker на Cisco IOS XR
На следующем рисунке показана архитектура Docker в IOS XR.

Двоичные файлы приложений, которые будут размещены, устанавливаются внутри Docker-контейнера.
Размещение приложений в контейнерах Docker
На следующем рисунке показан рабочий процесс размещения приложений в контейнерах Docker на IOS XR.

- Докер file в репозитории исходного кода используется для сборки двоичного файла приложения file на вашей хост-машине (сборка Docker Engine).
- Бинарное приложение file помещается в реестр образов Docker.
- Бинарное приложение file извлекается из реестра образов Docker и копируется в контейнер Docker на XR (целевой хост механизма Docker).
- Приложение создается и размещается в Docker-контейнере на XR.
Обновление приложений в Docker-контейнерах
На следующем рисунке показан рабочий процесс обновления приложений, размещенных в контейнерах Docker.
- Обновление приложения создается как обновление базовых библиотек. file (обновление дельты file) и отправлен в реестр образов Docker.
- Дельта-обновление file (содержащий только разницу в коде приложения) извлекается из реестра образов Docker и копируется в контейнеры Docker на XR (целевой хост механизма Docker).
- Докер-контейнеры перезапускаются с дельта-обновлением. file.
Хостинг TPA с использованием диспетчера приложений
Таблица 1. Таблица истории функций
| Особенность Имя | Информация о выпуске | Особенность Описание |
| Служба демона Docker по требованию | Выпуск 7.5.1 | Начиная с этого выпуска,
Служба демона Docker запускается на маршрутизаторе только в том случае, если вы настраиваете стороннее приложение хостинга с помощью приложениемгр команда. Такая услуга по требованию оптимизирует ресурсы операционной системы, такие как процессор, память и мощность. В более ранних выпусках служба демона Docker автоматически запускалась во время загрузки маршрутизатора. |
В предыдущих выпусках приложения размещались и управлялись командами Docker. Эти команды Docker выполнялись в оболочке bash ядра, на котором также размещалось программное обеспечение Cisco IOS XR. С появлением Application Manager теперь стало возможным управлять хостингом сторонних приложений и их функционированием через интерфейс командной строки Cisco IOS XR. Благодаря этой функции все активированные сторонние приложения могут автоматически перезагружаться после перезагрузки маршрутизатора или переключения RP. Этот автоматический перезапуск приложений обеспечивает бесперебойную работу размещенных приложений.
Поддерживаемые команды в диспетчере приложений
Для каждой выполняемой команды или конфигурации диспетчера приложений диспетчер приложений выполняет запрошенное действие, взаимодействуя с демоном Docker через сокет Docker. В следующей таблице перечислены функциональные возможности контейнера Docker, общие команды Docker, которые использовались в предыдущих выпусках, а также эквивалентные команды диспетчера приложений, которые теперь можно использовать:
| Функциональность | Общие команды Docker | Приложение Менеджер Команды |
| Установите приложение RPM | NA | Установка пакета Router#appmgr в минуту
имя_изображения-0.1.0-XR_7.3.1.x86_64.об/мин |
| Настройте и активируйте приложение | • Загрузить образ — [xr-vm_node0_RP0_CPU0:~]$docker load -i /tmp/имя_изображения.tar
• Проверьте изображение на маршрутизаторе – xr-vm_node0_RP0_CPU0:~]$docker images ls • Создать контейнер поверх изображения – [xr-vm_node0_RP0_CPU0:~]$docker создать имя_изображения |
Маршрутизатор#конфигурация
Router(config)#appmgr Router(config-appmgr)#application имя_приложения Router(config-application)#Activate type docker source имя_изображения docker-run-opts «–net=host» docker-run-cmd «iperf3 -s -d» |
| • Запустить контейнер – [xr-vm_node0_RP0_CPU0:~]$docker start. мой_контейнер_ид | Маршрутизатор(конфигурация-приложение)#commit | |
| View список, статистика, логи и сведения о приложении
контейнер |
• Список изображений
-[xr-vm_node0_RP0_CPU0:~]$docker images ls • Список контейнеров – [xr-vm_node0_RP0_CPU0:~]$docker пс• Статистика -[xr-vm_node0_RP0_CPU0:~]$docker статистика |
Router#show appmgr исходная таблица
Router#показать имя приложения appmgr имя_приложения сводная информация Router#показать имя приложения appmgr имя_приложения информация деталь Router#показать имя приложения appmgr имя_приложения статистика |
| • Журналы
-[xr-vm_node0_RP0_CPU0:~]$docker журналы |
Router#show appmgr-таблицу приложений
Router#показать имя приложения appmgr имя_приложения журналы |
| Функциональность | Общие команды Docker | Приложение Менеджер Команды |
| Запустите новый | • Выполнить — [xr-vm_node0_RP0_CPU0:~]$docker exec -it мой_контейнер_ид | Router#appmgr приложение exec |
| команда
внутри |
имя имя_приложения докер-exec-cmd | |
| бег | ||
| контейнер | ||
| Остановить контейнер приложения | • Остановить контейнер — [xr-vm_node0_RP0_CPU0:~]$docker stop. мой_контейнер_ид | Имя остановки приложения Router#appmgr имя_приложения |
| Убить контейнер приложения | • Уничтожить контейнер – [xr-vm_node0_RP0_CPU0:~]$docker kill. мой_контейнер_ид | Имя уничтожения приложения Router#appmgr имя_приложения |
| Запустите контейнер приложения | • Запустить контейнер – [xr-vm_node0_RP0_CPU0:~]$docker start. мой_контейнер_ид | Начальное имя приложения Router#appmgr имя_приложения |
| Деактивировать приложение | • Остановить контейнер — [xr-vm_node0_RP0_CPU0:~]$docker stop. мой_контейнер_ид | Маршрутизатор#настроить
Маршрутизатор(конфигурация)#нет приложения appmgr имя_приложения |
| • Удалить контейнер — [xr-vm_node0_RP0_CPU0:~]$docker rm. мой_контейнер_ид | Маршрутизатор(конфигурация)#commit | |
| • Удалить изображение — [xr-vm_node0_RP0_CPU0:~]$docker rmi. имя_изображения | ||
| Удалите образ приложения/RPM | • Образ удаления — [xr-vm_node0_RP0_CPU0:~]$docker удаление приложения. имя_изображения | Пакет удаления пакета Router#appmgr
имя_изображения-0.1.0-XR_7.3.1.x86_64 |
Примечание: Использование команд диспетчера приложений описано в разделе «Размещение iPerf в контейнерах Docker для мониторинга производительности сети с помощью диспетчера приложений».
Настройка Docker с несколькими VRF
В этом разделе описывается, как настроить Docker с несколькими VRF в Cisco IOS XR. Информацию о настройке нескольких VRF см. в разделе «Настройка нескольких VRF для размещения приложений».
Конфигурация
Выполните следующие шаги, чтобы создать и развернуть Docker с несколькими VRF в XR.
- Создайте Docker с несколькими VRF с привилегиями NET_ADMIN и SYS_ADMIN.
В следующем примереample запускается Docker-контейнер, содержащий три VRF (желтый, синий и зеленый). Эксample предполагает, что предыдущий образ Docker «multivrfimage» был установлен с помощью команды установки пакета appmgr.
Примечание:- Монтировать все содержимое /var/run/netns с хоста в Docker не рекомендуется, поскольку при этом содержимое netns, соответствующее XR и плоскости системного администратора, монтируется в Docker.
- Не следует удалять VRF из Cisco IOS XR, если он используется в Docker. Если один или несколько VRF удалены из XR, Docker с несколькими VRF невозможно запустить.
- Убедитесь, что Docker с несколькими VRF успешно загружен.

- Подключитесь к Docker-контейнеру с несколькими VRF, выполнив следующую команду.
Маршрутизатор# имя приложения appmgr multivrfcontainer1 docker-exec-cmd /bin/bash/
По умолчанию Docker загружается в пространство имен global-vrf в Cisco IOS XR. - Убедитесь, что несколько VRF доступны из Docker.


Вы успешно запустили Docker с несколькими VRF на Cisco IOS XR.
Документы/Ресурсы
![]() |
Приложения хостинга CISCO IOS XR [pdf] Руководство пользователя Приложения хостинга IOS XR, IOS XR, Приложения хостинга, Приложения |

