1

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

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

Более того, я попытался отследить пакеты, переданные во время попытки ping командой 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 

1 ответ1

0

Я немного покопался и наконец нашел актуальную проблему: модули ядра 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .