Затем вы можете настроить хост XXXXXXXXXXXXXXXX.k8s.ondigitalocean.com:9090 в качестве балансировщика нагрузки с Nginx.
Попробуйте настроить балансировщик нагрузки TCP Nginx.
Примечание: Вы будете использовать поток Nginx, и если вы хотите использовать Nginx с открытым исходным кодом, а не Nginx Plus, вам, возможно, придется скомпилировать свой собственный Nginx с параметром -with-stream .
Пример файла конфигурации:
events {
worker_connections 1024;
}
stream {
upstream stream_backend {
server dhcp-180.example.com:446;
server dhcp-185.example.com:446;
server dhcp-186.example.com:446;
server dhcp-187.example.com:446;
}
server {
listen 446;
proxy_pass stream_backend;
}
После запуска Nginx результаты теста должны быть такими:
Host lb.example.com выступает в качестве балансировщика нагрузки с Nginx.
В этом примере Ngnix настроен на использование циклического перебора и, как вы можете видеть, каждый раз, когда новое соединение заканчивается на другом хосте / контейнере.
Примечание : имя хоста контейнера совпадает с именем хоста узла, это связано с hostNetwork.
Существуют некоторые недостатки этого решения, такие как:
- определение hostNetwork резервирует порт (ы) хоста для всех контейнеров, работающих в модуле
- , создавая один балансировщик нагрузки, у вас есть единственная точка отказа
- каждый раз, когда добавляется новый узелили удален в кластер, балансировщик нагрузки должен быть обновлен
Таким образом, можно настроить кластер kubernetes на входящие-исходящие TCP-соединения, маршрутизирующие из / в пределы кластера.
Полезное сообщение: load-balancer-tcp .
Документация NodePort: nodePort .