UDP не балансирует нагрузку на акс-движке?

Я развернул простой пример, но могу видеть входящий трафик только 1 из 5 модулей (с журналами kubectl 'udp-server-deployment-XXX'). Я пробовал это на акс-движке Azure, почему он никогда не балансирует нагрузку?

$ kubectl get pods | grep udp-server

udp-server-deployment-6f87f5c9-4mhpm 1/1 Running 0 4m

udp-server-deployment-6f87f5c9-5lqkm 1/1 Running 0 4m

udp-server-deployment-6f87f5c9-5x92x 1/1 Running 0 4m

udp-server-deployment-6f87f5c9-smb8g 1/1 Running 0 4m

udp-server-deployment-6f87f5c9-tszgs 1/1 Running 0 4m

Не помогает, если балансировка нагрузки на общедоступном IP-адресе не является внутренним (service.beta.kubernetes.io/azure-load-balancer-internal: "true"). Попробуйте сами, если у вас есть 'loggen' (генератор системного журнала linux) удобно:

git clone https://github.com/jpoon/kubernetes-udp.git

cd kubernetes-udp

kubectl create -f server.yaml

loggen --inet --dgram --size 300 --rate 10 --interval 10 <IPAddress of udp-server-service > 10001

kubectl logs udp-server-deployment-6f87f5c9-xxx (5 times)

person irom    schedule 20.03.2019    source источник


Ответы (1)


Могу только подтвердить со своей стороны, что разделяю те же наблюдения, что и вы. LoadBalancing не срабатывает при использовании протокола UDP, независимо от типа порта базовой службы (ClusterIP, NodePort или LoadBalancer), я проверил это как в Azure, так и в GCP.

Думаю, все дело в том, что:

Сервер UDP не может действовать как проверка работоспособности сам по себе, потому что UDP не имеет подтверждений, которые может проверить балансировщик нагрузки, поэтому необходим дополнительный компонент.

как указано в в этом сообщение в блоге.

person Nepomucen    schedule 29.03.2019