Я хотел бы запустить кластер Kubernetes с 1 главным и 2 рабочими узлами, все 3 в разных отдельных частных подсетях в нашем локальном центре обработки данных. Какова была бы наилучшая стратегия для реализации кластера кубернетов, при этом открывая интерфейсное приложение для общедоступной сети, реализуя хорошую безопасность кубернетов?
локальный кластер кубернетов в частной подсети
Ответы (2)
В облаке мой ответ будет другим! Насколько я понимаю, טםו не собираются масштабировать ваши узлы, поэтому мой ответ основан на этом.
Создайте все свои сервисы в кластере K8S (не выставляйте ни один из них).
Создайте Nginx или любой балансировщик нагрузки, который вы предпочитаете в качестве виртуальной машины (если вы можете создать 2 виртуальные машины для высокой доступности).
Направьте Nginx во внешний интерфейс (пожалуйста, используйте входной контроллер, который не раскрывает)
Теперь по поводу безопасности:
Добавьте WAF в свой балансировщик нагрузки.
Контроль разрешенного процесса в каждом типе контейнера (для этого используйте Falco).
Создайте сетевую политику, определяющую, какой службе разрешено взаимодействовать с какой службой, или я настоятельно рекомендую использовать Istio.
Создайте сертификат для БД, и только модули, содержащие сертификат, смогут общаться с ним.
Удачи.
- создать кластер Kubernetes в частной сети
- создать внешний балансировщик нагрузки в отдельной сети, который будет выставлять трафик извне
- укажите свой DNS на общедоступный IP-адрес внешнего балансировщика нагрузки
- Откройте для себя сервисы Kubernetes от внешнего балансировщика нагрузки
- в большинстве случаев вам просто нужна служба Kubernetes типа nodeport, с которой будет разговаривать внешний балансировщик нагрузки
- если вашим приложениям требуется постоянство сеанса, настройте службу k8s для обслуживания только с локального узла