Size: a a a

Kubernetes — русскоговорящее сообщество

2021 January 04

DS

Dmitry Sergeev in Kubernetes — русскоговорящее сообщество
Dmitry Sergeev
Чет потестил еще и реально беда. Для чистоты эксперемента развернул обычный nginx в кластере на налогочной ноде, тоже с hostNetwork: true. nginx той же версии что и в ingress controller (1.19.4). Подогнал настройки, выставив по возможности аналогичные важные настройки, что часто влияют на производительность nginx: ssl, gzip, worker_*, events, tcp_*, keepalive и т.д.)
И результаты такие-же.
При 3K rps nginx ingress controller потребляет 4 ядра cpu. А обычный nginx максимум одно ядро, но в среднем 0.7-0.8 ядра
в данном эксперименте и nginx ingress controller и обычный nginx проксировали все запросы на один и тот же бэкенд. В обычном nginx я вручную в upstream прописал все ип подов примерно с такими же опциями что должны быть в ingress controller:
upstream backend
{
   keepalive 320;
   keepalive_timeout 60s;
   keepalive_requests 10000;
   server 10.245.4.9:3000 max_fails=50;
   server 10.245.4.10:3000 max_fails=50;
   server 10.245.6.10:3000 max_fails=50;
   server 10.245.6.3:3000 max_fails=50;
   server 10.245.6.4:3000 max_fails=50;
   server 10.245.6.6:3000 max_fails=50;
}

Ну то есть они выполняли одну и ту же работу - проксировали трафик. И. вот такая вот разица в потреблении CPU - на три ядра
источник

СГ

Сергей Голод... in Kubernetes — русскоговорящее сообщество
Dmitry Sergeev
в данном эксперименте и nginx ingress controller и обычный nginx проксировали все запросы на один и тот же бэкенд. В обычном nginx я вручную в upstream прописал все ип подов примерно с такими же опциями что должны быть в ingress controller:
upstream backend
{
   keepalive 320;
   keepalive_timeout 60s;
   keepalive_requests 10000;
   server 10.245.4.9:3000 max_fails=50;
   server 10.245.4.10:3000 max_fails=50;
   server 10.245.6.10:3000 max_fails=50;
   server 10.245.6.3:3000 max_fails=50;
   server 10.245.6.4:3000 max_fails=50;
   server 10.245.6.6:3000 max_fails=50;
}

Ну то есть они выполняли одну и ту же работу - проксировали трафик. И. вот такая вот разица в потреблении CPU - на три ядра
а настройки вывода логов одинаковые? если потрейсить нжинкс то на что уходит основное время cpu?
источник

DS

Dmitry Sergeev in Kubernetes — русскоговорящее сообщество
istio  мне чет даже страшно тестить 😂
Попробую gloo, skipper, contour, ambasador
источник

AG

Andrey Gumilev in Kubernetes — русскоговорящее сообщество
Solyar
Противники ранчера решили забанить нашего Жору
А какие аргументы против?
источник

DS

Dmitry Sergeev in Kubernetes — русскоговорящее сообщество
Сергей Голод
а настройки вывода логов одинаковые? если потрейсить нжинкс то на что уходит основное время cpu?
да. В обоих случаях в лог выводятся только ошибки
источник

AZ

Alexander Zaitsev in Kubernetes — русскоговорящее сообщество
Dmitry Sergeev
istio  мне чет даже страшно тестить 😂
Попробую gloo, skipper, contour, ambasador
тому что надо linkerd :)
источник

СГ

Сергей Голод... in Kubernetes — русскоговорящее сообщество
Dmitry Sergeev
да. В обоих случаях в лог выводятся только ошибки
а если снять метрики с контроллера и посмотреть что кроме цпу растёт?
источник

G

Grigoriy in Kubernetes — русскоговорящее сообщество
Dmitry Sergeev
Попутно разочаровался и в cilium.  агент на ноде, на которую  я отправлял 3К rps,  почему-то тоже начинает потреблять CPU 🤷
А вот kube-router'у пофиг, есть трафик или нет - потребляет всегда одинаково и совсем чутка
3к рпс - в под неторворк, сервис нетворк? Или нат за пределы кластера?
источник

DS

Dmitry Sergeev in Kubernetes — русскоговорящее сообщество
Grigoriy
3к рпс - в под неторворк, сервис нетворк? Или нат за пределы кластера?
это 3K rps были в nginx ingress controller c hostNetwork: true. Сам он проксирует запросы на pod'ы внутри кластера.
За то же время график для CPU nginx ingress controller вот здесь https://t.me/kubernetes_ru/334982. Как видно в те же моменты времени тестов  cilium  повышает потребление CPU
источник

G

Grigoriy in Kubernetes — русскоговорящее сообщество
Очень странно, как там участвует силиум агент.
источник

DS

Dmitry Sergeev in Kubernetes — русскоговорящее сообщество
Сергей Голод
а если снять метрики с контроллера и посмотреть что кроме цпу растёт?
а какие конкретно? Я сразу могу сказать какие - растет counter запросов =)
источник

DS

Dmitry Sergeev in Kubernetes — русскоговорящее сообщество
Grigoriy
Очень странно, как там участвует силиум агент.
да вот хз. Сам удивился
источник

SM

Sergey Monakhov in Kubernetes — русскоговорящее сообщество
cilium c vxlan?
источник

DS

Dmitry Sergeev in Kubernetes — русскоговорящее сообщество
Sergey Monakhov
cilium c vxlan?
да
источник

G

Grigoriy in Kubernetes — русскоговорящее сообщество
Опередил
источник

G

Grigoriy in Kubernetes — русскоговорящее сообщество
У меня с натив роутингом таких проблем нет
источник

SM

Sergey Monakhov in Kubernetes — русскоговорящее сообщество
Grigoriy
Опередил
Давай дальше ты))
источник

DS

Dmitry Sergeev in Kubernetes — русскоговорящее сообщество
Grigoriy
У меня с натив роутингом таких проблем нет
у меня нет возможности сделать натив роутинг к сожалению
источник

G

Grigoriy in Kubernetes — русскоговорящее сообщество
Не не)
источник

DS

Dmitry Sergeev in Kubernetes — русскоговорящее сообщество
В случае kube-router там p2p туннели
источник