DevOps FM – Telegram
DevOps FM
4.94K subscribers
636 photos
12 videos
10 files
751 links
♾️ Канал для тех, кто живёт DevOps и системным администрированием.

Новости, статьи, best practices, инструменты и чилл-аут контент. Cloud Native, Docker, Kubernetes, CI/CD, БД, мониторинг etc.

По вопросам — к Ладе @b_vls
Download Telegram
Всем DevOps! 🖖

Сегодня хочется рассказать что-нибудь полезное. Решили поделиться советами. Потом по традиции соберем в один пост, чтобы сохранять было удобнее :) Погнали!

Как выбрать оптимальную архитектуру для вашего Kubernetes-кластера?

Вопрос, конечно, интересный. Управление Kubernetes-кластером — это не та задача, где есть одно правильное решение на все случаи жизни. Есть много способов оптимизации кластера и главное здесь — это обеспечение стабильной и отказоустойчивой работы приложений.

Выбор правильного размера ноды критичен для разработки масштабируемых приложений. Иметь множество маленьких нод или несколько больших — это две крайности. Для кластера, которому нужно всего 24Gb памяти и 12 CPU лучше выбрать 12 машин по 1-CPU/2GB или две по 6-CPU/12GB ?

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

Отказоустойчивость

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

Если у нас есть две больших воркер ноды и одна их них упадет, то мы потеряем половину всех ресурсов кластера. Если вы не предусмотрели 100% запас ресурсов, то это приведет к катастрофе, так как оставшаяся нода не сможет выдержать двойную нагрузку. Наличие множества воркеров снижает эти риски на n. К примеру, если у вас есть 10 нод в кластере и выключится одна, то вы потеряете только 10% от всей мощности кластера.

Победители: множество маленьких нод 🎉

Сложность управления

С большим количеством нод вам нужно будет заботиться о большем количестве серверов, их обновлении и обслуживании. Сократив количество нод их проще обслуживать. Как DevOps и SRE вы можете использовать такие инструменты как Ansible или Puppet, чтобы упростить эти процессы за счет автоматизации.

Если вы используйте managed Kubernetes-кластер, то ваш облачный провайдер будет патчить и обновлять ноды за вас. В итоге с современными инструментами этот пункт не дает существенного преимущества.

Победители: нет 🎉

Простота в распределении контейнеров

Kubernetes оценивает многие параметры, когда распределяет контейнеры. Одни из них — это количество доступных ресурсов на ноде, ресурсные запросы и ограничения для контейнеров. С большим количеством ресурсов на каждой ноде Kubernetes проще найти ноды, на которые можно переселить поды, чем если бы у вас было множество маленьких нод.

Победители: несколько больших нод 🎉

Нагрузка на kubelet

Kubelet отвечает за взаимодействие с нижележащим container runtime (движком для контейнеров) для запуска приложений на воркер нодах. Если вы запускаете множество контейнеров на одной ноде, что типично для кластеров с большими нодами, это может перегрузить kubelet, так как ему нужно будет оперировать большим количеством контейнеров.

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

Победители: множество маленьких нод 🎉

Нагрузка на систему

И наоборот, множество нод нагружают ваши мастер ноды, так как им нужно взаимодействовать со множеством воркер нод. Kubernetes не оптимизирован для работы более чем с 500 нодами на кластер (хотя они и пишут, что могут управлять до 5000 нод).

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

Победители: несколько больших нод 🎉

*️⃣1/3: продолжение следует :)

#лонгрид
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥11
Выбор размера нод

Что ж, выбор зависит от множества факторов, как всегда! Истина где-то посередине и не стоит выбирать ни одну из крайностей.

Вам нужно ответить на вопросы ниже, чтобы найти свой оптимальный размер.

Какой тип приложений вы запускаете?

Вы запускаете микросервисы из множества контейнеров, которые занимают мало места, или несколько монолитов, требующих гигабайты оперативной памяти и целые ядра CPU? Базы данных? Или все вместе?

Можно ли объединить приложения в группы?

Для смешанных окружений, можете ли вы разделить приложения по категориям? Например, если вы запускаете микросервисное приложение, которое работает с БД MySQL, вы разделяете его компоненты на группы приложений и баз данных. Аналогично, если вы запускаете вместе и монолиты и микросервисы, как ELK стек для мониторинга кластера, вы можете разместить его компоненты по разным группам. Для простоты я назвал только три категории, но вы можете создать столько, сколько хотите.

