Служба балансировки нагрузки AKS, создающая ложный сетевой трафик

#azure #kubernetes #azure-aks #azure-container-instances

#лазурь #кубернетес #лазурный-акс #экземпляры контейнеров azure

Вопрос:

Я пытаюсь развернуть SFTP-сервер с помощью python / paramiko в AKS.

Это успешно развернуто на сервере разработки с голым металлом, однако у меня возникли проблемы с развертыванием этого в AKS.

Проблема возникает при создании службы балансировки нагрузки, это вызывает поток TCP-трафика на целевом порту, что делает SFTP — сервер бесполезным.

Ожидается ли это? Я нахожусь на пределе того, как работают внутренние компоненты AKS, поэтому я не хочу предполагать, что это ошибка, но я хотел бы знать, где я могу ошибаться.

Приведенный ниже код воспроизводит проблему в недавно подготовленной среде AKS с использованием nast сетевого анализатора. Выполните первую команду для запуска nast, а затем создайте службу балансировки нагрузки с помощью отдельной консоли:

 kubectl run -it --rm --restart=Never --image=ubuntu --labels="app=debug-pod" debug-pod -- bash -c "apt-get update amp;amp; apt-get install -y nast amp;amp; nast"  cat lt;lt;EOF | kubectl apply -f - apiVersion: v1 kind: Service metadata:  name: debug-service  namespace: default spec:  type: LoadBalancer  selector:  app: debug-pod   ports:  - name: sftp  protocol: TCP  port: 34567  targetPort: 45678 EOF  

Пример трафика, наблюдаемого через ~ 10 секунд после создания балансировщика нагрузки, со скоростью несколько раз в секунду:

 Nast V. 0.2.0  Sniffing on:  - Device: eth0 - MAC address: 66:4E:3B:41:F3:7B - IP address: 10.244.0.61 - Netmask: 255.255.255.0 - Promisc mode: Set - Filter: None - Logging: None  ---[ ARP ]----------------------------------------------------------- 2A:8E:A8:C9:D3:1E -gt; 66:4E:3B:41:F3:7B Type: ARP request: Who has 10.244.0.61? Tell 10.244.0.1 Hardware size: 6 - Protocol size: 4 Packet Number: 1  ---[ ARP ]----------------------------------------------------------- 66:4E:3B:41:F3:7B -gt; 2A:8E:A8:C9:D3:1E Type: ARP reply: 10.244.0.61 is at 66:4E:3B:41:F3:7B Hardware size: 6 - Protocol size: 4 Packet Number: 2  ---[ TCP ]----------------------------------------------------------- 10.240.0.7:64618(unknown) -gt; 10.244.0.61:45678(unknown) TTL: 126 Window: 8192 Version: 4 Length: 52 FLAGS: -S----- SEQ: 2330618374 - ACK: 0 Packet Number: 5  ---[ TCP ]----------------------------------------------------------- 10.244.0.61:45678(unknown) -gt; 10.240.0.7:64618(unknown) TTL: 64 Window: 0 Version: 4 Length: 40 FLAGS: --R-A-- SEQ: 0 - ACK: 2330618375 Packet Number: 6  ---[ TCP ]----------------------------------------------------------- 10.240.0.7:31026(unknown) -gt; 10.244.0.61:45678(unknown) TTL: 126 Window: 8192 Version: 4 Length: 52 FLAGS: -S----- SEQ: 2330618374 - ACK: 0 Packet Number: 7  ---[ TCP ]----------------------------------------------------------- 10.244.0.61:45678(unknown) -gt; 10.240.0.7:31026(unknown) TTL: 64 Window: 0 Version: 4 Length: 40 FLAGS: --R-A-- SEQ: 0 - ACK: 2330618375 Packet Number: 8  ---[ TCP ]----------------------------------------------------------- 10.240.0.7:52540(unknown) -gt; 10.244.0.61:45678(unknown) TTL: 126 Window: 8192 Version: 4 Length: 48 FLAGS: -S----- SEQ: 2330618374 - ACK: 0 Packet Number: 9  ---[ TCP ]----------------------------------------------------------- 10.244.0.61:45678(unknown) -gt; 10.240.0.7:52540(unknown) TTL: 64 Window: 0 Version: 4 Length: 40 FLAGS: --R-A-- SEQ: 0 - ACK: 2330618375 Packet Number: 10  ---[ TCP ]----------------------------------------------------------- 10.240.0.6:32242(unknown) -gt; 10.244.0.61:45678(unknown) TTL: 126 Window: 8192 Version: 4 Length: 52 FLAGS: -S----- SEQ: 2102210393 - ACK: 0 Packet Number: 11  ---[ TCP ]----------------------------------------------------------- 10.244.0.61:45678(unknown) -gt; 10.240.0.6:32242(unknown) TTL: 64 Window: 0 Version: 4 Length: 40 FLAGS: --R-A-- SEQ: 0 - ACK: 2102210394 Packet Number: 12  ---[ TCP ]----------------------------------------------------------- 10.240.0.6:27550(unknown) -gt; 10.244.0.61:45678(unknown) TTL: 126 Window: 8192 Version: 4 Length: 52 FLAGS: -S----- SEQ: 2102210393 - ACK: 0 Packet Number: 13  ---[ TCP ]----------------------------------------------------------- 10.244.0.61:45678(unknown) -gt; 10.240.0.6:27550(unknown) TTL: 64 Window: 0 Version: 4 Length: 40 FLAGS: --R-A-- SEQ: 0 - ACK: 2102210394 Packet Number: 14  ---[ TCP ]----------------------------------------------------------- 10.240.0.6:65391(unknown) -gt; 10.244.0.61:45678(unknown) TTL: 126 Window: 8192 Version: 4 Length: 48 FLAGS: -S----- SEQ: 2102210393 - ACK: 0 Packet Number: 15  ---[ TCP ]----------------------------------------------------------- 10.244.0.61:45678(unknown) -gt; 10.240.0.6:65391(unknown) TTL: 64 Window: 0 Version: 4 Length: 40 FLAGS: --R-A-- SEQ: 0 - ACK: 2102210394 Packet Number: 16  ---[ TCP ]----------------------------------------------------------- 10.240.0.7:18224(unknown) -gt; 10.244.0.61:45678(unknown) TTL: 126 Window: 8192 Version: 4 Length: 52 FLAGS: -S----- SEQ: 2517447963 - ACK: 0 Packet Number: 17  ---[ TCP ]----------------------------------------------------------- 10.244.0.61:45678(unknown) -gt; 10.240.0.7:18224(unknown) TTL: 64 Window: 0 Version: 4 Length: 40 FLAGS: --R-A-- SEQ: 0 - ACK: 2517447964 Packet Number: 18  

Ответ №1:

Хост в 10.240.0.7 пытается подключиться к порту 45678 IP 10.240.0.7. Этот хост сообщает, что порт не открыт. Процесс повторяется.

Ваша проблема в том, что процесс не прослушивает порт 45678.

Комментарии:

1. Спасибо. У меня есть несколько дополнительных вопросов. 10.240.0.7-это IP-адрес одного из узлов кластера. Мне любопытно, почему узел пытается связаться с помощью этой службы, поскольку я этого не ожидаю. Кроме того, почему это должно произойти на AKS, а не на моем кластере с голым металлом?

2. @BellyBuster — Исходя из информации в вашем вопросе, я не могу ответить, почему происходит трафик. У вас есть процесс, который пытается подключиться к порту 45678, но ничто не прослушивает эти попытки подключения.

Ответ №2:

Я решил эту проблему, установив externalTrafficPolicy: Local в службе балансировки нагрузки, а не значение по умолчанию Cluster .