как настроить входной контроллер в кластере 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