Играйте с серией корпоративных платформ облачных вычислений (7): Панель управления Openstack Service Horizon
Играйте с серией корпоративных платформ облачных вычислений (7): Панель управления Openstack Service Horizon

Введение в горизонт

Horizon как веб-интерфейс для OpenStack,Он обеспечивает визуальное управление различными модулями OpenStack. Horizon позволяет пользователям получать доступ к OpenStack через браузер,Нет необходимости использовать инструменты командной строки и другие клиенты.

Horizon — это веб-приложение, основанное на платформе Django, которая является ключевой частью OpenStack. С помощью Horizon пользователи могут свободно управлять облачными платформами, облачными аппаратными средствами и виртуализированными ресурсами.

Функциональная структура Horizon

Функциональная основа

Horizon в основном состоит из трех панелей: Панель. пользователя、Панель управления системыи Настроить панель мониторинга。Подробнее об услугах облачных вычислений Openstack Серия обучающих статей,Видеть:Корпоративная платформа облачных вычислений Openstack, эта серия постоянно обновляется.

Панель пользователя
Панель управления системы
Настроить панель мониторинга

Возможности интерфейса Горизонт

Horizon, как веб-интерфейс OpenStack, предоставляет богатые функции визуализации, упрощая пользователям работу с платформой OpenStack. Среди них он в основном включает в себя следующие функции:

  • 1. Аутентификация пользователя. Horizon поддерживает методы аутентификации на основе имени пользователя и пароля, а также предоставляет методы аутентификации пользователей на основе токенов.
  • 2. Управление виртуальными машинами. Horizon позволяет пользователям создавать, запускать, останавливать и перезапускать виртуальные машины и выполнять другие операции. Он также предоставляет списки виртуальных машин, снимки виртуальных машин и другие функции.
  • 3. Управление облачным хранилищем. Horizon поддерживает создание, управление и удаление облачного хранилища и в будущем предоставит больше функций.
  • 4.сетьуправлять:HorizonХОРОШОсетьруководить Конфигурация、контрольимонитор,тем самым обеспечивая полнуюсетьуправлять Функция。
  • 5. Управление балансировщиками нагрузки. Horizon обеспечивает создание балансировщиков нагрузки.、Функции конфигурации и мониторинга.

Horizon предоставляет два разных функциональных интерфейса для двух типов пользователей:

  • 1. Администратор облака: предоставляет общее представление о размере ресурсов и рабочем состоянии всего облака. Он может создавать конечных пользователей и проекты, назначать проекты конечным пользователям и управлять квотами ресурсов проекта.
  • 2. Конечные пользователи: предоставляет портал для автономного обслуживания.,Может находиться в проектах, назначенных администраторами.,В пределах не превышения нормативной квоты,Бесплатная операция、использоватьи Хранить сетевые ресурсы;

Короче говоря, Horizon предоставляет комплексные функции управления OpenStack и обладает хорошей ремонтопригодностью и масштабируемостью.

Установите и настройте Горизонт.

Установить пакеты
Язык кода:javascript
копировать
[root@controller ~]# yum install -y openstack-dashboard
Изменить файл конфигурации

редактировать/etc/openstack-dashboard/local_settings файл и выполните следующие действия. Настройте панель мониторинга для использования controllerна узле OpenStack Служить.

Язык кода:javascript
копировать
[root@controller ~]# vim /etc/openstack-dashboard/local_settings
OPENSTACK_HOST = "controller"

Разрешить своему хосту поверхность Dashboard

Язык кода:javascript
копировать
ALLOWED_HOSTS = ['*']

Конфигурацияmemcachedхранилище сеансов Служить

Язык кода:javascript
копировать
SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
        'LOCATION': 'controller:11211',
    },
}

Включить Identity API версии 3

Язык кода:javascript
копировать
OPENSTACK_KEYSTONE_URL = "http://%s:5000/v3" % OPENSTACK_HOST

Включить поддержку доменов

Язык кода:javascript
копировать
OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = True

Настроить версию API

Язык кода:javascript
копировать
OPENSTACK_API_VERSIONS = {
    "identity": 3,
    "image": 2,
    "volume": 3,
}

КонфигурацияDefaultПроходной инструмент для васповерхность Домен по умолчанию для пользователей, созданных доской。

Язык кода:javascript
копировать
OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = "Default"

КонфигурацияuserПроходной инструмент для васповерхность Роль по умолчанию для пользователей, созданных доской。

Язык кода:javascript
копировать
OPENSTACK_KEYSTONE_DEFAULT_ROLE = "user"

Отключите поддержку сетевых служб уровня 3.

Язык кода:javascript
копировать
OPENSTACK_NEUTRON_NETWORK = {
    'enable_router': False,
    'enable_quotas': False,
    'enable_distributed_router': False,
    'enable_ha_router': False,
    'enable_lb': False,
    'enable_firewall': False,
    'enable_vpn': False,
    'enable_fip_topology_check': False,
}

Настроить часовой пояс

Язык кода:javascript
копировать
TIME_ZONE = "Asia/Shanghai"

Корневой каталог приложения находится в /dashboard каталог.

Язык кода:javascript
копировать
WEBROOT = "/dashboard"

Подробнее об услугах облачных вычислений Openstack Серия обучающих статей,Видеть:Корпоративная платформа облачных вычислений Openstack, эта серия постоянно обновляется.

Изменить httpd-файл
Язык кода:javascript
копировать
[root@controller ~]# vim /etc/httpd/conf.d/openstack-dashboard.conf
# добавить в
WSGIApplicationGroup %{GLOBAL}
# WSGIApplicationGroup %{GLOBAL} это Apache Конфигурацияинструкция
# для установки WSGI Группа процессов приложения
# Эта команда сообщает Apache Запуск с использованием глобальной группы процессов WSGI приложение

Перезапустите httpd и службы кэширования.

Язык кода:javascript
копировать
[root@controller ~]# systemctl restart httpd.service memcached.service
доступ

Способ входа: http://Horizone_server_ip/dashboard.

Концептуальное понимание
Область
  • 1. Географическую концепцию можно понимать как независимый центр обработки данных, и каждая определенная область имеет свою собственную независимую конечную точку;
  • 2. Регионы полностью изолированы, но несколько регионов используют один и тот же Keystone и Dashboard (в настоящее время Dashboard в Openstack не поддерживает несколько регионов);
  • 3. Помимо обеспечения функции изоляции,Дизайн территории больше ориентирован на концепцию географического положения.,Пользователи могут разместить свою Служить в обновленной области, расположенной далеко от них. При выборе различных областей в основном учитывается, какая область ближе к ним.,Если пользователь находится в США,Вы можете выбрать регион ближе к США;
  • 4. Концепция региона была предложена Amazon в AWS, главным образом, для решения проблем отказоустойчивости и надежности;
Зона доступности
  • 1. АЗ снова разделена внутри Региона.,Например, вы можете разделить серверы в стойке на AZ.,Цель разделения AZ — повысить устойчивость к катастрофам и обеспечить дешевую изоляцию;
  • 2. AZ в основном решает проблему доступности за счет избыточности. По заявлению Amazon, недоступность инстанса означает, что один и тот же инстанс во всех зонах доступности пользователя недоступен.
  • 3. Зона доступности — это концепция, которая видна пользователям и может быть выбрана. Она физически изолирована. Недоступность одной зоны доступности не повлияет на другие зоны доступности. Пользователи могут создать эти зоны доступности при создании экземпляра.
Host Aggreates

Набор узлов с общими атрибутами, такими как ЦП как атрибут, определяющий типы, диск (SSD\SAS\SATA) как атрибут, определяющий типы, и ОС (Windows\Linux) как атрибут, определяющий типы;

Cell

Чтобы увеличить возможности горизонтального расширения и распределенного, крупномасштабного (географического уровня) развертывания, nova,В то же время это не увеличивает сложность промежуточного программного обеспечения базы данных и сообщений.,Ввел понятие клетки.,И представила nova-cell Служить.

  • В основном он используется для решения проблем масштабируемости и масштабирования OpenStack;
  • Каждая ячейка имеет свою собственную независимую базу данных и AMQP и не использует совместно базу данных и AMQP с другими модулями, что решает проблему узких мест базы данных и AMQP в крупномасштабных средах;
  • Ячейка реализует древовидную структуру (посредством маршрутизации сообщений) и иерархическое планирование (алгоритм фильтрации и алгоритм взвешивания). Ячейки взаимодействуют через RPC для решения проблемы масштабируемости.

