Как стать автором
Обновить
92
Карма
0
Рейтинг
Андрей Климентьев @zuzzas

Solutions Engineer

  • Подписчики 18
  • Подписки

Как мы обновляли Kubernetes 1.16 до 1.19… с удовольствием

У нас уже есть алгоритм последовательного переката нод. Мы в него лишь добавим логику лейблов и nodeSelector'ов, чтобы постепенно перекатить DS flannel в пользу DS cilium.

Как мы обновляли Kubernetes 1.16 до 1.19… с удовольствием

Честно — со стороны — выглядит, что попросту сначала вы обкатали flannel, набрали на нем экспертизу, а потом прилепили сбоку Kube-router, чтобы закрыть вопрос NP. Исторически сложилось, что уж там.

В корень зришь.

Продвинутая Helm-шаблонизация: выжимаем максимум

Функция dig в sprig есть для этого. Если в качестве дефолта поставить пустое значение, то можно в if использовать.


http://masterminds.github.io/sprig/dicts.html

Представляем k8s-image-availability-exporter для обнаружения пропавших образов в Kubernetes

Я issue создал в GitHub, сделаю. Там чуть подумать нужно будет, что в стандартной поставке будет.
github.com/flant/k8s-image-availability-exporter/issues/6

Представляем k8s-image-availability-exporter для обнаружения пропавших образов в Kubernetes

gecube не у нас работает, но мы его знаем и уважаем, потому что он всегда читает и критикует наши статьи.

Представляем k8s-image-availability-exporter для обнаружения пропавших образов в Kubernetes

Возможно, стоит перефразировать. Самый старый timestamp последней проверки.
Сейчас поправлю, спасибо!

Автомасштабирование и управление ресурсами в Kubernetes (обзор и видео доклада)

Настройки CPU shares и oom_score_adj проставляет kubelet, если конкретно. Я попытался (как смог) более общую картину нарисовать.

Автомасштабирование и управление ресурсами в Kubernetes (обзор и видео доклада)

У коллег спросил советов, на поверхность самый лучший вариант всплыл. Хранить в S3 или другом object storage, который у вашего хостера имеется! Сразу ото всех проблем избавитесь.

Автомасштабирование и управление ресурсами в Kubernetes (обзор и видео доклада)

Облачный провайдер, у клиента непредсказуемая нагрузка в течение дня. Распродажа или livestream. Просто подключаем HPA и смотрим, как вся нагрузка аккуратно съедается.

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

Автомасштабирование и управление ресурсами в Kubernetes (обзор и видео доклада)

Начнём с начала.
Перед запуском контейнеров в поде на ноде, под должен пройти через планировщик kube-scheduler. Он учитывает много вещей, включая requests по CPU и Memory. Чем больше запросы у пода, тем тяжелее подобрать для него машину со свободными ресурсами. Но когда она подобрана и под выехал, то ему назначается более высокий QoS класс, чем остальным. И приоритет на жизнь у него гораздо выше, чем у остальных. Потому что мы заранее обозначили его класс и подобрали большую и свободную ноду для него.

Автомасштабирование и управление ресурсами в Kubernetes (обзор и видео доклада)

Здесь нет ничего странного. В requests мы резервируем больше места для пода. А значит, он имеет большую приоритет на жизнь, чем остальные контейнеры/процессы на хосте.

Kubernetes 1.14: обзор основных новшеств

На большинстве способов установки он уже был «внутри» кластера. Используя static manifests в kubelet'е master ноды. Это следующий логический шаг, чтобы отвязаться от необходимости трогать файловую систему.

6 занимательных системных багов при эксплуатации Kubernetes [и их решение]

А, я понял. Но в вашей ссылке патч, который ускоряет уменьшение slab'ов, а не решает вопрос подсчёта используемой памяти. В 4.16 подсчёт уже быстрее должен быть.

6 занимательных системных багов при эксплуатации Kubernetes [и их решение]

Третья уже решена патчем в systemd.

Perf и flamegraphs

В следующий раз упомяните DWARF и LBR, пожалуйста. Далеко не каждый софт можно пересобрать в production.

Как победить дракона: переписываем вашу программу на Golang

А зачем рантайм Erlang тянуть (BEAM)?

Как победить дракона: переписываем вашу программу на Golang

Не вникая в проблему, так действительно может показаться, однако реальность чуть сложнее.
Последние две недели я активно работаю с Python Client. Ничем, помимо сгенерированных классов/методов из OpenAPI, он похвастаться не может. Сильно не хватает более высокоуровневых концептов из client-go, а потому велик соблазн забить на Watch совсем и пользоваться только List'ом, несмотря на performance impact. Таких, как Informer, например. Работать напрямую с List/Watch сильно неудобно.
1

Информация

В рейтинге
Не участвует
Откуда
Нижний Новгород, Нижегородская обл., Россия
Работает в
Дата рождения
Зарегистрирован
Активность