Максимальное количество ресурсов для каждой категории

Если вы можете сгруппировать приложения по категориям, то после этого вам нужно понять сколько максимум ресурсов может потребоваться на одно приложение из каждой категории. Например, если вы запускаете микросервисы, монолиты и БД в кластере, вам нужно взять максимальные затраты на один инстанс БД, микросервис или монолит.

Посчитать количество приложений в каждой категории

Следующий шаг это найти планируемое количество приложений в каждой из категорий. У вас может быть, например, 8 БД MySQL, 200 микросервисов и 9 монолитов. Запишите их. Не перебарщивайте. Kubernetes спроектирован для масштабирования и вы всегда можете использовать автоматическое масштабирование кластера у некоторых провайдеров. Либо, вы можете добавить ноду вручную позже.

Поместите каждую категорию в отдельный пул нод

Лучший способ оптимизировать ноды это создать пул нод под каждую категорию. Большинство Kubernetes кластеров работают с различными пулами нод и разнородные ноды можно подключать к самостоятельно управляемым кластерам.

Заложите отказоустойчивость

Нужно иметь минимум две ноды в каждом пуле для достижения отказоустойчивости. Kubernetes рекомендует максимум 110 контейнеров на ноду. Так же есть ещё системные контейнеры, которые запущены на нодах, так что имейте это ввиду.

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

Подгоните свои ноды под контейнеры для оптимального управления ресурсами

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

Подгоните ваши контейнеры и ноды для лучшего возможного управления ресурсами. Например, если у нас есть 20 контейнеров, лучше всего будет распределить по 4 пода на одну ноду, тогда нам нужно иметь в запасе 20% ресурсов на каждой ноде, вместо 100% как если бы у нас было всего 2 ноды.

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

Учтите нагрузку от самого Kubernetes

Учтите тот факт, что системные компоненты Kubernetes так же будут потреблять какое-то количество CPU и памяти на каждой ноде, поэтому на самом деле вам будет доступно меньше ресурсов, чем есть на ноде. Уточните эти параметры у вашего облачного провайдера и добавьте к ресурсам ноды.

*️⃣2/3: продолжение следует :)

#лонгрид
Please open Telegram to view this post
VIEW IN TELEGRAM
🦄6👍5🔥4👾2
Подводя итог

Учитывая все вышесказанное, вам нужно сделать следующее, чтобы найти оптимальные значения:

Количество контейнеров на ноде = Корень квадратный из количества контейнеров, округленный до целого в меньшую сторону, при условии, что количество контейнеров на ноду не превышает рекомендуемое значение

Количество нод = Количество контейнеров/Количество контейнеров на ноду

Запас ресурсов = Количество контейнеров на ноду * Максимальное количество ресурсов на контейнер/(Количество нод - Максимальное допустимое количество отключенных нод)

Ресурсы ноды = максимальное кол-во ресурсов, требуемое контейнеру * кол-во контейнеров на ноде + запас ресурсов + ресурсные требования системных компонент Kubernetes

Чтобы понять, как это работает, давайте рассмотрим пример.

Давайте скажем, что нам нужны два пула нод:

Микросервисы - 200 микросервисов с 0.1 CPU и 100MB RAM, требуемых на контейнер.

Базы данных - 20 PostgreSQL баз данных с 2 CPU и 4GB RAM, требуемых на контейнер.

Предположим, что компоненты Kube system будут потреблять 0.5 CPU и 0.5 GB RAM и мы рассчитываем, что только одна нода может быть недоступна за раз.

Для микросервисного пула:

Ближайшее меньший целый квадрат числа = 196

Кол-во контейнеров на ноду = sqrt(196) = 14

Кол-во нод = 200/14 = 14.28 ~ 15

Максимальное допустимое число неработающих нод = 1

Запас ресурсов = 14 * (0.1 core + 100MB RAM)/(15–1) = 0.1 core + 100MB RAM

Ресурсы ноды = (0.1 core + 100MB RAM) * 14 + 0.1 core + 100MB RAM + 0.5 cores + 500MB RAM = 2 core + 2GB RAM

Для пула баз данных:

Ближайшее меньший целый квадрат числа = 16

Кол-во контейнеров на ноду = sqrt(16) = 4

Кол-во нод = 20/4 = 5

Максимальное допустимое число неработающих нод = 1

Запас ресурсов = 4 * (2 core + 4GB RAM)/(5–1) = 2 core + 4GB RAM

Ресурсы ноды = (two core + 4GB RAM) * 4 + 2 core + 4GB RAM + 0.5 cores + 0.5 GB RAM = 10.5 core + 20.5 GB RAM

Следовательно, для микросервисного пула вам будет нужно 15 воркер нод с 2 ядрами и 2 GB RAM каждая, и для пула БД вам нужно будет 5 воркер нод с 10.5 ядрами и 20.5 GB RAM каждая. Для простоты можно округлить числа до ближайшей большей доступной конфигурации машины.

*️⃣3/3

#лонгрид
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13👍8🤯1
Всё собрали в одну подборку — удобнее сохранять :)

Как выбрать оптимальную архитектуру для вашего Kubernetes-кластера?

⚙️ Часть 1 — иметь множество маленьких нод или несколько больших — это две крайности. Для кластера, которому нужно всего 24Gb памяти и 12 CPU лучше выбрать 12 машин по 1-CPU/2GB или две по 6-CPU/12GB ?

Сравнение обоих вариантов по разным критериям: отказоустойчивость, сложность управления, простота в распределении контейнеров, нагрузка на kubelet, нагрузка на систему.

⚙️ Часть 2 — конкретные вопросы, на которые нужно ответить, чтобы определиться с архитектурой и факторы, которые нужно учесть.

⚙️ Часть 3 — что нужно сделать, чтобы найти оптимальные значения? Посчитать! (пример расчетов)

#статьи
👍8🔥86
Вчера Debian исполнилось 30 лет, а мы ничего не написали! Непорядок, исправляемся 😁

Итак, 30 лет назад Ян Мердок написал в группу новостей comp.os.linux.development о завершении совершенно нового выпуска Linux. Вот здесь вы тоже можете прочитать эту новость, прикоснуться к истории, так сказать.

В дополнение рекомендуем видео «Early History of Debian» от Бдейла Гарби, разработчика, который принимал участие в создании Debian с первых дней проекта.

Сегодня Debian используют в кластерных системах, ЦОДах, ПК, IoT-устройствах, ноутбуках, серверах и даже в космосе :)

Live long and prosper, Debian! 🎉

#новости
🎉20🔥42👍2
Что нового по части безопасности добавилось в Kubernetes 1.28

Отличная статья от Рори МакКьюна, специалиста по безопасности, контейнеризации (Kubernetes/Docker), облачным вычислениям и т.д. из DataDog.

В статье рассматривается два изменения:

⚙️ Бета-версия Validating Admission Policy — функция, впервые представленная в Kubernetes 1.26, достигла статуса бета-версии в версии 1.28. Предоставляет встроенный механизм для проверки рабочих нагрузок при входе в кластеры Kubernetes. Ранее единственным вариантом реализации контроля доступа без использования сторонних продуктов был Pod Security Admission, которому не хватало гибкости, необходимой для более сложных сред.

⚙️ Stable-версия SelfSubjectReview API — эта функция была выпущена в бета-версии Kubernetes 1.27, и она позволяет пользователям идентифицировать атрибуты о себе. В Kubernetes нет базы данных пользователей, поэтому пользователям традиционно было трудно понять, как их видит кластер, и узнать подробную информацию о себе, например, о членстве в группах. Эта функция обеспечивает простой способ получения этой информации с сервера API.

P.S. У Рори МакКьюна есть и отдельный блог, писали про него здесь.

#статьи
👍9🔥3
Не любите Docker? Вы просто не умеете его готовить! 🤣

С Docker Cookbook есть шанс научиться. Ладно, если серьезно, эту отличную книгу нам порекомендовал подписчик, большое спасибо :) Разумеется, делимся!

В "кулинарной книге" — 10 глав. Каждая глава состоит из "рецептов", написанных в формате "проблема, решение, обсуждение". Можно читать книгу от начала до конца или выбрать конкретную главу — каждая глава независима от других, но когда требуются концепции из других разделов, предоставляются соответствующие ссылки

Как раз можно на выходных почитать (хотя, конечно, на выходных лучше отдыхать 🏖)

Всем пятница и хороших выходных! 🔥

