Как добавить обратный прокси-сервер для аутентификации и балансировки нагрузки в Kuberenetes (GKE)? - PullRequest
0 голосов
/ 16 января 2020

Хорошо, у меня есть БД, состоящая из нескольких узлов, развернутых в GKE.

В файле deploy.yaml каждый узел добавляется как ClusterIP, что имеет смысл. Вот полный файл развертывания:

https://github.com/dgraph-io/dgraph/blob/master/contrib/config/kubernetes/dgraph-ha/dgraph-ha.yaml

По какой-то причине БД имеет нулевую функциональность безопасности, поэтому я не могу предоставить какую-либо часть с помощью службы LoadBalancer, поскольку это даст незащищенный доступ ко всей БД. Поставщик утверждает, что безопасность является исключительно проблемой пользователя. AlphaNode поставляется с конечной точкой API, которая также не защищена, но я на самом деле хочу подключиться к этой конечной точке API с внешнего IP-адреса.

Итак, лучшее, что я могу сделать, это добавить NGNIX в качестве (обратного) прокси с аутентификацией для безопасного доступа к конечной точке API альфа-узла. На практике у меня есть три альфа-узла, поэтому добавление балансировки нагрузки имеет смысл. Я нашел конфигурацию, которая выполняет балансировку нагрузки для трех альфа-узлов в Docker Compose, хотя без аутентификации. у меня вопрос: как мне добавить балансировку нагрузки NGNIX к Kubernetes, которая аутентифицирует и балансирует нагрузку входящего трафика c на мои (ClusterIP) альфа-узлы?

Есть указатели? Любая помощь?

1 Ответ

1 голос
/ 17 января 2020

Если вы хотите сделать это сложным способом, вы можете развернуть свое собственное развертывание nginx и выставить его как LoadBalancer Service. Вы можете настроить его с различными механизмами аутентификации, которые nginx поддерживают.

Вместо этого вы можете использовать Ingress ресурс, поддерживаемый IngressController, который поддерживает аутентификацию. Проверьте, предоставляет ли ваш дистрибутив kubernetes IngressController и поддерживает ли он аутентификацию. Если нет, вы можете установить nginx или Traefik IngressControllers, который поддерживает аутентификацию.

Похоже, что вход GKE недавно добавил поддержку аутентификации на основе IAP, которая все еще находится на стадии бета-тестирования - https://cloud.google.com/iap/docs/enabling-kubernetes-howto

Если вы ищете более традиционный тип аутентификации с ingress, установите nginx или traefik и используйте аннотацию kubernetes.io/ingress.class, чтобы только IngressController запрашивал ваш входной ресурс - https://kubernetes.github.io/ingress-nginx/user-guide/multiple-ingress/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...