DevOps – Telegram
DevOps
8.47K subscribers
1.46K photos
812 videos
28 files
1.74K links
Docker, Kubernetes, облачные сервисы (AWS, GCP, Azure), Infrastructure as a Code (Terraform, CloudFormation), администрирование Windows и Linux, сети TCP, IP, скрипты (Bash, PowerShell), Ansible, Jenkins, DevSecOps, логирование. По вопросам @evgenycarter
Download Telegram
Media is too big
VIEW IN TELEGRAM
Что такое GitOps. Улучшенный DevOps?

00:00 Что такое GitOps
00:18 Нетология - DevOps инженер
01:20 Кратко о DevOps
02:00 IoC инфраструктура как код
03:45 Важность системы контроля версий
05:28 Где кончается DevOps
06:57 Код приложения и инфраструктуры вместе
07:55 Автоматизация
09:20 Важность обозреваемости системы
09:49 Зачем GitOps?

источник

#devops #девопс

Подпишись 👉@i_DevOps
👍2
База данных на Kubernetes

Введение в развертывание базы данных на Kubernetes

С ростом внедрения DevOps все больше приложений контейнеризируется, а инструменты для управления этими контейнерами, такие как Kubernetes, становятся все более популярными. Этот рост миграции приложений на Kubernetes (K8s) также отражается на приложениях с поддержкой состояния (например, системах баз данных).

Для начала давайте разберемся в основах:

Для развертывания любого приложения на K8s наиболее предпочтительным является декларативный способ, при котором мы объявляем желаемое состояние приложения (например, образ, который должен использоваться для запуска подов, масштабирование подов для управления нагрузкой и т.д.) в YAML-файле, который известен как файл развертывания.

https://chetak.hashnode.dev/database-on-kubernetes

#devops #девопс

Подпишись 👉@i_DevOps
👍4
Продвинутая работа с логами в Linux

journalctl - Работа со структурированными логами

Журнал событий, это компонент systemd, который захватывает сообщения Syslog, логи ядра, все события при инициализации системы (RAM, диск, boot, STDOUT/STDERR для всех сервисов), индексирует их и затем предоставляет удобной пользовательский интерфейс для поиска и фильтрации логов. Журнал (systemd journal) можно использовать вместе или вместо syslog или syslog-ng.

Утилита командной строки journalctl, если сравнивать ее с традиционным инструментами для работы с логами в UNIX (tail, grep, sed, awk) более широкие возможности.

Давайте рассмотрим основные возможности которые предоставляет журнал systemd и способы их применения.

https://habr.com/ru/articles/749714/

#devops #девопс

Подпишись 👉@i_DevOps
👍31
Каким образом мы можем запустить в Kubernetes приложение (варианты: рабочую нагрузку, workload)?

Запускать PODы поодиночке можно, но обычно для этого используются более функциональные сущности в Kubernetes, такие как:

— Deployment, который используется для развертывания необходимого количества PODов на основе общего шаблона.
— StatefulSet, похожий на Deployment, но оптимизированный для работы с stateful-приложениями.
— DaemonSet, позволяющий развернуть один экземпляр приложения на каждом доступном узле и обычно используется для обслуживания узлов.
— Job, для запуска конечного процесса в контейнере и ожидания его успешного завершения с заданием политик запуска, таких как длительность и количество рестартов в случае сбоя.
— CronJob, аналогичный Job, но с возможностью запуска по расписанию и ведением логов успешных запусков.

ReplicationController считается устаревшим и практически не используется, на его место пришел Deployment.

#devops #девопс

Подпишись 👉@i_DevOps
👍7
JupyterHub на стероидах: реализация KubeFlow фич без масштабных интеграций

JupyterHub — централизованный инструмент для создания Jupyter ноутбуков для разных пользователей по заранее заданным параметрам, который используется более чем 200 специалистами у нас на проекте в Альфа-Банке.

Сейчас множество сервисов могут запускаться в Kubernetes, который уже стал стандартом. И JupyterHub не исключение. Есть много статей по его запуску, и в большинстве из них описано, как просто поднять данный сервис и запустить рабочий ноутбук на базе профилей. Каждый профиль представляет собой заранее настроенные параметры для Pod ноутбука.

Однако с ростом числа пользователей возникают различные проблемы, о которых мы поговорим в этой статье.

https://habr.com/ru/companies/kts/articles/832084/

#devops #девопс

Подпишись 👉@i_DevOps
👍3
Kubernetes 1.31: новый VolumeSource, эмуляция старых версий и настройка анонимного доступа к эндпоинтам

Сегодня официально выпустили новую версию Kubernetes — 1.31. Среди главных нововведений — VolumeSource, поддерживающий OCI-образы и/или OCI-артефакты и поле SupplementalGroupsPolicy для контроля дополнительных групп, которые присоединяются к первому процессу в контейнере, а также флаг --emulation-version для эмулирования возможностей предыдущих версий Kubernetes и механизм, который позволяет пользователям настраивать, к каким эндпоинтам возможен анонимный доступ.

https://habr.com/ru/companies/flant/articles/835626/

#devops #девопс

Подпишись 👉@i_DevOps
👍2
Liqo

Включите динамические и бесшовные мультикластерные топологии Kubernetes.

Что это обеспечивает?

- Peering (Пиринговое взаимодействие): автоматическое установление одноранговых отношений потребления ресурсов и сервисов между независимыми и разнородными кластерами. Нет необходимости беспокоиться о сложных конфигурациях VPN и сертификационных центрах: все автоматически согласовывается для вас.

- Offloading (Разгрузка): бесшовная разгрузка рабочих нагрузок на удаленные кластеры без необходимости вносить какие-либо изменения в Kubernetes или сами приложения. Мультикластерность становится нативной и прозрачной: объедините весь удаленный кластер в виртуальный узел, совместимый со стандартными подходами и инструментами Kubernetes.

- Network fabric (Сетевая инфраструктура): прозрачное подключение pod-to-pod и pod-to-service в мультикластерной среде, независимо от базовых конфигураций и плагинов CNI. Нативный доступ к сервисам, экспортируемым удаленными кластерами, и распределение взаимосвязанных компонентов приложения по различным инфраструктурам, при этом весь трафик между кластерами проходит через защищенные сетевые туннели.

- Storage fabric (Инфраструктура хранения): поддержка удаленного выполнения состояния нагрузок в соответствии с подходом гравитации данных. Бесшовное расширение стандартных (например, баз данных) методов развертывания высокой доступности на мультикластерные сценарии для повышения надежности. Всё это без сложности управления несколькими независимыми кластерами и репликами приложений.

https://github.com/liqotech/liqo

#devops #девопс

Подпишись 👉@i_DevOps
👍2
🐳 Команды Docker: от новичка до продвинутого уровня для инженеров DevOps

Это руководство охватывает основные команды Docker, от начального до продвинутого уровня, помогая инженерам DevOps эффективно управлять своими контейнеризированными приложениями.

https://dev.to/prodevopsguytech/docker-commands-from-beginner-to-advanced-for-devops-engineers-bb3

#devops #девопс

Подпишись 👉@i_DevOps
👍5
Наш опыт эксплуатации Airflow в Kubernetes

Apache Airflow — это один из самых популярных ETL-шедулеров. ETL-процессы — это когда мы выбираем интересующие нас данные, приводим их к агрегированному виду и сохраняем для дальнейшего использования. И это присутствует везде, где есть необходимость анализа данных. Соответственно, Airflow предназначен для того, чтобы запускать пайплайны обработки данных.

https://habr.com/ru/companies/vk/articles/836256/

#devops #девопс

Подпишись 👉@i_DevOps
👍52👎1
📌Что такое service mesh и для чего он нужен?

Service mesh - это шаблон, который обеспечивает более гибкое управление трафиком в Kubernetes. Service mesh включает в себя control plane, который собирает информацию о кластере Kubernetes, запущенных в нем приложениях, а также дополнительных объектах (custom resources), которые могут быть описаны для настройки, и sidecar-контейнеры, которые обычно инжектируются в PODы автоматически с помощью mutation webhook. Sidecar-контейнеры являются прокси-серверами, перехватывающими входящий и исходящий трафик приложений в контейнерах и управляющими ими в соответствии с конфигурацией, полученной из control plane.

📌Каким образом организована сеть в k8s?

В Kubernetes существуют три типа сетей:

1. Сеть узлов (node network) — это сеть, в которую объединены узлы кластера. В зависимости от используемого CNI-плагина, узлы могут работать либо в одной подсети, либо в нескольких.
2. Сеть POD-ов (pod network) — это сеть, в которой получают IP-адреса запускаемые POD-ы.
3. Сеть сервисов (service network) — это сеть, в которой получают адреса сервисы Kubernetes. Сети POD-ов и сервисов организуются с помощью CNI-плагинов.

