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
📌Что такое объекты Docker?

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

Еще объектами можно назвать сети и тома.


📌Можно ли использовать JSON вместо YAML в файле для docker-compose, если да — как?

Да, так можно сделать. Для этого нужно явно указать имя файла, например так:
docker-compose -f docker-compose.json up

#devops #девопс

Подпишись 👉@i_DevOps
👍71
tfprovidercheck

CLI для предотвращения выполнения вредоносных Terraform Providers. Вы можете определить список разрешенных Terraform Providers и их версий, а также проверить, не используются ли запрещенные провайдеры.

https://github.com/suzuki-shunsuke/tfprovidercheck

#devops #девопс

Подпишись 👉@i_DevOps
👍3
Назовите важные команды Docker

docker -version: узнать установленную версию Docker;
docker ps: перечислить все запущенные контейнеры вместе с дополнительной информацией о них;
docker ps -a: перечислить все контейнеры, включая остановленные, вместе с дополнительной информацией о них;
docker exec: войти в контейнер и выполнить в нем команду;
docker build: собрать образ из Dockerfile;
docker rm: удалить контейнер с указанным идентификатором;
docker rmi: удалить образ с указанным идентификатором;
docker info: получить расширенную информацию об установленном Docker, например, сколько запущено контейнеров, образов, версию ядра, доступную оперативную память и т.п.;
docker cp: сохранить файл из контейнера в локальную систему;
docker history: показать историю образа с указанным именем.

#devops #девопс

Подпишись 👉@i_DevOps
👍6
Шпаргалка по Docker для инженеров DevOps🐳

#devops #девопс

Подпишись 👉@i_DevOps
👍14
Расскажите о командах systemd для управления Docker

Для запуска Docker многие дистрибутивы Linux используют systemd. Для запуска сервисов используется команда systemctl. Если ее нет, следует использовать команду service.

$ sudo systemctl start docker
$ sudo service docker start


Чтобы добавить сервис в автозагрузку, либо убрать его:

$ sudo systemctl enable docker
$ sudo systemctl disable docker


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

$ sudo systemctl edit docker

Просмотра связанных с сервисом журналов:

$ journalctl -u docker

#devops #девопс

Подпишись 👉@i_DevOps
👍84
The DevOps Journey: Navigating the Path to Seamless Software Delivery
Автор: Frahaan Hussain (2024)

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

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

#devops #девопс

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

#devops #девопс

Подпишись 👉@i_DevOps
👍4
Terraform-local

Оболочка Terraform CLI для развертывания ваших приложений Terraform непосредственно в LocalStack.

Как это работает
Скрипт использует механизм переопределения Terraform и создает временный файл `localstack_providers_override.tf` для настройки конечных точек в разделе провайдера AWS. Конечные точки всех сервисов настроены так, чтобы указывать на API LocalStack (по умолчанию `http://localhost:4566`).

https://github.com/localstack/terraform-local

#devops #девопс

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

Для эффективного управления ресурсами в кластере k8s используются resources requests / limits. Они могут быть настроены для CPU, памяти и, в последних версиях k8s, для GPU.

Requests используются для определения типичного потребления ресурсов нашим приложением. На основе этих данных Kubernetes scheduler выбирает ноды для запуска PODов (сумма всех request'ов контейнеров во всех PODах не должна превышать доступные ресурсы на ноде).

Limits служат как механизм предотвращения, ограничивая потребление ресурсов контейнером в PODе. При превышении лимита процессорного времени применяется thermal throttling, а при превышении лимита памяти — механизм OOM.

Модель, при которой requests меньше limits, называется burstable QoS, а когда requests равны limits — guaranteed QoS.

Кроме того, можно установить квоты ресурсов на namespace (CPU, память, количество запущенных PODов, размер диска persistent volume) и указать требования к resources requests на PODах в namespace с помощью limit ranges.

Для управления ресурсами приложений также можно использовать автоскейлеры. В k8s доступны HPA (horizontal pod autoscaler), который регулирует количество PODов в зависимости от потребления CPU и/или памяти, и VPA (vertical pod autoscaler), который управляет resources requests / limits.

Существуют также реализации автоскейлеров, которые могут использовать внешние метрики (например, длину очереди), такие как carpenter или KEDA. В облачном окружении можно использовать cluster autoscaler для добавления или удаления нод в зависимости от общей загрузки кластера.

#devops #девопс

Подпишись 👉@i_DevOps
👍5
Infisical

Это платформа управления секретами с открытым исходным кодом: Синхронизируйте секреты в вашей команде/инфраструктуре и предотвратите утечку секретов.

Особенности
Удобная панель управления секретами в разных проектах и средах (например, разработка, продакшен и т. д.).
Клиентские SDK для получения секретов для ваших приложений и инфраструктуры по требованию.
Infisical CLI для получения и внедрения секретов в любой фреймворк в локальной разработке и CI/CD.
Infisical API для выполнения CRUD-операций над секретами, пользователями, проектами и любыми другими ресурсами в Infisical.
Встроенные интеграции с такими платформами, как GitHub, Vercel, AWS, и такими инструментами, как Terraform, Ansible и др.
Оператор Infisical Kubernetes для управления секретами в k8s, автоматической перезагрузки развертываний и т. д.
Infisical Agent для внедрения секретов в ваши приложения без изменения логики кода.
Самостоятельный хостинг и размещение на локальной площадке для полного контроля над вашими данными.
Версионирование секретов и Point-in-Time Recovery для версионирования каждого секрета и состояния проекта.
Журналы аудита для записи каждого действия, выполняемого в проекте.
Контроль доступа на основе ролей позволяет создавать наборы разрешений для любого ресурса в Infisica и назначать их пользователям или машинам.
Простое развертывание на месте, в AWS, Digital Ocean и т. д.
Сканирование секретов и предотвращение утечек для предотвращения утечки секретов в git.

https://github.com/Infisical/infisical

#devops #девопс

Подпишись 👉@i_DevOps
Стать DevOps-инженером в 2023 году: [Практическая дорожная карта]

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

На современном ИТ-рынке сфера DevOps является одним из лучших вариантов для повышения заработной платы и карьерного роста ИТ-специалистов. Один из часто задаваемых мне вопросов: "Как стать инженером DevOps?".

Многие утверждают (в том числе и я), что нет ничего похожего на "DevOps-инженера" или "DevOps-команду", потому что этого понятия не существует. Однако все в отрасли уже привыкли к термину "инженер DevOps", и если вы понимаете философию DevOps, то эти названия не имеют большого значения.

Ближе к концу статьи я добавил различные команды, в которые может входить инженер DevOps.


https://devopscube.com/become-devops-engineer#devops-engineer-roadmap

#devops #девопс

Подпишись 👉 @i_DevOps
👍82
💪 Рекомендую качественный контент знакомого ИТ-сообщества с 14-летним стажем:

⌨️ ITKB_channel — бесплатное обучение по Windows, Linux, DevOps, Security, Network, программирование

📚 ITKB_Archive — библиотека (книги, курсы, ИТ литература)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
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