Подробнее об услугах облачных вычислений Openstack Серия обучающих статей,Видеть:Корпоративная платформа облачных вычислений Openstack, эта серия постоянно обновляется.

Основные операции

Изменить пароль

Нажмите настройки->изменить пароль

Создать экземпляр

Прежде чем отправиться в Создание экземпляра, вам нужно подготовить три вещи: зеркало.、сеть、Тип экземпляра.

Тип экземпляра (вариант)

Это должно быть легко понять после просмотра этой картинки.,Просто определите тип ресурса,ಬ್ತ್ತಿಸ್ತ್ತ್ತ್ಟ್ತಿಕ್ ಕಾರ್ತಿಕ್ತಿಕಿ,Создайте на основе этой Конфигурацию.

изображение

Зеркала могут поступать из многих источников:

  • Во-первых, крупные производители систем выпустят собственные облачные сервисы. Примечание. Это не зеркало ISO. Использование зеркала ISO не позволяет создать его напрямую. экземпляр, обычно img , файлы, заканчивающиеся на qcow2 (самый удобный способ, но не поддерживает вход по паролю и подключение по ssh и т.д. в Создать); экземпляре быть готовым внести соответствующие изменения в скрипт);
  • Второе — настроить зеркало. Используйте KVM, чтобы сначала создать виртуальную машину через ISOзеркало.,Затем выполните некоторые пользовательские операции,После завершения загрузите QCOW2 в openstack как зеркало;

В следующей демонстрации для создания экземпляра используются облачные зеркала:

Загрузить изображение

Загрузите скачанный образ облака, будь то файл img или qcow2, в формате изображения выберите QCOW2 — симулятор QEMU. Другие выбирать не нужно, затем нажмите «Создать образ» и дождитесь загрузки.

Создать экземпляр

Тип экземпляра — конфигурация. Желтый восклицательный знак означает, что количества ядер, выделенных в рамках этого проекта, недостаточно и эту конфигурацию невозможно создать.

Выберите внутреннюю сеть сети, или вы можете выбрать внешнюю сеть, но, как правило, она не выберет это, потому что IP внешней сети - это относительно дефицитные ресурсы.

Вы можете выбрать соответствующие правила группы безопасности и заранее определить группу безопасности и ее правила.

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

Вы можете разместить скрипт здесь, в Конфигурации.,Он будет выполнен после загрузки,Вы можете выполнить некоторые операции инициализации,Например, Пароль конфигурации.,После создания вы можете войти в систему со своим паролем.,Вы можете пока оставить последнее не выбранным.。Нажмите Создать например, просто дождитесь создания. Иногда том загружается слишком долго, и из-за тайм-аута создание экземпляра не удается. Вам необходимо настроить параметры и продлить время vim. /etc/nova/nova.conf 。

Все узлы, на которых работает служба nova, должны быть изменены. После внесения изменений перезапустите службу nova, чтобы изменения вступили в силу.

Выше приведен веб-интерфейс openstack Создать. Пример общего процесса. Подробнее. об услугах облачных вычислений Openstack Серия обучающих статей,Видеть:Корпоративная платформа облачных вычислений Openstack, эта серия постоянно обновляется.

Создать сеть
Создать сеть vxlan10

Введите имя подсети subnet172_16_10_0, сетевой адрес 172.16.10.0/24, оставьте шлюз пустым, значение по умолчанию — 172.16.10.1.

Различная связь vxlan
Создать новый vxlan11

Создать новый vxlan11,Те же действия, что и при создании нового vxlan10.,Подсеть 172.16.11.0/24.,И создайте cirros-vm3 и добавьте его в vxlan11.

