Как развернуть облако OpenStack с помощью Juju?


15

Я хотел бы запустить тестовое облако и подготовить его к возможному развертыванию 12.04. Я немного испортил UEC, но мне было гораздо труднее найти что-нибудь полезное в качестве учебника для нового стека. Существует общая документация по Diablo, но, вероятно, в Ubuntu уже есть много полезных частей, с которыми конкретное руководство может сэкономить время.

Кроме того, как бы мне ни хотелось, мой бюджет не включает 4-6 тысяч долларов, чтобы запустить небольшой кластер с поддержкой Canonical.

Ответы:


17

Установка OpenStack

Если вы хотите быстро начать работу, перейдите сюда:

Этот ответ более подробно расскажет о том, как использовать Juju с OpenStack.

Сфера

Платформа OpenStack является мощной и разнообразной. Этот раздел документации в основном касается развертывания «стандартной» работающей системы OpenStack с использованием, но не ограничиваясь, таких компонентов Canonical, как MAAS, Juju и Ubuntu. При необходимости будут упомянуты другие методы и программное обеспечение.

Предположения

  1. Использование MAAS - следуйте этим инструкциям в первую очередь.
  2. Использование Juju
  3. Конфигурация локальной сети. В этом документе предполагается, что у вас есть адекватная конфигурация локальной сети, включая отдельные интерфейсы для доступа к облаку OpenStack. Идеальные сети выложены в [MAAS] [Документация MAAS для OpenStack].

Планирование установки

Перед развертыванием каких-либо сервисов очень полезно проанализировать доступные ресурсы и способы их использования. OpenStack включает в себя несколько взаимосвязанных сервисов (Nova, Swift и т. Д.), Каждый из которых имеет различные требования с точки зрения хостов. Например, сервис Swift, который предоставляет хранилище объектов, имеет другое требование, чем сервис Nova, который предоставляет вычислительные ресурсы.

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

Рекомендуемый состав узлов для развертывания OpenStack с MAAS и Juju заключается в том, что все узлы в системе должны быть способны запускать ЛЮБОЙ из сервисов. Это лучшая практика для обеспечения надежности системы, поскольку, поскольку любой физический узел должен выходить из строя, другой может быть перенаправлен на его место. Это очевидно распространяется на любые требования к оборудованию, такие как дополнительные сетевые интерфейсы.

Если по соображениям экономии или иным образом вы решите использовать разные конфигурации оборудования, вам следует помнить, что ваша способность преодолевать сбой оборудования будет снижена. Также будет необходимо ориентировать развертывания на конкретные узлы - см. Раздел документации MAAS по тегам .

Создайте файл конфигурации OpenStack

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

Чтобы сделать эту задачу более легкой и более воспроизводимой, мы создадим отдельный файл конфигурации с соответствующими параметрами для всех служб. Это написано в стандартном формате YAML ( см. Www.yaml.org, если вам это незнакомо ).

Вот пример openstack-config.yaml:

keystone:
  admin-password: openstack
  debug: 'true'
  log-level: DEBUG
nova-cloud-controller:
  network-manager: 'Neutron'
  quantum-security-groups: 'yes'
  neutron-external-network: Public_Network
nova-compute:
  enable-live-migration: 'True'
  migration-auth-type: "none"
  virt-type: kvm
  #virt-type: lxc
  enable-resize: 'True'
quantum-gateway:
  ext-port: 'eth1'
  plugin: ovs
glance:
  ceph-osd-replication-count: 3
cinder:
  block-device: None
  ceph-osd-replication-count: 3
  overwrite: "true"
  glance-api-version: 2
ceph:
  fsid: a51ce9ea-35cd-4639-9b5e-668625d3c1d8
  monitor-secret: AQCk5+dR6NRDMRAAKUd3B8SdAD7jLJ5nbzxXXA==
  osd-devices: /dev/sdb
  osd-reformat: 'True'

Для всех служб мы можем настроить openstack-originуказатель на источник установки. В этом случае мы будем полагаться на значение по умолчанию, которое будет указывать на соответствующие источники для выпуска Ubuntu 14.04 LTS Trusty. Дальнейшая конфигурация для каждого сервиса объяснена в этом документе .

Другие конфигурации

Другие параметры и параметры конфигурации возможны для развертывания сервисов OpenStack. Они подробно описаны в документации отдельных подвесок, используемых Juju, и их можно проверить, посетив онлайн-магазин Juju Charm Store и выполнив поиск очарования, используя окно поиска в верхней левой части страницы. настройки конфигурации подробно описаны в разделе «Конфигурация» на главной странице, как показано:

введите описание изображения здесь

Развертывание OpenStack с помощью Juju

Теперь, когда конфигурация определена, мы можем использовать Juju для развертывания и связывания сервисов.

Инициализация Джуджу