P.S.
Если вы знаете какой-то классный материал, инструмент, увидели интересную новость и т.д. и хотите поделиться ими с сообществом — пишите!

#книги
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍4
В эфире — новости! ⚡️

▪️ Мировой рынок облаков за год вырос на $10 млрд — затраты на облачные ресурсы во II четверти 2023-го составили приблизительно $65 млрд. Это на $10 млрд больше по сравнению с аналогичным периодом предыдущего года. Таким образом, зафиксирован третий квартал подряд, когда рынок облачных вычислений вырос на $10 млрд в годовом исчислении.

▪️ Анонсирована стабильная версия Ceph Reef 18.2.0 — из важного: по состоянию на 07.08.23 невозможен билд Ceph этой версии на Debian GNU / Linux 12.0 (Bookworm) из-за ошибки на стороне Debian. С тех пор апдейтов не было.

▪️ C 16 августа 2023 г. GitLab будет требовать от пользователей, которые не используют двухфакторную аутентификацию ( 2FA ), подтвердить действительный адрес электронной почты при входе в систему.

▪️GitLab Container Registry теперь поддерживает артефакты Falcoctl OCI. Точнее это обновление войдет в релиз GitLab 16.3. Falcoctl — одна из новейших разработок сообщества Falco. Это инструмент командной строки, который позволяет управлять полным жизненным циклом правил и плагинов Falco, используя возможности OCI Artifacts.

▪️Про релиз Kubernetes 1.28 уже все знают, но обратите внимание на официальный блог k8s — после релиза там начинают выходить полезные статьи, рассказывающие про важнейшие обновления релиза, уже вышло три.

А еще Kubernetes представили репозитории, принадлежащие сообществу Kubernetes, для пакетов Debian и RPM: pkgs.k8s.io. Новые репозитории пакетов заменяют репозитории пакетов, размещенные в Google ( apt.kubernetes.io и yum.kubernetes.io), которые использовались, начиная с версии Kubernetes 1.5.

Что-то забыли? Дополняйте в комментариях :)

Всем DevOps и отличной недели! 🖖

#новости
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥62
Классный open-source инструмент — Docker Bench 💻

Это скрипт, который проверяет десятки распространенных best practices развертывания контейнеров Docker в продакшене. Все тесты автоматизированы и основаны на CIS Docker Benchmark v1.5.0.

Для работы Docker Bench требуется Docker 1.13.0 или более поздние версии.

Лицензия Apache-2.0, 8.5k звездочек на GitHub 🌟

#open_source
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16👍4
Всем DevOps! 🖖

Вышло продолжение серии статей от Datadog про безопасность контейнеров: Container security fundamentals part 5: AppArmor and SELinux.

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

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

Предыдущие части серии можно найти здесь. Про SELinux тоже писали :)

#статьи
👍7🔥6
Немного про Mobile DevOps

Кто-то считает, что Mobile DevOps'а — нет, есть только DevOps практики и методология, а где они используются — роли не играет. Но нам кажется, что своя специфика у Mobile DevOps есть.

Рекомендуем познакомиться с материалами по этой теме и сделать свои выводы. А еще лучше — поделиться мыслями в комментариях :)

Начать можно с двух статей:

⚙️ «Да кто такой этот ваш Mobile DevOps?»интересный рассказ про типичные проблемы мобильных команд (да-да, вы можете узнать в них свои), а также что такое Mobile DevOps и как получить этот самый Mobile DevOps к вам в команду.

⚙️ «Зачем разработчикам приложений нужен Mobile DevOps?» — а в этой статье рассказывается про то, какие проблемы решает Mobile DevOps, почему он может принести большую пользу компаниям, стремящимся к полной интеграции IT и других операционных взаимодействий с их бизнес-целями.

▪️ После знакомства с общими статьями, можно углубиться в детали. Для этого отлично подойдет серия статей — как GitLab можно использовать для Mobile DevOps (часть 1, часть 2, часть 3)

▶️ А потом — посмотреть видео «Особенности SRE и Observability в мобильных приложениях». Так уж сложилось, что тема SRE получила наибольшее распространение именно в серверных средах — бэкенды, апишки, базы. Однако с ростом количества мобильных телефонов и увеличением их роли в жизни людей вопросы доступности, наблюдаемости и надёжности мобильных приложений стали вставать всё острее.

Что думаете про Mobile DevOps?

