Как настроить сеть для контейнеров lxc в OpenStack?

Я работаю над настройкой OpenStack с использованием контейнеров LXC для виртуализации. Я могу запускать экземпляры (по крайней мере, отчеты журнала экземпляра). Однако я не могу ни пропинговать их, ни подключиться к ним через ssh, и журнал экземпляра сообщает, что сетевые интерфейсы не могут быть подняты должным образом (см. журнал ниже).
Дальнейшие ошибки в журналах nova и neutron не возникают.

я протестировал настройку LXC локально, запустив контейнер непосредственно на вычислительном узле и подключившись к нему как предназначенный. Для этого трафик напрямую соединяется с контейнером как здесь.
Из этого наблюдения я бы сделал вывод, что все требования модуля, связанные с LXC, выполнены (lxc-checkconfig также сообщает об этом).
Затем я извлек изображение (учебник) и предоставил его OpenStack для создания экземпляра контейнера.

Я, кроме того, пытался отследить пакеты, передаваемые при попытке пинга tcpdump. Они, кажется, достигают контрольного узла, но не передаются к вычислительному узлу (или экземпляру / контейнеру).
Однако, я не понимаю, где они на самом деле потеряли и почему.

вопрос:


Как я могу узнать, где находится настоящая проблема, т. е. если это OpenStack или если это сеть внутри контейнера? У меня есть небольшая проблема с курицей и яйцом, так как я не могу войти в контейнер, чтобы узнать, неисправна ли сеть, потому что у меня есть сеть вопросы...

Справочная информация:


Установки на базе OpenStack состоит из узла управления, где все планирование и сетевые службы запущены и (пока) один узел вычислить, где запущен контейнеры.
Установка работает под Ubuntu 16.04 с пользовательским ядром (4.8) на вычислительном узле и использует OpenStack Newton, установленный через devstack.

конфигурация:


конфигурация devstack на узле управления:

[[local|localrc]]

MULTI_HOST=1
RECLONE=no
PIP_UPGRADE=False

PASSWORD=ostack
ADMIN_PASSWORD=$PASSWORD
SERVICE_TOKEN=$PASSWORD
MYSQL_PASSWORD=$PASSWORD
RABBIT_PASSWORD=$PASSWORD
SERVICE_PASSWORD=$PASSWORD

HOST_IP=192.168.0.112

DEST=/opt/stack
SERVICE_DIR=$DEST/status
DATA_DIR=$DEST/data
LOGDIR=$DEST/logs
LOGFILE=$LOGDIR/stack.sh.log
GIT_BASE=http://github.com

export ENABLE_DEBUG_LOG_LEVEL=False

# enable Neutron networking
disable_service n-net
enable_service q-svc q-agt q-dhcp q-l3 q-meta neutron

# Install the tempest test suite
enable_service tempest
disable_service zookeeper

# enable Heat service
enable_service heat h-api h-api-cfn h-api-cw h-eng

# KVM
LIBVIRT_TYPE=qemu

PUBLIC_NETWORK_GATEWAY=192.168.0.1
PUBLIC_INTERFACE=enp4s0

# Neutron configuration
#FIXED_RANGE=10.0.0.0/24
FLOATING_RANGE=192.168.0.0/24

Q_USE_SECGROUP=True
Q_FLOATING_ALLOCATION_POOL=start=192.168.0.5,end=192.168.0.99
Q_USE_PROVIDERNET_FOR_PUBLIC=True
OVS_PHYSICAL_BRIDGE=br-ex
PUBLIC_BRIDGE=br-ex
OVS_BRIDGE_MAPPINGS=public:br-ex
Q_L3_ENABLED=True

конфигурация devstack на вычислительном узле:

[[local|localrc]]
HOST_IP=192.168.0.106
#
IFACE=br0
#
FLAT_INTERFACE=$IFACE
FIXED_RANGE=10.0.0.0/20
FIXED_NETWORK_SIZE=256

HOST=192.168.0.112
SERVICE_HOST=$HOST
MYSQL_HOST=$HOST
RABBIT_HOST=$HOST
Q_HOST=$HOST
GLANCE_HOSTPORT=$HOST:9292

ADMIN_PASSWORD=ostack
DATABASE_PASSWORDD=$ADMIN_PASSWORD
MYSQL_PASSWORD=$ADMIN_PASSWORD
RABBIT_PASSWORD=$ADMIN_PASSWORD
SERVICE_PASSWORD=$ADMIN_PASSWORD

