как настроить входной контроллер в кластере Kubernetes поверх голой системы?

Есть ли способ назначить статический IP-адрес кластеру Kubernetes, в котором любой пользователь сможет получить доступ к своему приложению только через статический IP-адрес?

для примера я настроил кластер по адресам 192.168.0.131 (главный), 192.168.0.132(рабочий1) и 192.168.0.133(рабочий 2). Одно приложение dotnet работает на порту узла 32000, который, как и ожидалось, доступен по всему кластеру.

Теперь мне нужно назначить один IP-адрес, который будет связываться с этим кластером, и пользователь сможет получить к нему доступ. Также есть ли способ использовать этот IP-адрес и для других приложений, которые можно различать по разным портам, а не по узлу.

К вашему сведению, я использую кластер Kubernetes поверх «голого железа».

1 ответ

Чтобы повторно использовать один IP-адрес для нескольких проектов, пока мы говорим о HTTP, я предлагаю вам использовать Ingress и развернуть IngressController, например nginx-ingess, traefik или аналогичный. Таким образом, любой HTTP-трафик будет обслуживаться через один HTTP-IP/порт с использованием виртуальных хостов, управляемых IngressController.

Остается проблема предоставления доступа к службе на базе NodePort по одному IP-адресу. Для локальной системы я бы, вероятно, запустил что-то вроде HA Proxy на известном IP-адресе (возможно, главном узле) и использовал его для направления трафика на службу nodePort входного контроллера или настроил для этого какой-нибудь балансировщик нагрузки/маршрутизатор, который есть в вашей сети. В качестве альтернативы вы можете запустить вход непосредственно на главный узел с помощью nodePort или hostNetwork: true

Другие вопросы по тегам