#статьи #видео
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥2
Happy Birthday, Linux! 💻

Про эту дату мы не могли забыть :) Вообще с днем Рождения Linux история неоднозначная, есть как минимум 4 возможные даты:

🗓 3 июля. В этот день Линус Торвальдс впервые упомянул о разработке новой ОС и попросил нужные спецификации POSIX в ньюс-группе Minix.

🗓 25 августа. В этот день было опубликовано письмо в ньюс-группе Minix с официальным анонсом проекта. Это наиболее подходящая дата, потому что есть официальный документ с датой, временем и т.д., считает Линус Торвальдс.

🗓 17 сентября. В этот день был выпущен релиз 0.01.

🗓 5 октября. День первого истинно публичного релиза, когда вышла версия 0.02 (+1 патч).

В честь праздника от души рекомендуем несколько классных материалов про Linux:

⚙️ Документальный фильм «Revolution OS» — про историю GNU, Linux, а также open source и free software-движения. Ссылка ведет на русскую озвучку, начинайте с 6:35, до этого момента автор озвучки рассказывает про себя.

⚙️ Видео «The mind behind Linux | Linus Torvalds» (en | en sub / ru sub) — 7 лет назад Линус Торвальдс дал небольшое интервью на TED и рассказал о своем видении технологий, философии open-source и немного о себе.

⚙️ Статья «Собираем и запускаем Linux-0.01 в Minix 1.5, (почти) как это делал Линус Торвальдс» автор попытался повторить, насколько это возможно, действия Линуса Торвальдса по компиляции и запуску самой первой версии ядра Linux 0.01.

Live long and prosper, Linux! 🎉

Всем пятница и хороших выходных! 🖖

#новости #статьи #видео
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉12👍6🔥42
В эфире — новости! ⚡️

▪️Релиз ядра Linux 6.5. Еще не успели отпраздновать день Рождения Линукса, а уже можно отмечать релиз. В этом выпуске представлена ​поддержка MIDI 2.0 в ALSA, поддержка ACPI для архитектуры RISC-V и поддержка Landlock для UML (User-Mode Linux). Подробнее о всех новых функциях можно прочитать здесь.

▪️Релиз Grafana 10.1. Полный обзор всех обновлений можно найти в документации Grafana, журнале изменений или в документации «Что нового».

▪️Веб-сервер Angie рассказал про сходства и различия между Angie и Nginx. Например, Angie ориентируется на платформы, для которых “официальный” Nginx будет собираться еще нескоро (ALT Linux, Astra Linux SE и РЕД ОС, а также процессоры “Байкал” и “Эльбрус”). На самом деле ноги у этой заметки растут из обсуждения в комментариях, интересно получилось.

▪️Релиз Git 2.42. Для знакомства с обновлениями (и, что самое приятное, можно почитать сравнения с предыдущими версиями) рекомендуем эту заметку. А еще внутри много полезных ссылок.

Если мы пропустили что-то важное, обязательно дополняйте в комментариях :)

Всем DevOps и классной недели! 🔥

#новости
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥7
Немного про Kubernetes (как вы могли догадаться :)
Точнее про автоскейлинг.

Представьте, что приложение не может масштабироваться или использовать свои ресурсы по мере необходимости, при увеличении или уменьшении пользовательской нагрузки. Такое приложение, вероятно, не выжило бы на современном рынке. Но такую ситуацию можно преодолеть благодаря Kubernetes Autoscaling.

Механизмы автоскейлинга Kubernetes помогают автоматически масштабировать поды и ноды по мере необходимости. Есть три разных метода масштабирования:

• Horizontal Pod Autoscaler (HPA)
• Vertical Pod Autoscaler (VPA)
• Cluster Autoscaler (CA)

Чтобы подробнее разобраться в теме, рекомендуем очень подробный гайд, в котором рассматриваются все три метода (с отличными схемами).

#статьи
👍7🔥2
Неделя потихоньку движется к концу, срочные задачи уже сделаны — можно немного расслабиться и почитать интересные статьи.

💻 Статья «The Cult of Kubernetes or how I got my blog onto it»«Когда-то мир был простым местом. Раньше все имело смысл, или, по крайней мере, не было такого количества слоев, чтобы было трудно понять, что, черт возьми, происходит». Так начинается эта заметка и дальше автор рассказывает, почему зачем и как он перенес свой блог на Kubernetes. Отдельное уважение за самоироничный мем в начале статьи, даже продублируем в комментариях :)

