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
Сегодня, 13 сентября 2023 года, праздник — День программиста! Поздравляем всех причастных! 🥳

Fun Fact № 1: точной даты у Дня программиста нет. Но это всегда 256-ой день от начала года. Как правило, выпадает 13 сентября. Но в високосные годы дата меняется на 12-е число.

Fun Fact № 2: если вы думаете, что это «праздник» и знают про него только внутри профессионального сообщества, то нет :) В России это официальная дата — есть целый президентский указ № 1034 от 11.09.2009 г. «О Дне программиста».

В общем, всё серьезно 😎
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉22👍4🔥2
Сегодня даже подборка статей будет тематическая 🖥

▪️Статья «Что для меня значит быть программистом»"вот вам исповедь погромиста. Уж не знаю, типичный я программист или какой-то чудак. Пишу так, как вижу, а обобщать на всех прогеров или нет - решать вам."

▪️Статья «Четыре типажа программистов»"мой основной тезис: все разработчики, грубо говоря, делятся на 4 больших типажа и каждому из этих типажей есть своя область применения. Попытка направить неправильный типаж на решение неподходящих для него задач ведет к провалу (неэффективная работа, или сотрудник покидает команду). Хотите знать почему так — добро пожаловать под кат. Приготовьтесь, текста много."

▪️Статья «Мой путь из инженера в программисты»"автор поныл, как тяжело живется инженерам на Руси и решил уходить в программисты. У него получилось. Пост о том, как именно."

▪️Статья «20 вещей, которые я узнал за 20 лет работы инженером-программистом»"наткнулся на любопытный материал, в котором автор систематизировал и записал свой опыт инженера-программиста в 20 тезисов. Я работаю в коммерческой разработке ПО больше 25 лет, и этот текст отозвался во мне практически каждой буквой — большинство советов я тоже регулярно практикую, не облекая их в формат ёмких афоризмов. В общем, решил сделать перевод."

▪️Статья «Самые позорные ошибки в моей карьере программиста (на текущий момент)»"как говорится, если тебе не стыдно за свой старый код, значит, ты не растешь как программист — и я согласна с таким мнением. Я начала программировать для развлечения более 40 лет назад, а 30 лет назад и профессионально, так что ошибок у меня набралось очень много. Будучи профессором информатики, я учу своих студентов извлекать уроки из ошибок — своих, моих, чужих. Думаю, пришло время рассказать о моих ошибках, чтобы не растерять скромность. Надеюсь, кому-то они окажутся полезны."

#статьи
👍53🔥1
Делимся ещё одним подкастом про облачные технологии

Вообще этот подкаст про информационную безопасность, но тема нового выпуска — вопросы безопасности ИТ- и ИБ-аутсорсинга в разрезе облаков: SaaS, PaaS и IaaS.

Что узнаете:

• как выбрать провайдера, и на какие ключевые моменты стоит обратить внимание;
• как распределить риски между организацией и провайдером;
• почему важно подготовить «план Б», который предусматривает отказ от услуг облачного провайдера;
• какие требования предъявляет регуляторика к аутсорсингу.

Подкаст доступен как в видео, так и в аудиоформате :)

#подкаст
👍10🔥6
Forwarded from KazDevOps
Отличные новости для всех, кто готовится к экзаменам CKA, CKAD и CKS или просто хочет освоить Kubernetes — бесплатная open-source платформа, которая поможет на этом пути.

Вот что есть на платформе:
Создание всех необходимых ресурсов (VPC, subnets, EC2) автоматически.
Настройка кластеров под различные сценарии в несколько кликов.
Эквивалент http://killer.sh, но абсолютно бесплатно.
Возможность легко добавлять свои собственные сценарии.
Тесты для проверки правильности выполнения заданий.
Контроль времени для максимально реалистичных мок-экзаменов.

На данный момент доступны сценарии:
CKA mock экзамена
CKS hands-on lab
CKS mock экзамена

#devops #sre #cka #cks #ckad #kubernetes #killersh

@DevOpsKaz
🔥11👍7
Worst practices DevOps

Желаем классной пятницы и отличных выходных! 🔥

#memes
😁12🤩7🔥5🤣4👍2
В эфире — новости! ⚡️

▪️Релиз Docker Desktop 4.23. Добавление поддержки АSР.NЕТ, обновленный Configuration Integrity Check, улучшение быстрого поиска и многое другое. Все подробности — в Release Notes.

▪️Kubernetes выпустили довольно полезную заметку — «Сравнение локальных инструментов разработки Kubernetes: Telepresence, Gefyra и mirrord».

