DevOps
8.46K subscribers
1.46K photos
811 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
Terraform-generator

Используйте Node.js для генерации конфигураций Terraform.

Для использования этого модуля вам не нужно устанавливать Terraform.

Конечным результатом использования этого модуля являются конфигурации Terraform в виде обычного текста, вам нужно будет записать текст в файл (terraform-generator предоставляет функцию утилиты для записи файла за вас) и выполнить его самостоятельно.

В настоящее время поддерживается генерация конфигураций для Terraform версии >= 0.12.

https://github.com/ahzhezhe/terraform-generator

#devops #девопс

Подпишись 👉@i_DevOps
👍2😁1
Обнаружение трафика Kubernetes

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

https://otterize.com/blog/kubernetes-traffic-discovery

#devops #девопс

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

Всем привет! На связи Вадим Лазовский, SRE-инженер продукта Deckhouse Observability Platform от компании «Флант», и Владимир Гурьянов, solution architect. Сегодня мы поделимся кейсом, который произошёл у нас при работе с Ceph. При этом его решение может быть применимо для любого другого ПО.

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

Так однажды произошло и в процессе установки нашего продукта. Мы столкнулись с тем, что привычные действия приводят к совершенно непривычному результату. В этой статье мы разберём проблему с закрытием файловых дескрипторов при выполнении команды на создание пула в Ceph. Расскажем, как её обнаружили, что делали, чтобы определить причину её возникновения, и самое важное — почему это произошло и как решить проблему. Получился настоящий детектив.

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

#devops #девопс

Подпишись 👉@i_DevOps
👍3😎1
Глубокое погружение в сетевые технологии Kubernetes

На вебинаре описывается сетевая модель Kubernetes (узлы, поды, сервисы), ее преобразование в сетевые конструкции Linux, интеграция с физической сетью и оркестровка виртуальных сетевых устройств, таких как маршрутизаторы, балансировщики нагрузки и NAT-шлюзы.

https://my.ipspace.net/bin/list?id=Kubernetes#INTRO

#devops #девопс

Подпишись 👉@i_DevOps
👍4
Наделяем Ansible состоянием, делая похожим на Terraform

Все, кто работал с Ansible, знают, что он не хранит состояние результата своей работы. Это нелепое поведение Ansible, нельзя взять и просто удалить из git объекты конфигурации, чтобы они исчезли с управляемых систем, фу. При этом сразу вспоминается его величество Terraform с tfstate.

https://habr.com/ru/companies/rtlabs/articles/791492/

#devops #девопс

Подпишись 👉@i_DevOps
👍3
Как я уменьшил размер образа docker на 40%

Ежедневно по работе я сталкиваюсь с Dockerfile, написал несколько из них самостоятельно, создавал контейнеры и всё такое. Но я никогда не публиковал их в реестре docker hub. Мне хотелось создать ugit — инструмент для отмены команд git (написанный в виде шелл‑скрипта), который бы могли использовать люди, не любящие устанавливать случайные шелл‑скрипты из Интернета.

Да‑да, знаю. НАДО ПЕРЕПИСАТЬ ЕГО НА GO/RUST/ЕЩЁ КАКОМ‑ТО ВОЛШЕБНОМ ЯЗЫКЕ. Сейчас скрипт состоит из пятисот с лишним строк Bash, поэтому я перепишу его на другом языке только под страхом смертной казни. Кроме того, в ugit уже есть практически все функции (осталось реализовать отмену лишь небольшого количества команд, используемых не так часто).

В этой статье я расскажу о том, как написал официальный Dockerfile для ugit (шелл‑скрипта) и снизил размер образа почти на 40% (с 31,4 МБ до 17,6 МБ), выполняя пошаговые попытки по инструкции. Надеюсь, это замотивирует других любителей шелла тоже публиковать свои скрипты в виде образов docker!

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

#devops #девопс

Подпишись 👉@i_DevOps
👍6
Мультиоблачные стратегии с Crunchy Postgres для Kubernetes

Crunchy Postgres для Kubernetes может использоваться для потоковой репликации между центрами данных уже из коробки. Поскольку многие пользователи спрашивают о кросс-облачной/кросс-датацентровой репликации, мы хотели бы дать им подробное объяснение того, как это работает. В этом посте мы используем потоковую репликацию, а приоритетами для нас являются снижение задержек и повышение стабильности.

Можно использовать потоковую репликацию между облаками:

Для обеспечения аварийного восстановления в нескольких облаках
Для перемещения кластеров между облачными провайдерами
Для перемещения кластеров между локальной и облачной средой.
Учитывая возможности этой функции, мы решили включить потоковую репликацию непосредственно в PGO. В версии 5.2 эта функция легко настраивается через спецификацию postgrescluster без необходимости ручной настройки Postgres для установки потоковой репликации.

https://www.crunchydata.com/blog/multi-cloud-strategies-with-crunchy-postgres-for-kubernetes

#devops #девопс

Подпишись 👉@i_DevOps
👍3
Сетевые политики на защите рабочих нагрузок в кластере Kubernetes

В кластере Kubernetes нам доступен любой сервис в любом пространстве имён, то есть по умолчанию pod открыт для любого трафика.

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

Rus https://habr.com/ru/company/southbridge/blog/718262/

Eng https://medium.com/geekculture/network-policy-to-secure-workloads-on-kubernetes-cluster-99017698c748

#devops #девопс

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

Это лучшая практика для управления массивными кластерами kubernetes в ByteDance.

Это прокси 7уровня для балансировки нагрузки, специально разработанный и настроенный для потока HTTP2 для kube-apiserver.

Цель - обеспечить гибкие и стабильные решения по управлению потоками для массивных кластеров kubernetes (более 1 000 нод).

https://github.com/kubewharf/kubegateway

#devops #девопс

Подпишись 👉@i_DevOps
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Bridge to Kubernetes

Добро пожаловать в Bridge-To-Kubernetes! Bridge to Kubernetes расширяет периметр Kubernetes до вашего рабочего компьютера, позволяя вам писать, тестировать и отлаживать код микросервисов, будучи подключенным к кластеру Kubernetes вместе с остальными приложениями или сервисами. Вы можете просто запускать свой код на своей рабочей станции, подключенной к кластеру Kubernetes, что позволит вам тестировать изменения в коде в контексте всего приложения.

https://github.com/Azure/Bridge-To-Kubernetes

#devops #девопс

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

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

https://github.com/reactive-tech/kubegres

#devops #девопс

Подпишись 👉@i_DevOps
👍3
Media is too big
VIEW IN TELEGRAM
CICD Pipeline | DevOps Tutorial with Project | CI CD Pipeline using AWS | DevOps CI CD Project | K8S

00:00:00 Introduction
00:03:06 Let's use Terraform to create an EC2 instance for Jenkins, Docker and SonarQube
00:17:04 Configure Jenkins
00:24:41 Configure SonarQube and Integrate SonarQube with Jenkins
00:30:07 Create Jenkins Pipeline to Build and Push Docker Image to DockerHub
00:41:24 Create EC2 Instance and Setup Prometheus & Grafana
01:06:59 Setup Email Notification Through Jenkins
01:15:09 Create AWS EKS Cluster
01:22:07 Integrate Prometheus with EKS and Import Grafana Monitoring Dashboard for Kubernetes
01:34:14 Configure the Jenkins Pipeline to Deploy Application on AWS EKS(Kubernetes)
01:42:29 Set the Trigger and Verify the CI/CD Pipeline

источник

#devops #девопс

Подпишись 👉@i_DevOps
👍6
В этом репозитории вы найдете Dockerfile для 13 языков программирования

Для каждого образа Docker имеется свой Dockerfile, содержащий набор инструкций, необходимых для его создания. В этом файле указывается, что должно быть в образе, какие команды, зависимости и процессы он будет содержать.

React
NodeJS
Python
Golang
Java Spring Boot
Java Quarkus
ASP.NET Core
Ruby
Rust
PHP Laravel
Dart
R Studio
Contact

https://github.com/hoalongnatsu/Dockerfile

#devops #девопс

Подпишись 👉@i_DevOps
👍5
Kubernetes ConfigMap Reload