Похожую историю (про использование k8s для личных проектов) можете найти здесь, мы их коллекционируем.

💻 Статья «Types of Technical Interviews» — не будет про софт-скиллы. Автор статьи — SRE-инженер, участвовал в процессе найма в свою компанию и прошел немало собеседований в своей жизни. Делится некоторыми мыслями о процессе найма, которые помогут подготовиться к собеседованию и знать, чего ожидать на каждом этапе.

🛠 Статья «Опыт многопоточной работы, или Как быть DevOps’ом для множества команд разработки» — об особенностях, с которыми столкнулся DevOps-инженер при взаимодействии с большим количеством команд разработки, о том, какие принципы помогли справиться с работой в таких условиях и, конечно, выводы — как получилось оптимизировать свою работу.

🧠 Статья «Why replacing programmers with AI won’t be so easy» — "Чтобы заменить программистов искусственным интеллектом, клиентам нужно начать точно описывать, чего они хотят. Мы в безопасности". Собственно, статья примерно об этом: о взаимосвязи между требованиями и программным обеспечением, а также о том, что нужно ИИ для получения хороших результатов.

Всем DevOps! 🖖

#статьи
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍3🔥2
Недавно мы рассказывали про конференцию DevOops Days 2023 (до начала которой, кстати, осталась всего неделя) и получили комментарий: «жаль платно(»

Нам тоже ужасно жаль, но есть и хорошая новость — второй день онлайн-части конференции будет бесплатным для всех желающих 🥳

• 10 докладов о Kubernetes, DNS и о применении Ops-практик.
• Дискуссии со спикерами и участниками после докладов.
• Чат с коллегами со всего мира.

Для получения бесплатного билета достаточно зарегистрироваться :)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍6
+ 1 подкаст 🎧

На этот раз про Site Reliability Engineering. Есть текстовая расшифровка.

Владислав Юкис (Vladyslav Ukis), руководитель отдела R&D компании Siemens Healthineers / эксперт в области SRE, и ведущие подкаста говорят об отношениях между SRE и DevOps, балансе принципов SRE с организационной структурой и о том, как GenAI повлияет на SRE.

А еще Владислав Юкис писал про SRE для блога Stack Overflow. Можете глянуть эту заметку — «Who builds it and who runs it? SRE team topologies».

Другие подкасты можно найти по тегу #подкаст
👍54🔥3
Всем DevOps! 🖖

Рекомендуем отличную схему дебага в Kubernetes. Разумеется, не покрывает все случаи, но с частью — точно поможет.

А можно просто распечатать и на стену повесить, украсить рабочее место ткскзт :)

На превью ~ 1/10 всей схемы, полностью и в хорошем качестве можно посмотреть здесь.

#интересное
👍12🔥8
Неплохая (и бесплатная!) возможность познакомиться с Yandex Cloud — проводят вебинар «Как начать работу в Yandex Cloud: пошаговая инструкция для новичков».

Расскажут про то, как устроена платформа Yandex Cloud, какие сервисы есть на платформе, что нужно для начала работы и как выполнить базовые задачи на старте: создать облако, запустить ВМ, настроить сеть и пр.

Когда? 07.09 в 16:00 МСК

Нужно зарегистрироваться.

P. S. Желаем классной пятницы и отличных выходных! 🔥
👍7🔥2🤮1
15.08.2023 Kubernetes представили репозитории, принадлежащие сообществу Kubernetes, для пакетов Debian и RPM: pkgs.k8s.iо. Новые репозитории пакетов заменяют репозитории пакетов, размещенные в Google (apt.kubernetes.iо и yum.kubernetes.iо).

С 31.08.23 Kubernetes официально прекращает поддержку устаревших репозиториев пакетов (apt.kubernetes.iо и yum.kubernetes.iо) и планирует заморозить содержимое репозиториев с 13 сентября 2023 года.

Это изменение затронет:

• пользователей, непосредственно устанавливающих исходные версии Kubernetes либо вручную, следуя официальным инструкциям по установке и обновлению, либо с помощью установщика Kubernetes, использующего пакеты, предоставленные проектом Kubernetes;

• пользователей Linux, которые выполняли установку kubectl с использованием устаревших репозиториев пакетов (как проверить).