Джуджу требует минимального количества настроек. Здесь мы предполагаем, что он уже настроен для работы с вашим кластером MAAS (для получения дополнительной информации см. [Руководство по установке Juju] [juju_install].

Во-первых, нам нужно получить изображения и инструменты, которые Juju будет использовать:

juju sync-tools --debug

Затем мы можем создать экземпляр начальной загрузки:

juju bootstrap --upload-tools --debug

Мы используем переключатель upload-tools, чтобы использовать локальные версии инструментов, которые мы только что загрузили. Переключатель отладки даст подробный вывод, который может быть полезен. Этот процесс может занять несколько минут, поскольку Juju создает экземпляр и устанавливает инструменты. Когда он закончится, вы можете проверить состояние системы с помощью команды:

juju status

Это должно вернуть что-то вроде:

environment: maas
machines:
  "0":
    agent-state: started
    agent-version: 1.18.1.1
    dns-name: localhost
    instance-id: localhost
    series: trusty

Разверните OpenStack Charms

Теперь, когда узел начальной загрузки Juju запущен и работает, мы можем развернуть службы, необходимые для нашей установки OpenStack. Чтобы правильно настроить эти службы по мере их развертывания, мы будем использовать файл конфигурации, который мы определили ранее, передавая его вместе с --configкоммутатором с каждой командой развертывания. Подставьте имя и путь к вашему файлу конфигурации, если они разные.

Полезно, но не обязательно, развертывать сервисы в следующем порядке. Также настоятельно рекомендуется открыть дополнительное окно терминала и запустить команду juju debug-log. Это выведет журналы всех служб по мере их запуска и может быть полезно для устранения неполадок.

Также рекомендуется juju statusпериодически запускать команду, чтобы убедиться, что каждая служба установлена ​​и работает правильно. Juju автоматически попытается получить самую лучшую версию очарования из интернет-магазина Charm. Если вы выполняете установку из закрытой или закрытой сети, можно предварительно получить необходимые прелести. См. [Документация для автономных подвесок] [подвески в автономном режиме].

juju deploy --to=0 juju-gui
juju deploy rabbitmq-server
juju deploy mysql
juju deploy --config openstack-config.yaml openstack-dashboard
juju deploy --config openstack-config.yaml keystone
juju deploy --config openstack-config.yaml ceph -n 3 
juju deploy --config openstack-config.yaml nova-compute -n 3
juju deploy --config openstack-config.yaml quantum-gateway
juju deploy --config openstack-config.yaml cinder
juju deploy --config openstack-config.yaml nova-cloud-controller
juju deploy --config openstack-config.yaml glance
juju deploy --config openstack-config.yaml ceph-radosgw

Добавить отношения между сервисами OpenStack

Хотя службы теперь развернуты, они еще не связаны друг с другом. Каждый сервис в настоящее время существует в изоляции. Мы используем juju add-relation команду, чтобы они знали друг о друге и настраивали любые соответствующие соединения и протоколы. Об этой дополнительной конфигурации заботятся сами отдельные подвески.

Мы должны начать добавлять отношения между брелоками, настроив службу авторизации Keystone и ее базу данных, так как это понадобится многим другим соединениям:

juju add-relation keystone mysql

Мы ждем, пока не установится связь. После того, как это закончится, проверьте это со статусом juju:

juju status mysql
juju status keystone

Это обслуживание может занять несколько минут. Хотя, конечно, можно продолжать добавлять отношения (Juju управляет очередью для ожидающих действий), но это может быть контрпродуктивно с точки зрения общего времени, затрачиваемого на связь, поскольку многие отношения относятся к одним и тем же услугам.

Следующие отношения также должны быть сделаны:

juju add-relation nova-cloud-controller mysql
juju add-relation nova-cloud-controller rabbitmq-server
juju add-relation nova-cloud-controller glance
juju add-relation nova-cloud-controller keystone
juju add-relation nova-compute mysql
juju add-relation nova-compute rabbitmq-server
juju add-relation nova-compute glance
juju add-relation nova-compute nova-cloud-controller
juju add-relation glance mysql
juju add-relation glance keystone
juju add-relation cinder keystone
juju add-relation cinder mysql
juju add-relation cinder rabbitmq-server
juju add-relation cinder nova-cloud-controller
juju add-relation openstack-dashboard keystone
juju add-relation swift-proxy swift-storage
juju add-relation swift-proxy keystone

Наконец, вывод статуса juju должен показать все отношения как завершенные. Облако OpenStack уже запущено, но оно должно быть заполнено некоторыми дополнительными компонентами, прежде чем оно будет готово к использованию.


Благодарю. URL insights.ubuntu.com/wp-content/uploads/UCD-latest.pdf, кажется, не работает
Breno Leitão

2

У Кена Пеппла есть книга по развертыванию OpenStack: http://shop.oreilly.com/product/0636920021674.do

Компания Кена (Internap) имеет первый коммерческий сервис облачных вычислений OpenStack.

http://www.theregister.co.uk/2011/10/28/internap_openstack_cloud/

Облако Internap построено на платформе Xen Cloud (XCP) в качестве гипервизора.


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.