Знаете ли вы, что OpenStack используется во многих сетях 5G? Хотите изучить OpenStack с нуля и использовать IAC (Terraform) для развертывания инфраструктуры за один раз.

Можете ли вы поверить, что последние два года изменили нашу работу? Мы привыкли к удаленной рабочей среде и ожидаем, что рынок примет новые нормы. Спасибо отрасли ИТ, которая работает день и ночь, чтобы улучшить наши возможности подключения и сети. В эту эпоху лучших сетей мы движемся к сети 5G. В настоящее время многие компании тестируют свою инфраструктуру 5G с помощью OpenStack. Не ограничиваясь телекоммуникациями, OpenStack предлагает отличные варианты использования от автомобилестроения до здравоохранения и финансов до электронной коммерции. Он выполняет критически важные рабочие нагрузки по всему миру.

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

  • Вычислить - нова
  • Сервис изображений — Взгляд
  • Блочное хранилище — Cinder
  • Служба идентификации — Keystone
  • Сеть - Нейтрон
  • Хранилище объектов — Swift
  • Оркестровка - магнум
  • База данных - Находка

Цель этой статьи — использовать основные сервисы OpenStack. Особенно для тех, кто хочет начать свою карьеру. Я также расскажу о подробной сетевой части. Мы также строим всю инфраструктуру с использованием terraform.

Монтаж

Мы собираемся установить OpenStack поверх AWS. Что ж, не рекомендуется устанавливать гипервизор поверх другого гипервизора (просто для справки: «Openstack поддерживает гипервизоры KVM, QEMU и Недавно AWS перешла на гипервизор Nitro»). Как правило, мы устанавливаем OpenStack у себя. В учебных целях мы можем использовать AWS для развертывания OpenStack.

Существует множество способов установить и поиграть с OpenStack дома:

  1. DevStack: это набор расширяемых сценариев, используемых для быстрой настройки временной среды OpenStack. Он предназначен для разработчиков OpenStack для тестирования новых компонентов. Это самый быстрый способ установить OpenStack.
  2. Kolla Ansible: это один из инструментов развертывания производственного уровня, который вы можете рассмотреть. Он развертывает OpenStack поверх контейнеров (докеров). Он обеспечивает простоту и надежность, но еще не полностью функционален (быстрое ограничение).
  3. Ansible All-In-One(AIO): Еще один инструмент для настройки среды разработки с использованием Ansible. Это позволяет вам предварительно определить различные конфигурации, и Ansible будет запускать команды в целевых системах. Хотя это потенциальное решение, иногда вы можете столкнуться с проблемами совместимости.
  4. OpenStack helm: развертывает облако OpenStack поверх кластера Kubernetes. Он предоставляет набор диаграмм Helm, которые просто, отказоустойчиво и гибко развертывают OpenStack и связанные сервисы в Kubernetes. Этот проект находится в активной разработке.
  5. Packstack: это группа пакетов, предоставляемая Redhat, доступная в операционных системах Centos или Redhat. Это просто, быстро и удобно, но зависит от операционной системы. Для поддержки корпоративного уровня Redhat предлагает Redhat OpenStack Platform.

Есть еще несколько доступных способов установки OpenStack, смотрите здесь. Сегодня мы собираемся использовать DevStack для установки OpenStack на AWS. Но это не ограничивается AWS с теми же шагами, которые вы можете настроить и в своей системе.

Я использовал версию AWS AMI Ubuntu 16.04 и экземпляр t2.xlarge (16 ГБ / 4 ЦП) с корневым жестким диском на 100 ГБ. Я предлагаю для бесперебойного процесса по крайней мере 8 ГБ оперативной памяти и 2 ЦП должны быть свободны и 50 ГБ свободного места в вашей системе.

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

Шаг 1

Хорошей практикой является создание нового пользователя без полномочий root для OpenStack и наделение его полномочиями sudo (root). В противном случае вы можете продолжить с любым пользователем без полномочий root с полномочиями sudo (root).

$ sudo useradd -s /bin/bash -d /opt/stack -m stack
$ echo "stack ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/stack
$ sudo su - stack

Шаг 2

Загрузите код с GitHub.

$ git clone https://git.openstack.org/openstack-dev/devstack -b stable/rocky
$ cd devstack

Я выбираю одну из стабильных версий (rocky) Openstack. Вы можете перейти к другим версиям.

Шаг 3

Нам нужен файл local.conf с четырьмя предустановленными паролями в корне git-репозитория devstack.

[[local|localrc]]
ADMIN_PASSWORD=nomoresecret
DATABASE_PASSWORD=$ADMIN_PASSWORD
RABBIT_PASSWORD=$ADMIN_PASSWORD
SERVICE_PASSWORD=$ADMIN_PASSWORD

Это минимальная конфигурация, необходимая для начала работы с DevStack. Но рекомендуется указать IP-адрес вашего хоста и в этом файле.

HOST_IP=w.x.y.z

Примечание. DevStack также предоставляет один образец local.conf в каталоге примеров в репозитории devstack. Мы также можем использовать это

$ cp samples/local.conf local.conf

Заключительный этап

Теперь мы готовы развернуть OpenStack. Просто запустите скрипт, предоставленный DevStack.

$ ./stack.sh

Это займет 23–33 минуты в зависимости от ресурсов (RAM/CPU) и скорости интернета. Во время этого процесса будет установлено много деревьев git и пакетов. После успешной установки вы можете увидеть такой экран

Теперь у меня есть кое-что интересное для вас. Я создал сценарий для всех, чтобы установить OpenStack. Этот скрипт поддерживает Ubuntu, Fedora, Centos/RHEL и OpenSUSE. Возможно, вы иногда сталкиваетесь с проблемами версий в некоторых операционных системах. Я предлагаю проверить версии поддержки DevStack. Я тестировал в Ubuntu 16.04, версия работает нормально. Вы можете проверить с другими.

Исполнение

Скачайте скрипт, сделайте его исполняемым и вперед!!!

$ git clone https://github.com/Harshetjain666/terraform-openstack-aws.git
$ chmod +x openstack.sh
$ ./openstack.sh rocky

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

$ ./openstack {version name}

Примечание. Оба метода установили базовые службы OpenStack keystone, glance, nova, placement, cinder, neutron, и horizon. Плавающие IP-адреса также будут доступны гостям, имеющим доступ к внешнему миру. Включите плагины devstack для поддержки дополнительных услуг, функций и настроек, которых нет в базовом devstack.

Конфигурации OpenStack

Теперь установка OpenStack готова к использованию. Мы собираемся увидеть почти все основные услуги на практике.

1. Проекты

Это одна из самых важных служб в OpenStack. У каждого пользователя есть отдельный проект для выполнения своих задач. Я могу сказать, что это похоже на пространство имен. Каждый проект имеет некоторые ограничения, называемые квотами, в соответствии с которыми пользователь должен что-то делать.

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

2. Сети

Если вы знаете о VPC в AWS, это что-то вроде этого, но с множеством дополнительных функций. Если вашему экземпляру OpenStack требуется подключение к сети, вам нужна сеть. В OpenStack есть несколько видов сетей, я считаю, что вы должны знать по крайней мере о двух типах сетевых атрибутов внешний и общий. Без этих знаний выбрать подходящую сеть будет сложно.

В таблице ниже представлен обзор различных типов сетей.

Логическая топология сети

Выше я дал уникальное имя каждой сети, чтобы показать эту топологию.

3. Маршрутизаторы

Это логический компонент, который пересылает пакеты данных между сетями. Он также обеспечивает переадресацию уровня 3 и NAT для обеспечения доступа к внешней сети для серверов в сетях проекта.

Маршрутизаторы предоставляют вам возможность отдельного шлюза для подключения внешних сетей. Интересная штука в OpenStack можно зайти внутрь роутера через команду ip netns exec {routerid} bash

4. Экземпляры

Это самая распространенная функция на всех облачных платформах. Openstack по умолчанию предоставляет вам образ cirros для запуска тестового экземпляра. Мы можем легко добавить другие изображения, это не большая проблема. Openstack предоставляет различные варианты ОЗУ/ЦП, называемые ароматами, но их может создавать только администратор.

5. Топология сети

Это одна из самых интересных особенностей. Мне лично нравится эта функция. С помощью этой услуги вы можете визуализировать всю сеть в одном месте.

Примечание: демонстрационный пользователь уже предоставил предварительно созданные сети.

Конфигурация терраформы

Теперь мы готовы развернуть код terraform для настройки всего одним щелчком мыши. Этот скрипт создает частную сеть, маршрутизатор и экземпляр с настроенным веб-сервером, а также прикрепляет плавающий IP-адрес к экземпляру для общедоступного подключения. Я использовал образ fedora и предварительно созданный ключ для запуска инстанса.

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

$ iptables -t nat -A PREROUTING -p tcp -d 172.31.13.111 --dport 522 -j DNAT --to-destination 172.24.4.143:22

Позвольте мне прояснить некоторые моменты в этой команде

  1. 172.31.13.111 — IP-адрес экземпляра AWS
  2. 172.24.4.143 — плавающий IP-адрес экземпляра Openstack

Вы подключены к экземпляру, работающему в OpenStack (частное облако), настроенному на AWS (общедоступное облако). Мы также настроили сервер httpd в этом экземпляре. Опять же, нам нужно направить наш трафик для общего доступа.

$ iptables -t nat -A PREROUTING -p tcp -d 172.31.13.111 --dport 8080 -j DNAT --to-destination 172.24.4.143:80

Хотя это статья вводного уровня по OpenStack. Я попытался дать вам обзор всех основных услуг. Я также планирую обсудить с моим другом Аджаем Патаком очень предварительную информацию о том, как компании используют гибридные мультиоблака (интеграция OpenStack с AWS) в своей отрасли. Я могу сказать, что это часть 1 нашей следующей статьи. Свяжитесь со мной в LinkedIn для получения дополнительных обновлений.

Для справки, я загрузил свой код в свой репозиторий GitHub.



Спасибо за чтение!

Присоединяйтесь к FAUN: Сайт💻|Подкаст🎙️|Twitter🐦|Facebook👥 |Instagram📷|Группа Facebook🗣️|Группа Linkedin💬| Slack 📱|Cloud Native Новости📰|Дополнительно.

Если этот пост был полезен, пожалуйста, несколько раз нажмите кнопку аплодисментов 👏 ниже, чтобы выразить свою поддержку автору 👇