#новости
👍6
Всем DevOps! 🖖

Собрали 10 сканеров для поиска уязвимостей безопасности и неправильных конфигураций в Kubernetes, делимся!

Часть 1

▪️ Kube-bench
Репозиторий:
https://github.com/aquasecurity/kube-bench

Kube-bench — это сканер, который проверяет, развернут ли Kubernetes в соответствии с best practices безопасности, определенными в CIS Kubernetes Benchmark. Kube-bench был удостоен награды InfoWorld Basic Award 2018.

Тесты настраиваются с помощью файлов YAML, что позволяет легко обновлять этот инструмент по мере развития спецификаций тестов.

Quick start

• Внутри контейнера:
docker run - pid=host -v /etc:/etc:ro -v /var:/var:ro -t aquasec/kube-bench:latest - version 1.18

• Внутри Kubernetes-кластера:
kubectl apply -f https://github.com/aquasecurity/kube-bench/blob/main/job.yaml

▪️ Kube-hunter
Репозиторий:
https://github.com/aquasecurity/kube-hunter

Kube-hunter ищет слабые места безопасности в кластерах Kubernetes. Этот инструмент был разработан для повышения осведомленности и наглядности проблем безопасности в средах Kubernetes. НЕ следует запускать kube-hunter в кластере Kubernetes, которым вы не владеете! Находясь за пределами кластера, kube-hunter сканирует домен или диапазон адресов на наличие открытых портов, связанных с Kubernetes, и проверяет наличие проблем конфигурации, которые делают ваш кластер уязвимым для злоумышленников.

Quick start

• На любой машине выберите удаленное сканирование и укажите IP-адрес или доменное имя вашего
кластера Kubernetes. Это даст вам обзор вашей настройки Kubernetes с точки зрения злоумышленника:
pip install kube-hunter

• На машине в кластере:
docker run -it — rm — network host aquasec/kube-hunter

• В поде внутри кластера:
kubectl create -f https://github.com/aquasecurity/kube-hunter/blob/main/job.yaml

▪️ Kubeaudit
Репозиторий:
https://github.com/Shopify/kubeaudit

Kubeaudit — это инструмент командной строки и пакет Go для аудита кластеров Kubernetes на предмет различных проблем безопасности.

Kubeaudit поставляется с большим списком «аудиторов», которые проверяют различные аспекты, такие как SecurityContext подов. Полный список аудиторов есть в репозитории.

Quick start

• Через Homebrew:
brew install kubeaudit

• Через Helm:
helm upgrade — install kubeaudit secureCodeBox/kubeaudit

▪️ Kube-scan
Репозиторий:
https://github.com/octarinesec/kube-scan

С помощью Kube-scan можно получить оценку риска ваших рабочих нагрузок. Kube-scan дает оценку риска от 0 (нет риска) до 10 (высокий риск) для каждой рабочей нагрузки. Kube-scan предназначен для того, чтобы помочь понять, какие из рабочих нагрузок подвергаются наибольшему риску и почему, а также позволяет определить приоритетность обновлений политики безопасности вашего модуля, определений модулей и файлов манифеста, чтобы держать риск под контролем.

Quick start

kubectl apply -f https://raw.githubusercontent.com/octarinesec/kube-scan/master/kube-scan.yaml
kubectl port-forward --namespace kube-scan svc/kube-scan-ui 8080:80

Затем установите для браузера значение http://localhost:8080

▪️ Kubesec
Репозиторий:
https://github.com/controlplaneio/kubesec

Kubesec — это open-source инструмент для оценки риска безопасности рабочих нагрузок Kubernetes на основе их конфигурации YAML.

Kubesec количественно оценивает риск для ресурсов Kubernetes, проверяя файлы конфигурации и файлы манифеста, используемые для развертываний и операций Kubernetes.

Quick start

• Docker Container:
docker.io/kubesec/kubesec:v2 https://hub.docker.com/r/kubesec/kubesec/tags

• Linux/MacOS/Win binary: https://github.com/controlplaneio/kubesec/releases

• Kubernetes Admission Controller: https://github.com/controlplaneio/kubesec-webhook

• Kubectl Plugin: https://github.com/controlplaneio/kubectl-kubesec

Пример использования командной строки:
kubesec scan k8s-deployment.yaml

#open_source
🔥13👍41