📌Что такое bearer token?

Bearer token, также известный как токен учетной записи службы, представляет собой JWT-токен, который генерируется автоматически при создании новой учетной записи службы. Он содержит информацию о конкретной учетной записи службы и подписывается корневым сертификатом кластера. Этот токен сохраняется в объекте типа secret, который затем монтируется в POD по стандартному пути и периодически обновляется. При использовании данного токена процесс, запущенный в контейнере, получает доступ к API Kubernetes и может выполнять только разрешенные действия.

#devops #девопс

Подпишись 👉@i_DevOps
👍6
Flagd

Демон управления фичами, основанный на философии Unix.

https://github.com/open-feature/flagd

#devops #девопс

Подпишись 👉@i_DevOps
👍2
Git, Gitflow и ветка release: как разместить общий код команды в прод

Привет, меня зовут Николай Пискунов — я ведущий разработчик в подразделении Big Data. И сегодня в блоге beeline cloud мы продолжим серию статей про Git и Gitflow — рассмотрим релизный цикл: то есть то, как общий код команды должен попасть в прод. Для этого в GitFlow существует процесс и ветка под названием release.

https://habr.com/ru/companies/beeline_cloud/articles/836922/

#devops #девопс

Подпишись 👉@i_DevOps
👍3
Плюсы и минусы профессии DevOps: мысли для слушателей ИТ-курсов и не только

На дворе конец лета и слушатели ИТ-курсов в раздумьях о выборе обучения на осень 2024 и профессии как таковой. А мы продолжим цикл статей о плюсах и минусах разных профессий в ИТ. Давайте поговорим о DevOps-инженере. Как говорят рекрутеры, на фоне переизбытка выпускников курсов по разработке на Python и Java, профессия DevOps-инженера смотрится одной из топов по востребованности и оплате. Однако, DevOps требует на только очень разнообразных знаний и навыков, но и специфических черт характера, чтобы не выгореть при первом же погружении в профессию.
P.S. Иллюстрация ИИ к статье — “я художник, так вижу DevOps и девушки их любят”.

https://habr.com/ru/companies/ssp-soft/articles/837746/

#devops #девопс

Подпишись 👉@i_DevOps
😁3💩1
Что такое DevSecOps?

DevSecOps возник как естественная эволюция практик DevOps с акцентом на интеграцию безопасности в процессы разработки и развертывания программного обеспечения. Термин "DevSecOps" объединяет практики разработки (Dev), безопасности (Sec) и операций (Ops), подчеркивая важность безопасности на протяжении всего жизненного цикла разработки программного обеспечения.

Диаграмма выше показывает важные концепции в DevSecOps:

1. Автоматизированные проверки безопасности
2. Непрерывный мониторинг
3. Автоматизация CI/CD
4. Инфраструктура как код (IaC)
5. Безопасность контейнеров
6. Управление секретами
7. Моделирование угроз
8. Интеграция с обеспечением качества (QA)
9. Сотрудничество и коммуникация
10. Управление уязвимостями

#devops #девопс

Подпишись 👉@i_DevOps
👍8
📌Каким образом мы можем разделять права в k8s?

Для управления правами в Kubernetes используется механизм RBAC (Role Based Access Control). В этой системе выделяются три группы объектов: пользователь (user) или учетная запись сервиса (service account), которая определяет субъект доступа; роль (role) или кластерная роль (clusterRole), определяющая разрешения; и привязка роли (roleBinding) или кластерной роли (clusterRoleBinding) к конкретному субъекту.

📌Что такое CSI-плагин?

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

Мы определяем storageClass, который соответствует дискам определенного типа, и разворачиваем provisioner в кластере — специальное программное обеспечение, способное заказывать сетевые диски в системе, способной их предоставлять (например, NAS или СХД).

Затем мы создаем объект persistentVolumeClaim, указывая нужный storageClass.

При появлении запроса на persistentVolumeClaim, provisioner заказывает диск необходимого размера в системе, которая их предоставляет, создает объект persistentVolume и связывает его с persistentVolumeClaim. При запуске POD на узле, соответствующий диск монтируется на этот узел по определенному пути, который затем монтируется на файловую систему POD.

#devops #девопс

Подпишись 👉@i_DevOps
👍3
Безопасность контейнерных сред: как отбить атаки киберпиратов

