В чем разница между jwilder / nginx-proxy и kubernetes / ingress-nginx

jwilder / nginx-proxy имеет 1,3 КБ ЗВЕЗД и 10 млн + ПУЛЛОВ на Docker Hub. И смотрите 262, Star 7701, Fork 1546 на GitHub. https://github.com/jwilder/nginx-proxy

kubernetes / ingress-nginx имеет 13 звезд на kubeapps.com (один из самых популярных чартов), а Watch 137, Star 1596, Fork 918 на GitHub. https://github.com/kubernetes/ingress-nginx

  1. В чем разница между ними?
  2. Когда бы вы использовали одно вместо другого?

person PussInBoots    schedule 02.04.2018    source источник


Ответы (2)


Это 2 разных приложения, но оба основаны на Nginx и имеют схожую функцию.

  1. Nginx-proxy от jwilder - это прокси-сервер для контейнеров Docker, который включает docker-gen для автоматического создания конфигурации для Nginx. Вы можете использовать его для завершения SSL, балансировки нагрузки и т. Д. Но управлять nginx-proxy в Kubernetes будет сложно.

  2. Ingress-nginx от Kubernetes - это Ingress Controller, который предоставляет < функционал href = "https://kubernetes.io/docs/concepts/services-networking/ingress/#what-is-ingress" rel = "nofollow noreferrer"> Ingress для вашего кластера Kubernetes. Он также может выполнять завершение SSL и некоторые другие вещи, но он был создан специально для использования в Kubernetes, и это абстракции. Это означает, что вы можете создать объект Ingress, который включает Services в качестве серверной части и использовать селекторы и т. д.

Итак, если вы используете Kubernetes, Ingress-nginx - лучший выбор. Если вы используете только контейнеры Docker без оркестратора, используйте Nginx-proxy.

person Anton Kostenko    schedule 04.04.2018

В Kubernetes пользователь решает, какой набор функций сделать общедоступным и каким образом следует реализовать конфигурацию. Помощь может поступать от корпоративных поставщиков, например от контроллера Ingress, предоставленного GKE, а также от общественных / частных сторон, освещающих необычный подход к аналогичным аспектам служб доставки.

В данном конкретном случае у нас есть два решения на основе nginx.

Контроллер Ingress является полнофункциональным и обычно считается контроллером трафика по умолчанию для использования с GKE.

Ingress можно настроить для предоставления сервисам URL-адресов с внешним доступом, балансировки нагрузки трафика, завершения SSL и предложения виртуального хостинга на основе имени.

Пользователи запрашивают вход, отправляя ресурс Ingress на сервер API. Контроллер Ingress отвечает за выполнение Ingress, обычно с балансировщиком нагрузки, хотя он также может настроить ваш граничный маршрутизатор или дополнительные интерфейсы, чтобы помочь обрабатывать трафик в режиме высокой доступности. В настоящее время Ingress строго ориентирован на облачную конфигурацию, он использует ConfigMap style и kubedns для регистрации служб.

Если вы знаете, как работают устаревшие виртуальные хосты, и вас не интересуют все новые облачные аспекты предоставления веб-сервисов, jwilder / nginx-proxy может быть вам интересен. В этом решении nginx может действовать как прокси для управления внутренним хостингом и мировым веб-трафиком с конечными точками, готовыми к IPv6. jwilder / nginx не предназначен специально для облаков, но и там отлично работает. Если вы заинтересованы в получении бесплатных сертификатов Let's Encrypt, для этого есть готовая поддержка. Некоторым пользователям интересно, что доступна базовая аутентификация, а SSL более гибко настраивается для продвинутая цель.

person d0bry    schedule 04.04.2018