Библиотека девопса | DevOps, SRE, Sysadmin
10.3K subscribers
1.38K photos
71 videos
4 files
2.58K links
Все самое полезное для девопсера в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/25874ec4

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/6798b4e4509aba565
Download Telegram
🚶🚶Slack уходит из России: чем заменить зарубежный сервис

Аналоги Slack и других зарубежных сервисов, которые больше недоступны в России.

Читать статью
👍4🥰41❤‍🔥1👏1
#дайджест перед выходными

☑️ Летний ProIT Fest — интерактивные форматы на стыке отделов, которые интересны как Senior-ам, так и джунам

☑️ Руководство по обнаружению сервисов с помощью Prometheus Operator — как использовать Pod Monitor, Service Monitor и Scrape Config

☑️ 4 шаблона проектирования контейнеров для Kubernetes — рассматривается применение четырех паттернов: Ambassador, Adapter, Sidecar и Init

☑️ Замена 3-way merge на Server-Side Apply — как werf 2.0 решает проблемы Helm 3

☑️ Сетевые политики на защите рабочих нагрузок в кластере Kubernetes — подробный процесс настройки сетевых политик через фронтенд, бекенд и БД
❤‍🔥12🔥2👏2🥰1
🙈🙉 Автоматизация мартышкиного труда с помощью Xdotool и Ansible

В этой небольшой статье опиcывается простой способ, как можно автоматизировать 10 000+ кликов мышкой на нескольких удаленных Linux-машинах (Xserver + SDDM).

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

Задача облегчается наличием доступа по VNC, если машин хотя бы меньше 50 и клацать не так уж и много. А если нет?

Продолжение тут

#гайд
11👍2❤‍🔥1🥰1
eks-node-viewer — это инструмент для визуализации динамического использования нод в кластере. Первоначально он был разработан как внутренний инструмент AWS для демонстрации консолидации с помощью Karpenter.

#софт
12🔥3🥰2
Из каких компонентов состоит k8s и каково их назначение?

Kubernetes (K8s) включает в себя плоскость управления и плоскость данных.

Плоскость управления — это уровень управления, который работает на узлах, называемых главными узлами, и может работать в конфигурации с одним главным узлом или несколькими главными узлами.
Плоскость управления включает в себя:
ETCD: хранилище конфигурации кластера
Kubernetes API: предоставляет API для взаимодействия между компонентами K8s и клиентами внутри и вне кластера
Kubernetes controller manager: реализует контроллеры, управляющие основными сущностями кластера, такими как контроллер узлов, контроллер задач и контроллер срезов конечных точек
Kubernetes scheduler: выбирает узлы, на которых будут запускаться POD
cloud controller manager: используется для реализации функций, специфичных для работы с облаком (если кластер K8s работает в облачной среде)

Плоскость данных состоит из компонентов, работающих на каждом узле:
kubelet: отслеживает изменения конфигурации узла, применяет изменения конфигурации, выполняет проверки контейнера, сообщает о статусе контейнера, работает с плагином CRI и обеспечивает функции запуска и остановки контейнера
kube-proxy: отвечает за сетевой компонент, работает с плагином CNI и обеспечивает работу сущности «сервис» на своем узле.
13👍2❤‍🔥1🥰1
🏛️🏛️ DbGate — open-source менеджер SQL и NoSQL БД

Это кроссплатформенный менеджер БД. Разработан, чтобы быть простым в использовании и эффективным при работе с несколькими базами одновременно.
Также имеет множество дополнительных функций, таких как сравнение схем, визуальный конструктор запросов, визуализация графиков или пакетный экспорт и импорт.

Поддерживает MySQL, PostgreSQL, SQL Server, MongoDB, SQLite.
Работает под Windows, Linux, Mac и как веб-приложение.

Исходники тут

#софт
13👍8❤‍🔥5👏2🥰1
🧑‍🔬🧑‍🔬 Опыты в домашней лаборатории: собственный Let's Encrypt в OpenWRT

Приведенные ниже шаги довольно инвазивны и не гарантируют успех; возможно, сначала стоит их протестировать на виртуальном OpenWrt роутере. Автор начинает сразу после настройки динамических обновлений DNS зон в OpenWRT, но этот гайд самодостаточен, если у вас уже есть контроль над разрешением имен в вашей сети.