▪️Релиз PostgreSQL 16. Больше методов вертикального и горизонтального масштабирования рабочих нагрузок, а также новые способы получения аналитической информации и оптимизации управления своими данными. Подробности о релизе — здесь.

▪️Grafana Loki набрала 20 тысяч звезд на GitHub. Уже даже 20.1k. В честь такого юбилея — 20 забавных фактов об этом проекте.

▪️Релиз ClickHouse 23.8. 29 новых функций. 19 оптимизаций производительности. 63 исправления ошибок. Подробности в анонсе или в этом видео.

#новости
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥4
GitLab Critical Security Release: 16.3.4 (Community Edition) и 16.2.7 (Enterprise Edition)

Злоумышленник мог запустить пайплайн от имени произвольного пользователя с помощью scheduled security scan policies. Уровень опасности — critical (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N, 9.6).

Сообщение от GitLab c инструкцией (в том числе есть информация, что делать с версиями до 16.2)

#новости
👍10👌3
This media is not supported in your browser
VIEW IN TELEGRAM
Наглядное объяснение работы «native sidecar-контейнеров». Лучше, конечно, прочитать и оригинал текста :)

Kubernetes Native Sidecars

Fun Fact: объекта поля Sidecar нет даже в Kubernetes 1.28. Встроенные sidecar-контейнеры — это просто старые добрые init-контейнеры, но с некоторыми новыми свойствами:

▪️ Чтобы сделать init-контейнер sidecar-контейнером, необходимо добавить атрибут «restartPolicy: Always» в его спецификацию.

▪️ Поскольку сайдкары являются init-контейнерами, они соблюдают порядок запуска в списке Pod.initContainers.

▪️ Однако они не блокируют следующий запуск контейнера (init или обычного).

▪️ В отличие от init-контейнеров, в случае сбоя сайдкары будут перезапущены.

▪️ В отличие от не встроенных сайдкаров (исторически имитируемых обычными контейнерами), встроенные sidecar-контейнеры не блокируют завершение пода.

▪️startup|readiness|liveness пробы теперь можно настроить для init-контейнеров, но только для тех, у которых для параметра restartPolicy установлено значение «Always».

Другими словами, единственная «true init» особенность новых встроенных Sidecars, заключается в том, что они следуют порядку запуска инициализации. В остальном их поведение сильно отличается от init-контейнеров.

Эта конструкция открывает путь к более продвинутому типу init-контейнера. В Sidecar PEP даже упоминается новый тип, называемый «infra containers», который может быть использован для унификации поведения старых init и новых контейнеров Sidecar.

Вот как новое поведение можно визуализировать с помощью одного пода:

• Два обычных контейнера работают до завершения
• Два init-контейнера ic1 и ic2 работают до завершения.
• ... и смешанный с двумя сайдкарами sc1 (периодически выходит из строя и перезапускается) и sc2 (работает до завершения)

Обратите внимание, как:

• Первый сайдкар постоянно перезапускается.
• Оба сайдкара принудительно уничтожаются после завершения работы обоих обычных контейнеров.
• Окончательный статус пода — «Succeeded», несмотря на то, что оба сайдкара сообщают о non-zero exit codes.

#лонгрид
👍9🔥21
This media is not supported in your browser
VIEW IN TELEGRAM
Всем DevOps! 🖖

Очень вероятно, что вам знаком этот инструмент (все-таки 38k звездочек на GitHub), но кажется не лишним рассказать про него еще раз :)

dive — open-source инструмент для изучения образа Docker, содержимого слоев и поиска способов уменьшить размер образа Docker/OCI.

Чтобы проанализировать образ Docker, просто запустите dive с тегом / id / digest образа:

dive <your-image-tag>

Или вы можете использовать dive напрямую с помощью команды docker:

alias dive="docker run -ti --rm -v /var/run/docker.sock:/var/run/docker.sock wagoodman/dive"
dive <your-image-tag>

# for example
dive nginx:latest

Или вы можете создать свой образ и сразу приступить к его анализу:

dive build -t <some-tag>

💻 Ссылка на GitHub

#open_source
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥101
Forwarded from KazDevOps
☄️ «Возможно, отключение всего — более эффективное средство устранения неполадок. И именно устранение неполадок должно быть вашей главной заботой. Так вы выигрываете время для понимания проблемы. Это возможно не во всех случаях, но даже если вы сместите фокус с проблемы, вы сможете выиграть немного времени»

Это слова SRE-инженера Рикардо Кастро. Категорично настолько, будто это сказал его однофамилец Фидель 😜 Но смысл в этом есть.

👉 Читайте об опыте SRE-инженера в нашей новой статье.

#devops #sre

@DevOpsKaz
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥4
«Kube FM» — подкаст, позволяющий расширить знания о Kubernetes, следить за новейшими инструментами и тенденциями.

Подкаст ведет амбассадор CNCF Барт Фаррелл. Есть текстовая расшифровка и много полезных ссылок к выпуску.

В первом (и пока единственном 😢) выпуске рассматриваются новые функции Kubernetes 1.28 и рассказывается о том, что требуется для выпуска новой версии Kubernetes. В гостях Грейс Нгуен (Grace Nguyen) — Kubernetes 1.28 release lead.

#подкаст
👍10🔥3
Всем DevOps! 🖖
Давайте посмотрим, что было интересного на прошлой неделе.

▪️+ 1 open-source инструмент с забавным названием. Разумеется, речь о проекте OpenTofu — который переименовали из OpenTF и который стал проектом The Linux Foundation 🎉 А это значит, что теперь OpenTofu будет всегда Open Source.

▪️Релиз GitLab 16.4. Настраиваемые роли, список зависимостей на уровне группы/подгруппы, локальный доступ к кластерам с использованием идентификатора пользователя GitLab и многое другое.

И небольшая полезная инфа (ну мало ли): у GitLab есть весьма удобная площадка, на которой описана поэтапность обновления c вашей версии до последней актуальной.

▪️Релиз Angie 1.3.0. Поддержка нескольких паттернов сопоставления URI запроса для одного и того же контекста конфигурации (директива «location»), статистика в формате Prometheus, которая упрощает построение систем мониторинга в современной инфраструктуре, версионирование конфигураций отдельных процессов веб-сервера и возможность получения текущей конфигурации сервера через HTTP API. Все изменения — вот здесь.

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

Желаем отличной недели! 🔥

#новости
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍2
Маленькая шпаргалка 💻

Как узнать актуальные CVE в k8s? Обратиться к Official CVE Feed.

Эту же информацию можно извлечь в формате JSON:

curl -Lv https://k8s.io/docs/reference/issues-security/official-cve-feed/index.json

Или XML:

curl -Lv https://k8s.io/docs/reference/issues-security/official-cve-feed/feed.xml

Приятно, что для каждой CVE указывается ссылка на GitHub Issue и можно посмотреть как не идут дела.

#интересное
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12
Всем DevOps! 🖖

Уверены, что вы знакомы с Kubernetes (его еще называют k8s). У Kubernetes много плюсов, но есть один существенный минус — кластер Kubernetes немного сложен в настройке и требует значительных ресурсов, что затрудняет развертывание на локальной машине для обучения или разработки. В общем, не всегда возможно перейти на полноценный k8s. К счастью, на этот случай есть более легкое решение в виде k3s.

Про него и пойдет речь в сегодняшних постах. Разумеется, потом оформим все части в одну подборку 😉

Из истории k3s

Во время создания Rio (одна из разработок для kubernetes от Rancher Labs), разработчик Даррен Шепард был разочарован, что для тестирования постоянно требовалось запускать новый кластер Kubernetes. Он знал, что это занимает много времени и, если он сможет запускать кластер быстрее, то сможет выделять больше времени на написание кода и новые фичи. Даррен был хорошо знаком с исходным кодом Kubernetes и начал его разбирать, удаляя все ненужные компоненты, чтобы обеспечить быстрый запуск.

В 2019 году компания Rancher Labs объявила о запуске нового open source-проекта k3s, который представлял собой легкий и простой в установке дистрибутив k8s, предназначенный для разработчиков, ищущих способ запуска Kubernetes на платформах с ограниченными ресурсами.

Чтобы адаптировать Kubernetes к слабому железу, Rancher Labs:

• Удалили старый и неиспользуемый код. По словам разработчиков из кода было вырезано порядка 1000 строк;

• Вместо Docker использовали conteinerd;

• Добавили поддержку Kine, в качестве хранилища по умолчанию;

• Удалили драйвера облачных провайдеров.

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

#лонгрид #open_source
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍7🔥7🌚2
Отличия от k8s

• В k3s нет четкого различия между мастер и воркер нодами. Управление подами происходит на любой ноде, независимо от роли, которую они играют. Таким образом, понятия мастер и воркер нод не применимы к кластеру k3s

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

