Я работаю над настройкой 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