Pipy
Pipy — это небольшой, высокопроизводительный, стабильный и программируемый прокси. Написанный на C++, созданный на основе библиотеки асинхронного ввода-вывода Asio, Pipy отличается лёгкостью и быстротой работы, что делает его одним из лучших вариантов для sidecar в сервисной сетке.
Благодаря встроенной поддержке JavaScript, предоставляемой QuickJS, Pipy легко настраивается и предсказуем в работе без накладных расходов на сборку мусора, которые можно наблюдать у других программных аналогов.
В основе Pipy лежит модульная конструкция с множеством небольших модулей многократного использования, которые могут быть объединены в цепочку для создания конвейера, через который проходят и обрабатываются сетевые данные. Дизайн Pipy делает его достаточно универсальным не только для sidecar, но и для других случаев использования, связанных с промежуточной обработкой сообщений между сетевыми узлами.
Совместимость
Pipy разработан для обеспечения высокой совместимости с различными операционными системами и архитектурами процессоров. Pipy полностью протестирован на следующих платформах:
CentOS7/REHL7 или FreeBSD рекомендуются для производственных сред.
Как собрать
Сборка с нуля
Перед сборкой необходимо установить следующие инструменты:
После установки указанных инструментов запустите скрипт сборки, чтобы начать сборку:
./build.sh
Исполняемый файл находится в папке bin/. Введите bin/pipy -h для получения дополнительной информации.
Создание образа Docker
Чтобы создать образ Docker, выполните следующие команды:
cd pipy
sudo docker build --squash --rm -t pipy .
Примечание: Для меньшего размера образа вы можете использовать опцию --squash. Это экспериментальная функция, поэтому вам нужно добавить { "experimental": true } в /etc/docker/daemon.json и перезапустить демон Docker, чтобы включить её.
Для получения дополнительной информации об опции Docker --squash обратитесь к документации Docker (https://docs.docker.com/engine/reference/commandline/image_build/).
Быстрый старт
Установка с помощью RPM
yum -y install http://repo.flomesh.cn/pipy/pipy-latest.el7_pl.x86_64.rpm
Отображение параметров командной строки
$ pipy --help
Список модулей и параметров
$ pipy --list-modules
$ pipy --help-modules
Запуск в CLI
Рассмотрим пример эхо-сервера в test/001-echo/. Чтобы запустить один экземпляр Pipy, который автоматически перезагружается при изменении файла конфигурации:
$ pipy test/001-echo/pipy.cfg --watch-config-file
Чтобы запустить два экземпляра Pipy с балансировкой нагрузки на одном порту:
$ pipy test/001-echo/pipy.cfg --reuse-port &
$ pipy test/001-echo/pipy.cfg --reuse-port &
Запуск с Docker
Образ Docker Pipy можно настроить с помощью нескольких переменных среды:
docker run -it --rm -e PIPY_CONFIG_FILE=/etc/pipy/test/001-echo/pipy.cfg flomesh/pipy:latest
docker run -it --rm -e PIPY_CONFIG_FILE=/etc/pipy/test/011-serve-static/pipy.cfg -e PIPY_SPAWN=1 -p 8000:6000 flomesh/pipy:latest
Pipy также поддерживает прозрачный прокси в среде Docker, где включена возможность NET_ADMIN путём добавления опции --cap-add NET_ADMIN к команде запуска:
docker run -it --rm -e PIPY_CONFIG_FILE=/etc/pipy/test/001-echo/pipy.cfg --cap-add NET_ADMIN flomesh/pipy:latest
Запуск на Kubernetes
Вы можете запустить Pipy на Kubernetes с помощью pipy-operator:
git clone https://github.com/flomesh-io/pipy-operator
cd pipy-operator
kubectl apply -f etc/cert-manager-v1.1.0.yaml
kubectl apply -f artifact/pipy-operator.yaml
kubectl apply -f config/samples/standalone/001-echo.yaml
kubectl apply -f config/samples/ingress/001-routing.yaml
kubectl apply -f config/samples/sidecar/007-deployment-pipy.yaml
Документация
Документацию по Pipy вы можете найти в папке docs/. Обзор [https://github.com/flomesh-io/pipy/blob/main/docs/overview.md]
Конфигурация [https://github.com/flomesh-io/pipy/blob/main/docs/configuration.md]
См. разделы COPYRIGHT и LICENCE.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )