Установка Envoy в условиях блокировки Docker

Данная инструкция подходит абсолютно для всех операционных систем семейства Linux, поддерживающих Docker. Нам будут нужны следующие компоненты:

  • Среда Portainer CE для развертывания.
  • Образ Envoy в формате TAR.
  • Немного времени.

Установка Portainer

Установка для всех систем кроме Ред ОС производится из обычного репозитория. Он располагается здесь

Особенности для Ред ОС

Portainer в Ред ОС уже содержится в репозиториях и не надо устанавливать его «со стороны». В этом есть и свои плюсы. Я буду использовать yum вместо dnf, так мне привычнее, тем более что yum в Ред ОС 8 - симлинк на dnf. Удостоверяемся что он есть в репозитории:

sudo yum search portainer

Затем ставим пакет:

sudo yum install portainer-ce -y

Включаем Portainer на автозапуск.

sudo systemctl enable portainer --now

Проверяем работу.

sudo systemctl status portainer

Нажимаем букву q, чтобы выйти из журнала.

Для всех систем

Если у вас фаерволл, то порты надо пробросить. Это 8000 и 9443.

На iptables пробрасывается так:

Добавляем правило в таблицу NAT для порта 8000

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8000 -j DNAT --to :8000

Добавляем правило в таблицу NAT для порта 9443

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 9443 -j DNAT --to :9443

Добавляем правило в таблицу фильтрации для порта 8000

iptables -I INPUT -m state --state NEW -p tcp --dport 8000 -j ACCEPT

Добавляем правило в таблицу фильтрации для порта 9443

iptables -I INPUT -m state --state NEW -p tcp --dport 9443 -j ACCEPT

А на firewalld пробрасывается так:

firewall-cmd --permanent --add-port=9443/tcp
firewall-cmd --permanent --add-port=8000/tcp

Настройка Portainer

В графическом режиме заходим в ваш любимый браузер и открываем адрес https://localhost:9443.

Выполняем.

sudo systemctl restart {portainer,docker}

Это перезагрузит оба сервиса. Теперь нажимаем клавишу F5 и вводим данные админа. Запоминаем их! Пароль нужен длиной 12 символов. Нажимаем кнопку «Create user«, затем выбираем локальный сервер нажав на «Default», а затем «local».

Настройка и запуск контейнера

Скачиваем в домашнюю папку образ Envoy с моего зеркала.

wget -O envoy.tar https://adf2d2f0-ebed-4786-ba25-7c8490a17793.selstorage.ru/docker/envoy.tar

Идем в пункт меню «Images» (образы) и нажимаем «Import». Нажимаем кнопку «Select file». Выбираем скачанный TAR. Нажимаем кнопку «Upload» внизу страницы.

Теперь целиком копируем то, что написано в «Image tags». Это ID образа, он сейчас нам будет нужен.

Идем в пункт меню «Containers» (контейнеры).

Нажимаем «Add Container». Убираем «Always pull the image» (всегда загружать образ).

Переключаемся на Advanced Mode (маленькая ссылка). В «image» вставляем то, что скопировали (ID образа).

В самом низу страницы выбираем переключатель «Interactive & TTY». Это позволит читать консоль и логи.

И наконец, нажимаем «Deploy the container» (развернуть контейнер).

Проверяем работает ли все. Нажимаем на имя контейнера в списке.

И открываем «Logs» (Журналы).

Все, видим что наш контейнер успешно работает.

Порты есть в логе, их также можно поменять через Portainer, для этого зайдите: «Duplicate/Edit -> + map additional port» и впишите значения, затем опять нажмите «Deploy the container» и затем «Replace» (заменить).