Я запускаю службу в GKE / Kubernetes, которая предоставляет один порт UDP со старым IP-адресом. (Я продвинул статический IP-адрес из эфемерного в GCE.) Если я разверну его со следующими полями, сервис станет доступен.
spec:
type: LoadBalancer
loadBalancerIP: <static-ip-address>
Однако я не планирую запускать более одной реплики моей службы, и я даже не уверен, работают ли балансировщики нагрузки GKE с UDP, поэтому я бы хотел попробовать без нее.
Следующая альтернативная конфигурация еще не работает. С его помощью служба запускается, но с другим IP-адресом и, следовательно, недоступна извне, как хотелось бы.
spec:
type: NodePort
externalIPs:
- <static-IP-address>
Итак, возможно ли запускать внешне видимую службу на «собственном» статическом IP-адресе без балансировщика нагрузки, и если да, то как?
ОБНОВИТЬ Дальнейший прогресс показывает, что балансировщик работы также работает с UDP, но все еще кажется избыточным.
Балансировщик нагрузки L3 / 4 будет принимать входящие UDP-пакеты и выбирать серверную часть для их отправки. Если у вас только один бэкэнд, все пакеты попадут туда. Если у вас есть несколько бэкэндов, вам нужно будет понять, балансирует ли балансировщик нагрузки отдельные пакеты потоков пакетов (которые основаны на 5-кортеже {source ip, dest ip, source port, dest port, protocol}). Вы должны прочитать эта секция чтобы понять, как работает балансировка нагрузки UDP в GCP.