Это простой двоичный файл, запускающий перезагрузку при обновлении Kubernetes ConfigMaps или Secrets, смонтированных в pods. Он следит за примонтированными томами и уведомляет целевой процесс о том, что карта конфигурации была изменена. В настоящее время он поддерживает только отправку HTTP-запроса, но в будущем ожидается поддержка отправки OS (например, SIGHUP), когда Kubernetes будет поддерживать пространства имен PID подкадров.

https://github.com/jimmidyson/configmap-reload

#devops #девопс

Подпишись 👉@i_DevOps
👍2
Оператор PostgreSQL для Kubernetes

Особенности
Создание базы данных из CR
Создает роль со случайным именем пользователя и паролем из CR
Если база данных существует, создается только роль
Несколько ролей пользователей могут владеть одной базой данных
Создает секрет Kubernetes с postgres_uri в том же пространстве имен, что и CR
Поддержка AWS RDS и Azure Database для PostgresSQL
Поддержка управления CR в динамически создаваемых пространствах имен
Шаблонные значения секретов

https://github.com/movetokube/postgres-operator

#devops #девопс

Подпишись 👉@i_DevOps
👍2
Автоматическое обновление зависимостей в GitLab-проектах с помощью Renovate

Автоматическое обновление зависимостей становится все более важным аспектом в процессах непрерывной интеграции и непрерывной доставки (CI/CD) в сфере разработки программного обеспечения. В статье описана настройка автоматического обновления зависимостей в GitLab-проектах с помощью Renovate.

https://habr.com/ru/companies/magnit/articles/793470/

#devops #девопс

Подпишись 👉@i_DevOps
👍4
Сегодня прошел ТБ Форум, на котором собрались представители регулятора, бизнес, вендоры и научно-исследовательские институты. В рамках форума состоялась дискуссия, посвященная сертификации СЗИ и безопасной разработке.

Интересным стало выступление компании «Базис», разработчика систем виртуализации и облачных решений, для которого безопасная разработка и сертификация играют ключевую роль. Компания сотрудничает с государственными учреждениями и крупным бизнесом, включая Гостех и Гособлако. Вендор целенаправленно развивает и внедряет процессы и инструменты для разработки безопасного программного обеспечения, считая их конкурентным преимуществом. Компания активно участвует в сообществе безопасной разработки Центра компетенций, поддерживаемого ФСТЭКом. Значимым шагом в обеспечении безопасности продуктов «Базис» стал переход от применения сканеров с открытым исходным кодом к использованию отечественных альтернатив. Этот шаг не только улучшил надежность решений, но и дополнительно продемонстрировал принципиальный подход к обеспечению кибербезопасности.

Кроме того, «Базис» тесно сотрудничает с Институтом системного программирования РАН, используя разработанные в институте инструменты статического и динамического анализа и фаззинга - Svace и Crusher, а также осваивает инструмент определения поверхности атаки Natch. Представитель компании отметил, что нахождение содержащего ошибки кода - это только первый шаг, более сложная задача заключается в комплексном анализе возможных векторов атак и их последствий.

Также компания поделилась опытом получения сертификатов ФСТЭК, отметив что для нее процесс сертификации - это не формальность, а подтверждение соответствия решений «Базиса» высоким требованиям безопасности и стремления к обеспечению максимального уровня защиты в разрабатываемых продуктах.

#devops #девопс

Подпишись 👉@i_DevOps
👍3
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
👍2🔥2👎1
Наведение порядка в коде Terraform с помощью for_each

Terraform стал основным инструментом для управления инфраструктурой, предлагая такие впечатляющие возможности, как for_each. Этот мощный мета-аргумент позволяет динамически создавать несколько экземпляров ресурсов на основе карт или наборов. Независимо от того, являетесь ли вы опытным пользователем Terraform или только начинаете, эта статья в блоге поможет вам овладеть искусством динамического создания ресурсов с помощью for_each.

https://jrpospos.blog/posts/2023/07/decluttering-your-terraform-code-using-for_each/

#devops #девопс

Подпишись 👉@i_DevOps
👍2
Создаём виртуальную сеть, как это делает Docker

Как известно, Docker умеет создавать виртуальные сети для безопасного и удобного сетевого взаимодействия внутри контейнеров. В этой статье мы рассмотрим, как именно он это делает на примере базовых манипуляций с сетью в рамках одного хоста с операционной системой Linux.

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

#devops #девопс

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