В современном мире практически ни одна разработка программного обеспечения не обходится без использования средств контейнеризации, что связано с удобством хранения артефактов и зависимостей. Киберпираты следуют трендам DevSecOps, чтобы повышать энтропию атак на контейнерные среды. Кроме того, растет количество APT группировок, что является сегодня довольно значимой проблемой. В данной статье мы подробно рассматриваем техники злоумышленников, а также рассказываем о существующих тактиках защиты для того, чтобы разработчики или DevOps-инженеры смогли применять их в своей повседневной работе.

https://habr.com/ru/companies/neoflex/articles/837946/

#devops #девопс

Подпишись 👉@i_DevOps
👍5
Это база: нюансы работы с Redis

Что такое Redis?
Redis — это база данных, которая размещается в памяти и хорошо подходит для следующих целей:

🔵Кэширование данных: этот сценарий подходит когда есть ключ, по которому вы можете прочитать или записать кэш. Частый случай: использование Redis как кэша перед другой базой-крепышом, вроде MySQL.

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

🔵Pub/Sub: помимо хранилища данных Redis можно использовать как брокер сообщений. В этом случае издатель может опубликовать сообщения в именованном канале для любого числа подписчиков. Когда клиент публикует сообщение в канале, Redis доставляет это сообщение всем клиентам, подписанным на этот канал, что обеспечивает обмен информацией между отдельными компонентами приложения в реальном времени. Однако, стоит помнить, что это сообщение опубликовывается по паттерну Fire & Forget — отправитель отправляет сообщение, не ожидая явного подтверждения от получателя о получении сообщения. То есть, отсутствует гарантия доставки и если часть подписчиков потеряет соединение, то после возвращения они не получат пропущенных сообщений. А если получателей не существует вовсе, то сообщение пропадает без возможности восстановления.

Мы не будем останавливаться на остальных возможных применениях Redis, а также на базовых моментах и перейдем к особенностям его работы, которые непосредственно влияют на конфигурирование и эффективность:

Часть 1 https://habr.com/ru/companies/nixys/articles/765694/

Часть 2 https://habr.com/ru/companies/nixys/articles/805463/

#devops #девопс

Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
This media is not supported in your browser
VIEW IN TELEGRAM
Kubectx + Kubens: Power tools for kubectl

kubectx - инструмент для более быстрого переключения между контекстами (кластерами) на kubectl
kubens - инструмент, позволяющий легко переключаться между пространствами имен Kubernetes (и настраивать их для kubectl)

https://github.com/ahmetb/kubectx

Пример

# switch to another cluster that's in kubeconfig
$ kubectx minikube
Switched to context "minikube".

# switch back to previous cluster
$ kubectx -
Switched to context "oregon".

# rename context
$ kubectx dublin=gke_ahmetb_europe-west1-b_dublin
Context "gke_ahmetb_europe-west1-b_dublin" renamed to "dublin".

# change the active namespace on kubectl
$ kubens kube-system
Context "test" set.
Active namespace is "kube-system".

# go back to the previous namespace
$ kubens -
Context "test" set.
Active namespace is "default".

#devops #девопс

Подпишись 👉@i_DevOps
👍6
Шпаргалка по Docker

#devops #девопс

Подпишись 👉@i_DevOps
👍7
📌Какие типы volum’ов можно использовать в k8s?

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

Другой вариант использования — local-storage, который также использует папку на диске, но привязан к конкретной ноде и автоматически привязывает POD к нужной ноде.

Также есть возможность использовать сетевые диски с помощью CSI-плагинов.



📌Можно ли запускать базы данных в k8s?

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

Если мы сможем обеспечить необходимое дисковое пространство для хранения файлов баз данных и возможность переноса их между узлами, то в k8s можно успешно запускать stateful-приложения. Существуют также базы данных и очереди, оптимизированные для работы в k8s, что делает их готовыми к облачным средам. Для управления приложениями в k8s существуют операторы (Kubernetes operators), которые облегчают эксплуатацию stateful-приложений, например, postgresql stolon для управления кластерами postgresql и strimzi для управления kafka.

#devops #девопс

Подпишись 👉@i_DevOps
👍9🔥1
DevSecOps гайд: от новичка до эксперта

DevOps подразумевает автоматизацию процессов сборки, настройки и развертывания ПО. Плюс — помогает наладить работу айтишников с другими подразделениями в компании: сократить time-to-market при запуске новых продуктов, снизить время разрешения инцидентов и упростить выпуск релизов.

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

https://habr.com/ru/companies/cloud_mts/articles/723862/

#devops #девопс

Подпишись 👉@i_DevOps
👍3👏2