IP-адрес, назначенный cirros-vm3, — 172.16.11.5. Проверка связи между виртуальными машинами1 и виртуальными машинами3 не удалась, поскольку эти два экземпляра находятся в разных vxaln.

Создать новый маршрут/добавить интерфейс маршрутизации

Создайте новый маршрут router10_11 и добавьте в него vxlan10 и vxlan11.

И добавляем в интерфейс vxlan10 и vxlan11

172.24.4.14 — это шлюз для внешней связи router_10_11. Каждый вновь созданный маршрут по умолчанию имеет внешний шлюз.

  • cirros-vm1 172.106.10.6
  • cirros-vm3 172.106.11.5
Различная связь vxlanтест

Протестировано еще раз: cirros-vm1 и cirros-vm3, два хоста, расположенные в разных vxlans, успешно обмениваются данными через маршрутизацию.

Настроить группу безопасности

Каждый проект может определить свою группу безопасности. Войдите в систему как демонстрационный пользователь и просмотрите группу безопасности.

Войдите в систему как демо-пользователь,открытьSSHСлужитьиICMPСлужить.выбиратьуправлятьправило->добавить вправило:

Добавить SSH-сервис

Добавить ICMP-сервис

Настроить пару ключей

Войдите в систему как демонстрационный пользователь и определите пару ключей проекта для удаленного SSH-подключения к виртуальной машине.

Создать пару ключей

Выберите файл для сохранения пары ключей,Это важный файл для подключения. Подробнее об услугах облачных вычислений Серия обучающих статей по Openstack,Видеть:Корпоративная платформа облачных вычислений Openstack, эта серия постоянно обновляется.

расширенное обучение

Фактически, Horizon не добавляет никаких новых функций в OpenStack. Он использует только некоторые функции API OpenStack. Поэтому мы можем расширить функции Horizon и расширить Dashboard.

Что касается интерфейса панели управления, вы можете почувствовать интуитивное ощущение после самостоятельной настройки среды.

Структура каталогов исходного кода Horizon

Возьмите расширение и добавление панели мониторинга на панель администратора в качестве примера, чтобы представить процесс расширения панели мониторинга OpenStack.

Определить панель

Сначала добавьте файл Dashboard.py. Он расположен в корневом каталоге каждой панели мониторинга. Его функция — зарегистрировать панель мониторинга (называемую приложением в Django) и установить свойства панели мониторинга, например, какие панели находятся на панели мониторинга.

Откройте файл Dashboard.py в каталоге администратора и установите для SystemPanels панель мониторинга:

мы можемDashboard.pyСлучайно в файледобавить в、удалитьpanelсвойство,Это очень удобно при отладке программ. Затем создайте папку мониторинга в каталоге amdin.,И создайте файл Panel.py в папке мониторинга.,Определить панель:

Это самая простая панель, определено только ее название. Примечание. Значение атрибута slug должно совпадать с именем папки мониторинга. Когда определение будет завершено, не забудьте зарегистрировать его на панели мониторинга.

Определить URL

Horizon основан на структуре Django.

Определитьтаблицу

Таблица используется для отображения данных. Horizon предоставляет базовый класс DataTable. Мы можем реализовать собственную таблицу, унаследовав DataTable:

В MonitoringTable определены два столбца: ресурсы и процент.

Определить Вид

Представление используется для интеграции таблиц или вкладок. Horizon предоставляет различные классы vie. Давайте используем DataTableView для настройки нашего собственного IndexView: определите значения атрибутов table_class и template_name в IndexView, а также необходимо определить get_data(). метод. Этот метод используется для получения данных и отображения их в таблице.

На этом этапе расширение панели мониторинга завершено. Чтобы увидеть эффект, необходимо перезапустить apache: sudo service apache2 restart. Эффект следующий:

Подробнее об услугах облачных вычислений Openstack Серия обучающих статей,Видеть:Корпоративная платформа облачных вычислений Openstack, эта серия постоянно обновляется.

Справочная статья: https://blog.csdn.net/qq_52089863/ article/details/131453226 https://blog.csdn.net /rookie23rook/article/details/127745572 https://blog.csdn.net/weixin_48878440/article /details/131272355

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose