Andrey
Угу
Забавно. А мы свой написали для того же. А не скинешь название этого компонента? Почитать надобно.
Vadim
Но документации пока совсем мало, надо ждать релиза
Andrey
Спасибо!
Amet
Никто не сталкивался с тем, что после обновления Nginx Ingress на 0.20.0+ ломаются ингрессы с использованием configuration-snippet? Пример такого ингресса (по умолчанию для хоста включена basic auth, а для favicon.ico она отключена): annotations: nginx.ingress.kubernetes.io/auth-realm: Authentication Required nginx.ingress.kubernetes.io/auth-secret: basic-auth nginx.ingress.kubernetes.io/auth-type: basic nginx.ingress.kubernetes.io/configuration-snippet: | location ~ favicon.ico { auth_basic off; proxy_pass $whatever; } spec: rules: - host: myhost.com http: paths: - path: / backend: serviceName: myhost-service servicePort: 80 На 0.19.0 — работает, на 0.21.0 уже нет.
Amet
ничего особенного, обычные 503, включал логирование с -v=5 там мусора много, но опять же кроме 503 особо ничего не нашел
Rainbow
ага
Точно? А то я как-то почти 3 часа дебагал, пока не понял, что секрета нет 😂
Max
Ребят. Планирую в этом году на четырехсокетной материнке собрать пару нод для куба, в сумме на одной ноде будет 72 ядра / 144 потока. Как думаете, не будет ли кубелет лагать от большого количества контейнеров на одной ноде? у нас на один поток запускается один контейнер
Max
а то вижу везде рекомендуют не больше 110 подов на одну ноду
Rainbow
Там есть ещё проблема, что нельзя kubelet рассказать, что ядра разных моделей и по perfomance разница в пару раз...
Rainbow
* шедулеру точнее
Max
Там есть ещё проблема, что нельзя kubelet рассказать, что ядра разных моделей и по perfomance разница в пару раз...
да у нас в среднем одинаковые дедики, но в случае чего я думаю можно просто лейблами пометить медленные ноды и все
Rainbow
да у нас в среднем одинаковые дедики, но в случае чего я думаю можно просто лейблами пометить медленные ноды и все
тогда работать вместо шедулера придется руками 😬 Конкретно насчет количества подов, я до 150 догонял, проблем особо не было. Но я из железа все не выжимаю.
Andor
а то вижу везде рекомендуют не больше 110 подов на одну ноду
это устаревшее, сейчас точно больше 200 контейнеров норм живут
Andor
- mountPath: /host/root mountPropagation: HostToContainer name: root readOnly: true
Andor
интересно, зачем у node-exporter этот маунт
Andor
при этом в опциях командной строки он не используется
Rainbow
(бесполезный комент 😬)
Mikhail
кто ротирует логи в /var/log/pods/ ? не вижу конфигурации ротирования ни у кубелета ни у логротейта, но логи ротируются и архивируются
Andor
а кто драйвер?
Andor
на докер не похоже
Mikhail
драйвер не менял, runtime - containerd
Mikhail
кубер ванильный
Vadim
а нет, теперь есть опции по ротированию логов - https://github.com/kubernetes/kubernetes/pull/59898
Denis
Кто можешь подсказать в чем ошибка подключения PVC, пробую подключить dynamic provisioning CEPH через rbd MountVolume.SetUp failed for volume "pvc-f227539b17ee11e9" : rpc error: code = DeadlineExceeded desc = context deadline exceeded PVC bound
Mikhail
а нет, теперь есть опции по ротированию логов - https://github.com/kubernetes/kubernetes/pull/59898
спасибо, видимо сделали ротацию, но не сделали "отключить архивирование"
Mikhail
Драйвер логов кто?
я не знаю, я не менял
Mikhail
json-file наверное
George
Ну, так посмотри
Andor
Драйвер логов кто?
а в cri-containerd есть выбор?
George
А мне самому интересно
George
json-file наверное
Ну, это же для докера дефолт.
Etki
что докеру дефолт, то девопсу - смерть
George
Я уже наелся. Драйвер логирования, ключи запуска, bip, в конце-концов, который пересекается с Корп сетью (спасибо мудрецам, которые корпсеть на 172.20 собрали)
Andor
@alexesDev хочешь ещё задачку? :)
Andor
по жсоннету
Andor
она попроще будет
Andrey
а то вижу везде рекомендуют не больше 110 подов на одну ноду
запускаешь 200 реплика сетов, кубер начинает их стартовать, нагрузка на диск - дикая, кубер ждет, проходит N минут, кубер видит что нифига не стартнулось, убивает под и начинает пытаться его стартнуть снова и так этот цикл убивает твои 144 потока
Mikhail
А мне самому интересно
Note: By default, Stackdriver logging collects only your container’s standard output and standard error streams. To collect any logs your application writes to a file (for example), see the sidecar approach in the Kubernetes logging overview. я так понял там нет как такового log driver
Mikhail
https://kubernetes.io/docs/tasks/debug-application-cluster/logging-stackdriver/
Mikhail
для fluentd деплоится sidecar
Andrey
Не забыть также, что PCI тоже крепится к NUMA ноде, когда тюнить будете.
Andor
https://github.com/coreos/prometheus-operator/pull/2285 хаха
Rainbow
она попроще будет
Что там такого? 😁
Andor
ну короче мне захотелось подпатчить опции запуска того контейнера где я лимиты правил
Andor
точнее не подпатчить, а добавить одну опцию
Andor
std.mergePatch заменяет вложенный массив, а не дополняет
Andor
поэтому такая вот функция не прокатит: local patchArrayItemByKey(list, key, value, patch) = std.mapWithIndex( (function(index, item) std.mergePatch(list[index], if item[key] == value then patch else {} )), list );
Rainbow
ну короче мне захотелось подпатчить опции запуска того контейнера где я лимиты правил
node_exporter, какого я догадался. Себе просто правил yaml 😬 Можно так https://gist.github.com/alexesDev/d93be0dd131fb090964910f73a83b510
Andor
INFO Applying deployments monitoring.kube-state-metrics INFO Applying deployments monitoring.kube-state-metrics INFO Applying deployments monitoring.kube-state-metricsчо за лажа
Andor
то есть и лимиты и опции одновременно
Rainbow
там прикол в том что мне надо сложить одно и другое :)
containers: patchArrayItemByKey( pathArrayItems(config.containers, 'name', 'nginx', (function(item) item.args + ['--force'])), 'name', 'nginx', { } ) ну вложенное
Rainbow
каррирования и compose тут нет, жалко, поэтому походу ток руками.
Rainbow
думаю можно намутить что-то вроде patch(config.containrs) .arrayItemByKey(...) .arrayItems(...) но сейчас долго соображать
Andor
о, коллбэчина
Andor
спасибо, ща сделаю
Andor
std.assertEqual((function(a=[1, b[1]], b=[a[0], 2]) [a, b])(), [[1, 2], [1, 2]]) нихрена чо у них есть в тестах
Andor
@alexesDev в очередной раз выручил меня, спасибо
Andor
я туда ещё uniq добавил
Andor
вышло вот это: (function(item) { args: std.uniq(item.args + [ '--path.rootfs=/host/root' ]), resources: std.mergePatch(item.resources, { requests: { cpu : '70m' }}), }),
Andor
чота я не додумался что можно коллбэк туда сунуть
Rainbow
@alexesDev в очередной раз выручил меня, спасибо
Да не за что особо. Мне теперь самому проще будет перейти на jsonnet, только дожить бы 😁
Andor
теперь бы понять почему у меня трижды трогается деплоймент кубе-стейт-метрикс
Bear
Это вот скрин чего был?
Denis
@denuto еще актуально?
спасибо, разобрался) сейчас не получается его на разных нодах запустить не создается на ноде rbd