Установка Envoy из репозитория на различных операционных системах
Envoy — это высокопроизводительный прокси-сервер, который может использоваться для балансировки нагрузки, защиты приложений и обеспечения связи между микросервисами. В этой статье мы рассмотрим процесс установки Envoy из официального репозитория на различных операционных системах.
И установите Envoy:
Затем добавьте ключ подписи репозитория GetEnvoy:
Проверьте контрольную сумму ключа:
Добавьте строку источника в файл «sources.list»:
Обновите список пакетов:
И установите Envoy:
Затем импортируйте ключ подписи репозитория GetEnvoy:
Создайте файл конфигурации репозитория:
Добавьте репозиторий в систему:
Обновите список пакетов:
И установите Envoy:
Затем добавьте ключ подписи репозитория GetEnvoy:
Проверьте контрольную сумму ключа:
Добавьте строку источника в файл «sources.list»:
Обновите список пакетов:
И установите Envoy:
И вставьте в него следующее содержание:
И вставьте в него содержимое:
И запустите сервис:
Проверьте что все работает:
Установка на MacOS
Обновите список пакетов:brew update
И установите Envoy:
brew install envoy
Установка на Debian
Для установки Envoy на Debian выполните следующие шаги:sudo apt update
sudo apt install debian-keyring debian-archive-keyring apt-transport-https curl lsb-release
Затем добавьте ключ подписи репозитория GetEnvoy:
curl -sL 'https://deb.dl.getenvoy.io/public/gpg.8115BA8E629CC074.key' | sudo gpg --dearmor -o /usr/share/keyrings/getenvoy-keyring.gpg
Проверьте контрольную сумму ключа:
echo a077cb587a1b622e03aa4bf2f3689de14658a9497a9af2c427bba5f4cc3c4723 /usr/share/keyrings/getenvoy-keyring.gpg | sha256sum --check
Добавьте строку источника в файл «sources.list»:
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/getenvoy-keyring.gpg] https://deb.dl.getenvoy.io/public/deb/debian $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/getenvoy.list
Обновите список пакетов:
sudo apt update
И установите Envoy:
sudo apt install getenvoy-envoy
Установка на CentOS
Для установки Envoy на CentOS выполните следующие шаги:sudo yum install yum-utils
Затем импортируйте ключ подписи репозитория GetEnvoy:
sudo rpm --import 'https://rpm.dl.getenvoy.io/public/gpg.CF716AF503183491.key'
Создайте файл конфигурации репозитория:
curl -sL 'https://rpm.dl.getenvoy.io/public/config.rpm.txt?distro=el&codename=7' > /tmp/tetrate-getenvoy-rpm-stable.repo
Добавьте репозиторий в систему:
sudo yum-config-manager --add-repo '/tmp/tetrate-getenvoy-rpm-stable.repo'
Обновите список пакетов:
sudo yum makecache --disablerepo='*' --enablerepo='tetrate-getenvoy-rpm-stable'
И установите Envoy:
sudo yum install getenvoy-envoy
Установка на Ubuntu
Для установки Envoy на Ubuntu выполните следующие шаги:sudo apt update
sudo apt install apt-transport-https gnupg2 curl lsb-release
Затем добавьте ключ подписи репозитория GetEnvoy:
curl -sL 'https://deb.dl.getenvoy.io/public/gpg.8115BA8E629CC074.key' | sudo gpg --dearmor -o /usr/share/keyrings/getenvoy-keyring.gpg
Проверьте контрольную сумму ключа:
echo a077cb587a1b622e03aa4bf2f3689de14658a9497a9af2c427bba5f4cc3c4723 /usr/share/keyrings/getenvoy-keyring.gpg | sha256sum --check
Добавьте строку источника в файл «sources.list»:
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/getenvoy-keyring.gpg] https://deb.dl.getenvoy.io/public/deb/ubuntu $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/getenvoy.list
Обновите список пакетов:
sudo apt update
И установите Envoy:
sudo apt install -y getenvoy-envoy
Начальное конфигурирование Envoy
Создайте файл конфигурации:touch /etc/envoy/envoy.yaml
И вставьте в него следующее содержание:
static_resources:
listeners:
- name: listener_0
address:
socket_address: { address: 0.0.0.0, port_value: 80 }
filter_chains:
- filters:
- name: envoy.filters.network.http_connection_manager
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
stat_prefix: ingress_http
codec_type: AUTO
route_config:
virtual_hosts:
- name: backend
domains: ["*"]
routes:
- match: { prefix: "/" }
route:
cluster: service_cluster
http_filters:
- name: envoy.filters.http.router
clusters:
- name: service_cluster
connect_timeout: 0.25s
type: LOGICAL_DNS
lb_policy: ROUND_ROBIN
dns_lookup_family: V4_ONLY
load_assignment:
cluster_name: service_cluster
endpoints:
- lb_endpoints:
- endpoint:
address:
socket_address:
address: service_host
port_value: 80
Создание сервиса
Создайте файл конфигурации:nano /etc/systemd/system/envoy.service
И вставьте в него содержимое:
[Unit]
Description=Envoy Proxy
Documentation=https://www.envoyproxy.io/
After=network-online.target
[Service]
User=root
Restart=on-failure
ExecStart=/usr/bin/envoy -c /etc/envoy/envoy.yaml
[Install]
WantedBy=multi-user.target
Запуск Envoy
Добавьте Envoy в запуск:sudo systemctl enable envoy
И запустите сервис:
sudo systemctl start envoy
Проверьте что все работает:
sudo systemctl status envoy
Админ-интерфейс
Когда все будет готово, зайдите в админ-интерфейс в браузере по адресу:http://127.0.0.1:9901/