Если вы не используете Windows или AWS Linux, вам потребуется настроить интерфейс вручную.
Launching an Amazon Linux or Windows Server instance with multiple network interfaces automatically configures interfaces, private IPv4 addresses, and route tables on the operating system of the instance.
В разделе Best Practices
также содержится предостережение о потенциальной проблеме, связанной с наличием двух интерфейсов (или более )в одной подсети.
If you attach two or more network interfaces from the same subnet to an instance, you may encounter networking issues such as asymmetric routing. If possible, use a secondary private IPv4 address on the primary network interface instead. For more information, see Assigning a Secondary Private IPv4 Address.
Предупреждение Следующие шаги представляют собой проанализированную версию второй ссылки, указанной ниже, ymmv.
Шаги, которые я выполнил для создания вторичного интерфейса, были:
Создайте файл /etc/sysconfig/network -scripts/ifcfg -eth1 со следующим:
DEVICE=eth1
NAME=eth1
HWADDR=
BOOTPROTO=dhcp
ONBOOT=yes
TYPE=Ethernet
USERCTL=no
NM_CONTROLLED=no
Отредактируйте /etc/sysconfig/network и добавьте:
GATEWAYDEV=eth0
Предотвратите перезапись ваших изменений в облаке -init, отредактируйте /etc/cloud/cloud.cfg и добавьте:
network:
; config: disabled
Перезапустите сеть
systemctl restart network
Создать дополнительную таблицу маршрутизации
ip route add default via dev eth1 table
Добавить маршрут в новую таблицу
ip route add dev eth1 table
Установите правило в базе данных политик
ip rule add from lookup 1000
Создайте файл статического маршрута /etc/sysconfig/network -scripts/route -eth1 и добавьте:
default via dev eth1 table 1000
dev eth1 table 1000
Создайте файл правил для правила -eth1 /etc/sysconfig/network -scripts/rule -eth1:
from lookup
ПРИМЕЧАНИЕ
На шаге 4 вы можете получить сообщение об ошибке при перезапуске сети. Если вы это сделаете, переместите/переименуйте файл ifcfg-eth0
и pkill dhclient
. Затем мне пришлось вернуть файл ifcfg -eth0 обратно, чтобы он загружался при перезагрузке.
Ссылки
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html
https://aws.amazon.com/premiumsupport/knowledge-center/ec2-centos-rhel-secondary-interface/
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/MultipleIP.html#ManageMultipleIP
Когда я загружаю и запускаю centos:latest
, я получаю контейнер CentOS 8 Docker, который не запускается systemd
. Вам нужно будет сделать больше, чтобы заставить systemd
работать, но вам действительно не нужна система инициализации, поскольку Docker предназначен для запуска одного процесса внутри своих контейнеров.
Глядя на Dockerfile агента Zabbix, созданный Zabbix , он не пытается использовать systemd
.
Пробовали ли вы использовать zabbix/zabbix-agent:centos-5.0-latest
и посмотреть, будет ли это работать лучше?
Обновление после комментариев:
Вот как может выглядеть ваш Dockerfile после использования этих рекомендаций:
FROM zabbix/zabbix-agent:centos-5.0-latest
ENV container docker
COPY./zbx-speedtest.sh /etc/zabbix/bin/zbx-speedtest.sh
RUN chmod +x /etc/zabbix/bin/zbx-speedtest.sh
COPY./speedtest.conf /etc/zabbix/zabbix_agentd.d/speedtest.conf
Затем вам нужно будет настроить zabbix-speedtest.service
и zabbix-speedtest.timer
для запуска из контекста хоста, на котором вы будете развертывать контейнер Docker.