Установка 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://wget.gubin.systems/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" (заменить).