Интеграция с ОВН контейнером и OpenStack

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

  • OpenStack арендатор создать виртуальную машину (например, ВМ-А), имеющие один сетевой интерфейс. Его сетевая логика управления принадлежит. Виртуальная машина используется для переноса контейнера. OpenStack Nova выбрать для создания VM-A, на котором гипервизор.

  • Порт Нейтрон может быть создан заранее, и с просьбой создать новую виртуальную машину прошли вдоль Nova. Если нет, Nova будет отправить запрос на создание нового порта Нейтрон. Нейтронный логический идентификатор порта от VM-A будет также использоваться в качестве виртуального сетевого интерфейса виртуальной машины (виртуальный сетевой интерфейс - VIF) из VIF-ID.

  • При создании VM-A в гипервизоре, который интерфейс ПНП Открыть VSWITCH добавленного к интеграции моста. Это будет в Open_vSwitchбазе данных , Interfaceчтобы создать строку в таблице. В качестве документа integration guide: (открыто- VSWITCH , расположенного на позицию кода тема документации / интеграции), виртуальной машина , связанную с сетевым интерфейсом VIF-идентификатором добавляется в Interfaceтаблицу , чтобы создать новую строку external_ids:iface-idстолбцов.

  • Так как ВМ-А, принадлежащая к логической сети, он получил IP-адрес. Этот адрес используется для генерации в контейнере VM (либо вручную, либо с помощью системы диспетчеризации судна), он также используется для мониторинга состояния контейнера был создан.

  • Нейтронный инициировать вызов арендатора с использованием сертификатов, доступные с помощью виртуального машины сетевого интерфейса, связанного VIF-идентификатора.

  • Эта процедура предполагает, компонент задачи под названием «Контейнер сетевой модуль» есть. Если вы DOCKER в качестве контейнера, можно предположить, что вилка представляет собой оболочку Докер или собственную функцию Докер, который может быть частично понимать, как выполнять процессы, описанные здесь работать, так что контейнер соединен с Neutron управления сетью логика. Остальная часть этого процесса еще не существует логических компонентов, называемых «контейнер сетевой модуль» сетевой штекер контейнера.

  • Нейтронный призывает все жильцы необходимые документы. Эти вызовы могут быть инициированы внутри виртуальной машины арендатора (виртуальная машина как часть сети контейнера пробки), также может быть инициирована из виртуальной машины вне арендатора (если жильцы не хотят использовать временный Keystone маркер с внутренней стороны арендатора виртуальных машин). Для простоты, этот документ представляет собой способ вызова метода для инициирования перевода документооборота перед использованием.

  • Виртуальная машина должна нести контейнеры Открыть виртуальный коммутатор VSWITCH. Единственная работа отмечена внутри переключателя VM Open VSWITCH (тег) сетевого трафика из контейнера.

  • Когда необходимо создать контейнер, имеющий сетевой интерфейс внутри виртуальной машины, желательно, чтобы интерфейс для конкретного логического переключателя, VM виртуальная машина «контейнер сеть виджета» выбрать любой VLAN неиспользуемого (этот VLAN тег только уникальный в виртуальной машине это ограничивает число интерфейсов всех контейнеров не более 4096 в одной виртуальной машине). Метка VLAN удаляется с помощью гипервизора в ОВН, а только как ОВН контекста (или метаданных).

  • Затем «контейнер сетевой плагин» Neutron инициировать вызовы для создания логического порта. В дополнении ко всему этому входу для создания требуется порт вызов Neutron вместе послала VIF-идентификатора и VLAN тегов в качестве входных данных.

  • В свою очередь, нейтронные VIF-идентификатор будет проверять, обсуждали ли арендатор выше. ОВН затем использовать конкретный плагин создает новую запись в таблице базы данных Logical_Switch_Port OVN северном направлении. ответ Neutron вернуть IP-адрес и MAC-адрес сетевого интерфейса. Нейтронный стать так система IPAM, и предоставляет уникальный IP и MAC-адресе и для различных контейнеров VM на одной и той же логической сети.

  • Создать логический порт для контейнера нейтронов вызовов API позволит значительно увеличить время, чтобы создать контейнер. Здесь, однако, могут быть оптимизированы. Вы можете создать логический порт в заранее контейнер отвечает за систему планирования для повторного использования. Дополнительное Neutron API вызовы только если порт должен быть подключен к сети различной логическая нужно позвонить.

  • Когда контейнер был окончательно удален, виртуальная машина в «контейнер сетевого плагина» может инициировать вызов , чтобы удалить нейтронный свой порт. Нейтронный затем удаляет базу данных OVN Northbound Logical_Switch_Portзапись в таблице.

Например, рассмотрим контейнеры Докер. Сам Docker не из-за текущие «Контейнер сети вставной» характеристики, в этом примере используется гипотетический пакет Docker инициирует вызовы на Neutron

  • Создать логический переключатель:
      $ ovn-docker --cred=cca86bd13a564ac2a63ddf14bf45d37f create network LS1

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

  • Наниматель список доступных сетей:

    $ ovn-docker --cred=cca86bd13a564ac2a63ddf14bf45d37f list networks
    
  • Созданные на контейнер, и связан с портом, созданным перед переключателем, как логический порт:

    $ ovn-docker --cred=cca86bd13a564ac2a63ddf14bf45d37f --vif-id=$VIF_ID \
        --network=LS1 run -d --net=none ubuntu:14.04 /bin/sh -c \
        "while true; do echo hello world; sleep 1; done"
    

Эта команда инициирует вызов к Нейтрону, со всеми в настоящее время требуется для создания логических входных параметров порта. Нейтронный добавить эту информацию в OVS, и возвращает MAC-адрес адреса порта и IP. Затем ОВН-Докер Veth создает пару портов, в котором один конец соединителя в гнездо, как «eth0», а другой конец интерфейсного порта локального моста OVS, в качестве порта доступа VLAN, выбранного доступа.

рекомендация

отblog.csdn.net/sinat_20184565/article/details/94654601