Продолжение тут

#гайд
13🔥1🥰1
Очередной #дайджест для DevOps-ов

Миграция в облако быстро и без ошибок — часть 3: миграция кластера Kubernetes

Overmind CLI — мощный инструмент для анализа влияния изменений Terraform в режиме реального времени

Уменьшение нагрузки с помощью node_systemd_unit_state — решение не устраняет проблему полностью, но уменьшает ее в 5 раз, что более чем достаточно для большинства практических целей.

Гайд по деплою web-приложений для новичков — в статье пошагово рассматривается самый простой вариант деплоя приложения на хостинг

Попрощайтесь с простоями — простое обновление PostgreSQL с 14 до 16 с помощью pg_upgrade
❤‍🔥12🥰4👍2
Допустим, у вас есть YAML-файл, в котором описаны deployment и service. Вы вводите команду kubectl create -f file.yaml . Как можно подробнее опишите, что произойдёт после нажатия клавиши Enter.

В начале операции утилита kubectl будет искать и анализировать kubeconfig, извлекая оттуда данные о адресе Kubernetes API, сертификатах для проверки, и ключе доступа. Затем она отправит запрос.
API Kubernetes будет обрабатывать запрос, аутентифицировать пользователя, учитывая его права, и, в случае соответствия правам, сохранять информацию о новом развёртывании (deployment) и сервисе (service) в ETCD.
Контроллер Kubernetes узнает о созданном deployment и, используя Kubernetes API, запишет информацию в ETCD о replicaset и создаст необходимое количество PODов. В этот момент могут быть задействованы admission controller’ы для проверки корректности PODов или их преобразования.
Контроллер Kubernetes будет обнаруживать новые POD'ы и автоматически распределять их по узлам, учитывая их параметры, необходимые ресурсы, специфические требования к узлам (nodeSelector), а также другие настройки, такие как taints/tolerations, podAntiAffinity и т.д.
Kubelet, просматривая изменения в конфигурации ноды через Kubernetes API, начнет вносить изменения: запустит контейнеры через CRI, настроит сеть через kube-proxy, выполнит пробы и, по прохождении проб, изменит статус POD’а в ETCD на Ready через Kubernetes API.
Контроллер Kubernetes увидит готовые PODы, соответствующие service, и создаст записи о новых Endpoint’ах для соответствующих PODов.
Kubelet’ы на всех нодах кластера увидят изменения в конфигурации и вызовут kube-proxy для создания Endpoint’ов.
Kube-proxy вызовет CNI-плагины, которые реализуют Endpoint’ы на уровне инфраструктуры.
При обращении к сервису трафик будет направлен на новые поды.
👍10😁4😢3🥰1👾1
Привет, друзья! 👋

Мы готовим статью о влиянии страха ошибок на работу программистов и хотим услышать ваше мнение! 💻🤔

🔍 Как вы справляетесь со страхом совершить ошибку в коде?
🛠️ Какие инструменты или практики в вашей команде помогают уменьшить страх перед внесением изменений в код?
🌱 Как вы превращаете свои ошибки в возможности для роста и развития?

💬 Поделитесь своим опытом! Ваши ответы могут помочь другим разработчикам! Лучшие идеи войдут в нашу статью.
🥰2
Как объединить две метрики?

В Prometheus объединение двух метрик можно выполнить с помощью функции *join()*. Функция *join()* объединяет два или более временных ряда на основе значений их меток. Она принимает два обязательных аргумента: *on* и *table*. Аргумент on указывает метки для объединения *on*, а аргумент *table* указывает временной ряд для объединения. На картинке пример того, как объединить две метрики с помощью функции join().
🥰6
Шпаргалка по удалению томов в Docker
13🎉4🌚2🔥1
Мы пишем статью о способах измерения личностного роста программистов и нам нужна ваша помощь! 🚀

📊 Какие метрики вы используете для оценки своего прогресса?
🤔 Как вы понимаете, что выросли профессионально?
💡 Есть ли у вас свои уникальные способы отслеживания развития?

💬 Поделитесь вашим опытом в комментариях! Лучшие идеи попадут в нашу статью!
3🥰1