• Добавлены некоторые элементы, включая containerd, Flannel, CoreDNS, CNI, ingress controller Traefik, локальное хранилище данных, встроенный сервис Load Balancer. Все эти элементы упакованы в один бинарный файл и выполняются в рамках одного процесса. Дистрибутив также поддерживает Helm-charts из коробки.

• K3s не имеет внешних зависимостей. Это означает, что вам не нужно ничего устанавливать, чтобы запустить его.

• Автоматическое развертывание. Оно позволяет развертывать манифесты Kubernetes и Helm-чарты, помещая их в определенный каталог. То есть k3s отслеживает изменения и заботится об их применении без дальнейшего взаимодействия. Просто создайте/обновите свою конфигурацию, и k3s обеспечит актуальность ваших deployments.

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

#лонгрид #open_source
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍71
Архитектура

На приведенном выше рисунке показана разница между сервером k3s и узлами агента k3s. (Источник здесь)

Если копнуть глубже, то k3s упакован и развернут в виде одного бинарного файла размером приблизительно 60 МБ, представляющего из себя самодостаточный инкапсулированный объект, который запускает почти все компоненты кластера Kubernetes.

На рисунке мы наблюдаем две ноды, на одной из которых работает k3s service, а на второй агент k3s. API server проверяет и настраивает данные для объектов API — например pods, services и т.д. Controller Manager наблюдает за общим состоянием кластера через API-сервер, вносит в него изменения и переводит из текущего состояния в желаемое. Scheduler назначает модули узлам в соответствии с их текущим состоянием, ограничениями и доступными ресурсами. Kubelet как основной агент узла в кластере, работающий на каждой ноде. Kine, где в качестве хранилища по умолчанию используется SQLite. Containerd как исполняемая среда для запуска контейнеров. Связь между агентом и сервером осуществляется через туннельный прокси.

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

#лонгрид #open_source
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥32
Как можно развернуть k3s

Кластер из одной ноды
(изображение 1)

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

Один кластер с несколькими агентами (изображение 2)

Этот метод также использует один сервер к которому вы можете добавить агентов в кластер. Агенты безопасно подключаются с помощью токена, который сервер создает при запуске. В этой конфигурации каждый узел агента регистрируется на одном и том же узле сервера. Пользователь k3s может управлять ресурсами Kubernetes, вызывая API k3s на узле сервера.

Высокодоступный сервер k3s с внешней БД (изображение 3)

Этот метод можно использовать, если вам важно настроить отказоустойчивый кластер. Данный кластер k3s состоит из:

• Двух или более серверных узлов, которые будут обслуживать API Kubernetes и запускать другие службы плоскости управления.

• Внешнего хранилища данных (вместо встроенного хранилища данных SQLite, которое используется в конфигурациях с одним сервером по умолчанию).

Fun facts про k3s

• Более 1 миллиона загрузок. С февраля 2019 года k3s скачали более 1 миллиона раз, в среднем 20 000 установок в неделю.

• На момент 2023 года имеет на гитхабе более 24 тысяч звезд, что говорит о заинтересованности сообщества в данном проекте.

• Не существует ни полной формы названия k3s, ни официального произношения. Разработчики хотели, чтобы установка Kubernetes была вдвое меньше с точки зрения занимаемой памяти. А так как Kubernetes состоит из 10 букв, которое сообщество стилизовали под k8s, ребята из Rancher Labs просто уменьшили вдвое количество букв в Kubernetes и стилизовали под k3s.

*️⃣4/4

#лонгрид #open_source
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥42
k3s: легковесный дистрибутив Kubernetes

Часть 1: из истории k3s

Часть 2: отличия от k8s

Часть 3: архитектура

Часть 4: как можно развернуть k3s и Fun facts

▪️ Ссылка на репозиторий k3s

▪️ Ссылка на документацию k3s

▪️ Полезная ссылка из комментариев: «k3d — легкая оболочка для запуска k3s в докере»

#лонгрид #open_source
👍84🔥3
Всем DevOps! 🖖

Еще немного про OpenTofu. Вышла вот такая заметка в блоге «Why should I care about OpenTofu?»

Авторы проекта отвечают на в общем-то вполне логичный вопрос: «Смена лицензии меня не затрагивает, так почему меня это должно волновать?»

TL;DR: иметь альтернативы — это всегда хорошая стратегия, конкуренция важна, появление проектов типа OpenTofu снижает вероятность дальнейшего ужесточения лицензионных ограничений.

#новости
👍6🔥4