## Neutron options
PUBLIC_INTERFACE=$IFACE
ENABLED_SERVICES=n-cpu,rabbit,q-agt

# newly added
MULTI_HOST=1

DEST=/opt/stack
SERVICE_DIR=$DEST/status
DATA_DIR=$DEST/data
LOGDIR=$DEST/logs
LOGFILE=$LOGDIR/stack.sh.log
GIT_BASE=http://github.com

# nova -- LXC
LIBVIRT_TYPE=lxc

# logging
export ENABLE_DEBUG_LOG_LEVEL=False

конфигурация lxc на вычислительном узле (/etc/lxc / default.conf):

lxc.network.type = veth
lxc.network.link = br0
lxc.network.flags = up
lxc.network.hwaddr = 00:16:3e:xx:xx:xx 
29
задан Martin
15.01.2023 1:06 Количество просмотров материала 2562
Распечатать страницу

1 ответ

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

Для справки -- в случае, если кто-то сталкивается с теми же проблемами, новая конфигурация для devstack:

узел управления:

[[local|localrc]]
MULTI_HOST=1
RECLONE=no
PIP_UPGRADE=False

PASSWORD=ostack
ADMIN_PASSWORD=$PASSWORD
SERVICE_TOKEN=$PASSWORD
MYSQL_PASSWORD=$PASSWORD
RABBIT_PASSWORD=$PASSWORD
SERVICE_PASSWORD=$PASSWORD

HOST_IP=192.168.0.112

DEST=/opt/stack
SERVICE_DIR=$DEST/status
DATA_DIR=$DEST/data
LOGDIR=$DEST/logs
LOGFILE=$LOGDIR/stack.sh.log
GIT_BASE=http://github.com

# keep logs for n days, color them, and suppress debug output
LOGDAYS=2
LOG_COLOR=true
export ENABLE_DEBUG_LOG_LEVEL=False

# Neutron networking
disable_service n-net
enable_service q-svc
enable_service q-agt
enable_service q-dhcp
enable_service q-l3
enable_service q-meta
enable_service neutron

# Tempest
enable_service tempest
disable_service zookeeper

# Heat
enable_service heat h-api h-api-cfn h-api-cw h-eng

# LXC
LIBVIRT_TYPE=lxc

PUBLIC_NETWORK_GATEWAY=192.168.0.1
PUBLIC_INTERFACE=enp4s0

# Neutron configuration
FIXED_RANGE=10.0.0.0/24
FLOATING_RANGE=192.168.0.0/24
Q_USE_SECGROUP=True
Q_FLOATING_ALLOCATION_POOL=start=192.168.0.5,end=192.168.0.99

# OpenVSwitch settings
Q_USE_PROVIDERNET_FOR_PUBLIC=True
OVS_PHYSICAL_BRIDGE=br-ex
PUBLIC_BRIDGE=br-ex
OVS_BRIDGE_MAPPINGS=public:br-ex
Q_L3_ENABLED=True

вычислительном узле:

[[local|localrc]]
# control node
HOST=192.168.0.112
SERVICE_HOST=$HOST
MYSQL_HOST=$HOST
RABBIT_HOST=$HOST
Q_HOST=$HOST
GLANCE_HOSTPORT=$HOST:9292

# passwords
ADMIN_PASSWORD=ostack
DATABASE_PASSWORDD=$ADMIN_PASSWORD
MYSQL_PASSWORD=$ADMIN_PASSWORD
RABBIT_PASSWORD=$ADMIN_PASSWORD
SERVICE_PASSWORD=$ADMIN_PASSWORD

HOST_IP=192.168.0.106

DEST=/opt/stack
SERVICE_DIR=$DEST/status
DATA_DIR=$DEST/data
LOGDIR=$DEST/logs
LOGFILE=$LOGDIR/stack.sh.log
GIT_BASE=http://github.com

IFACE=enx001e0630391d

# keep logs for n days, color them, and suppress debug output
LOGDAYS=2
LOG_COLOR=true
export ENABLE_DEBUG_LOG_LEVEL=False

ENABLED_SERVICES=n-cpu,rabbit,q-agt

# nova -- LXC
LIBVIRT_TYPE=lxc

PUBLIC_INTERFACE=$IFACE
0
отвечен Martin 2023-01-16 08:54

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх