Как проверить производительность сети кластера kubernetes? - PullRequest
0 голосов
/ 02 октября 2019

У меня есть кластер kubernetes в aws, созданный с помощью kops. Я пытаюсь оценить производительность сети кластера kubernetes. Я использую kubernetes по умолчанию CNI kubenet.

networking:
    kubenet: {}

Я использовал kubernetes-perf-test net-perf для оценки производительности сети кластера kubernetes.

Я использовал приведенную ниже команду для запуска теста.

go run ./launch.go --iterations 2

сгенерированный вывод

MSS                                          , Maximum, 96, 160, 224, 288, 352, 416, 480, 544, 608, 672, 736, 800, 864, 928, 992, 1056, 1120, 1184, 1248, 1312, 1376, 1440,
1 iperf TCP. Same VM using Pod IP            ,36736.000000,2101,25486,36736,35636,36115,35631,6801,6544,7146,6565,6320,7252,6363,5707,5855,6034,36058,34098,36713,35625,34571,6341,
2 iperf TCP. Same VM using Virtual IP        ,30203.000000,5531,6072,5963,5294,6047,5879,5412,5456,5844,28499,29306,29289,30203,28516,5987,5460,5833,6029,4920,5027,5111,4700,
3 iperf TCP. Remote VM using Pod IP          ,664.000000,0,0,102,134,156,196,229,255,266,189,214,240,235,267,314,294,403,531,612,617,664,657,
4 iperf TCP. Remote VM using Virtual IP      ,778.000000,0,0,134,163,202,240,287,313,338,414,481,477,512,610,605,559,604,578,572,679,778,697,
5 iperf TCP. Hairpin Pod to own Virtual IP   ,29522.000000,974,547,19748,22219,24301,24043,25328,24531,4508,4471,5699,4339,4199,5001,5504,4974,15043,28658,29522,28902,28574,28956,
6 iperf UDP. Same VM using Pod IP            ,1592.000000,1592,
7 iperf UDP. Same VM using Virtual IP        ,1008.000000,1008,
8 iperf UDP. Remote VM using Pod IP          ,0.000000,0,
9 iperf UDP. Remote VM using Virtual IP      ,0.000000,0,
10 netperf. Same VM using Pod IP             ,3516.740000,3516.74,
11 netperf. Same VM using Virtual IP         ,0.000000,0.00,
12 netperf. Remote VM using Pod IP           ,422.430000,422.43,
13 netperf. Remote VM using Virtual IP       ,0.000000,0.00,

Я не уверен, что на самом деле означает этот вывод. Как определить с помощью этого значения, работает ли сеть моего кластера k8s нормально или нет?

Кроме того, я попытался построить эти данные. enter image description here enter image description here

1 Ответ

1 голос
/ 03 октября 2019

Этот скрипт тестирует скорость передачи iperf / netperf в тестовой точке MSS в 5 сценариях для TCP, UDP и NetPerf.

Честно говоря, все, что вы описали в предоставленных ссылках Github.

Iperf - это широко используемый инструмент тестирования сети, который может создавать потоки данных TCP / UDP и измерять пропускную способность сети, в которой они находятся. Он позволяет пользователю устанавливать различные параметры, которые можно использовать для тестирования сети или, в качестве альтернативы, для оптимизации или настройки сети.

Netperf также является еще одним хорошим средством тестирования сети, которое также используется PerfKitBenchmark. комплект для тестирования производительности и сравнения различных облачных провайдеров друг с другом.

Более подробную информацию вы можете найти здесь

На Github у вас есть 2x5 сценарии ipetf для TCP и UPDи 5 сценариев для netperf.

5 основных путей сетевого трафика представляют собой комбинацию Pod IP против Virtual IP и того, расположены ли модули на одном и том же узле / виртуальной машине по сравнению с модулем, находящимся в удаленном расположении.
- та же виртуальная машина, использующая IP-адрес блока

та же самая виртуальная машина, проверяющая трафик от блока к блоку от рабочего 1 к рабочему 2 с использованием его IP-адреса блока.
- та же виртуальная машина, использующая кластерный / виртуальный IP

то жеТестирование трафика модуля Pod to Pod от работника 1 к работнику 2 с использованием служебного IP-адреса (также называемого кластерным или виртуальным IP-адресом).
- Удаленная виртуальная машина с использованием IP-адреса

Тесты трафика от Worker 3 к Worker 2 с использованием IP-адреса Worker 2.
- Удаленная виртуальная машина с использованием кластерного / виртуального IP

Тесты трафика от Worker 3 до Worker 2 с использованием кластера Worker 2 / Virtual IP.
- Тот же VM Pod Hairpin для себя, используя IP-адрес кластера

Относительно вывода CSV

MMS - максимальный размер сегмента. Более подробную информацию об этом можно найти здесь .

Пример TCP MMS Протокол TCP включает механизм для обоих концов соединения для согласования максимального размера сегмента (MSS), который должен бытьиспользуется через соединение. Каждый конец использует поле OPTIONS в заголовке TCP для объявления предложенного MSS. Выбранная MSS является меньшим из значений, предоставляемых двумя концами.

Цель этого согласования состоит в том, чтобы избежать задержек и снижения пропускной способности, вызванных фрагментацией пакетов, когда они проходят через маршрутизаторы или шлюзы, иповторная сборка на хосте назначения.

Значение MSS, объявленное программным обеспечением TCP во время настройки соединения, зависит от того, является ли другой конец локальной системой в той же физической сети (то есть системы имеют один и тот же номер сети). ) или находится ли он в другой (удаленной) сети.

Таким образом, для каждого сценария (максимальный размер сегмента) для протокола сценарий измеряет скорость передачи на каждую точку данных MSS в Мбит / с. Этот вывод будет лучше виден, если вы вставите его в Excel и будете использовать «Текст в столбцы», разделенные запятой.

На графике у вас те же значения, только для лучшей видимости.

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