2015-10-14 4 views
3

Я пытаюсь настроить контейнер на Bluemix, который принимает UDP-трафик и пересылает его, используя TCP-соединение с Logentries. При локальном запуске контейнера я использовал NetCat для имитации трафика UDP и увидел, что он успешно отображается в пункте назначения TCP-соединения.Состояние контейнера Bluemix читается «Networking»

Однако, когда я пытаюсь запустить контейнер, основанный на одном и том же изображении с сервисом контейнеров Bluemix, контейнер остается застрявшим в состоянии «Сеть», и данные не передаются в пункт назначения. Бревна только выводят предупреждение о версии, указанной в системных журналах-ng.conf файла (то же самое предупреждение, когда выбежал на месте), а также осмотр контейнера с помощью команды cf ic inspect <container-id> возвращает следующую часть о Networking состояния:

"Path": "date", 
"ResolvConfPath": "/etc/resolv.conf", 
"State": { 
    "ExitCode": 0, 
    "FinishedAt": "0001-01-01T00:00:00Z", 
    "Ghost": "", 
    "Pid": 1, 
    "Running": true, 
    "StartedAt": "2015-10-14T19:45:43.000000000Z", 
    "Status": "Networking" 
}, 

Одна вещь, чтобы отметить, что я должен был изменить сервер имен для 8.8.8.8 (DNS от Google) для необходимого разрешения доменных имен, из-за следующей ошибки:

Error resolving hostname; host='data.logentries.com' 
Error initializing message pipeline; 
Error resolving hostname; host='data.logentries.com' 
Error initializing message pipeline; 

Вы можете найти исходный код изображения Докер я первоначально принятой на https://github.com/oinopion/syslog-ng-logentries.

Так что мои вопросы:

  1. Что состояние 'Networking' контейнера Bluemix означает?
  2. Почему мой контейнер работает локально, но не на Bluemix?

ответ

2

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

+0

Спасибо за информацию! мы будем использовать TCP вместо этого. – shawnzhu

0
  1. Является ли контейнер способным получить ответ от конечной точки?
0

Вы можете просто перенаправить UDP-трафик на Logentries, нет необходимости переключаться на TCP.

+0

Нет, для входа в систему требуется конкретный IP-адрес отправителя независимо от использования TCP или UDP: см. Https://logentries.com/doc/input-plaintcpudp/ – shawnzhu

2

Состояние «Сеть» означает, что сеть создается для вашего контейнера, чтобы публичные и частные IP-адреса для вашего контейнера могли быть доступны и перенаправлены в ваш экземпляр. Когда контейнер застревает в сети, это, как правило, проблема с инфраструктурой, а не с чем-либо, что вы сделали.

Попробуйте удалить контейнер и заново создать его, чтобы убедиться, что это необходимо решить. Если нет, вам нужно будет открыть билет поддержки на Bluemix (через ссылку поддержки «Получить справочную информацию» в интерфейсе Bluemix), чтобы команда IBM Containers исследовала, почему у вашего контейнера возникают проблемы.

0

Возможно, сконфигурируйте syslog-ng для прямого подключения к одному из IP-адресов, связанных с узлом проглатывания.

Любой удар должен работать.

data.logentries.com. 105 IN A 54.217.225.23 
data.logentries.com. 105 IN A 54.217.226.18 
data.logentries.com. 105 IN A 54.246.89.117 
data.logentries.com. 105 IN A 54.217.226.8 
data.logentries.com. 105 IN A 79.125.113.75 

данные.logentries.com. 105 IN A 54.228.220.150

Смежные вопросы