DevOps Star (Звезда Девопса)
2.12K subscribers
198 photos
166 videos
14 files
239 links
Devops, Linux, SRE, Kubernetes, Сисадмин, Девопс, Python, JS, Java, Git, IT канал, программирование, безопасность, ИТ, Sysadmin

По всем вопросам @evgenycarter
Download Telegram
10 самых распространенных проблем при линтинге Dockerfile'ов

Весной 2023 года разработчики Depot сообщили о том, что теперь с помощью их сервиса можно проверять Dockerfile при каждой сборке. Depot — это сервис удаленной сборки контейнеров, который может создавать образы Docker до 20 раз быстрее, чем сборка образов Docker внутри обычных CI-провайдеров. Это молодая компания, которая образовалась в начале 2022 года, но уже сейчас она состоит в венчурном фонде Y Combinator и привлекла 1,8 млн долларов инвестиций.

После добавления возможности проверять Dockerfiles в Depot разработчики сервиса столкнулись со множеством сложностей. В итоге они выделили 10 наиболее распространенных проблем при линтинге Dockerfile'ов и описали их в статье, которую мы перевели для вас.

В статье разработчики Depot разбирают каждую проблему, объясняют, почему она возникает и как ее решить. Авторы отмечают, что со временем список может измениться, но даже в таком виде он послужит хорошей отправной точкой для оптимизации Dockerfile'ов.

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

👉 @devops_star
👍4
Глубокое погружение в сетевые технологии Kubernetes

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

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

👉 @devops_star
👍1🔥1
Как я уменьшил размер образа 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_star
👍3
Media is too big
VIEW IN TELEGRAM
Стратегии деплоя в Kubernetes

Спикер: Лохтуров Вячеслав Александрович.
Сертифицированный инструктор компании CommuniGate Systems. Автор курсов по Linux и Asterisk. Автор статей на Habr и просто очень опытный специалист.

Kubernetes предоставляет разработчикам мощные инструменты, но иногда работа с микросервисами оказывается сопряжена с рядом сложностей. Их решает использование Service Mesh – инфраструктурного слоя, который управляет сетевыми взаимодействиями между микросервисами. Одно из самых популярных решений для реализации в этой области – это Istio. На мастер-классе речь пойдет о стратегиях развертывания приложений.

Слушатели добавят в копилку знаний понятие Service Mesh и поработают с Istio.

источник

👉 @devops_star
👍1
Мультиоблачные стратегии с 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_star
👍1
KubeGateway

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

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

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

https://github.com/kubewharf/kubegateway

👉 @devops_star
👍1
В ближайшие три года рост рынка облачных услуг может составить 36%*

10 апреля в 12:00 (мск) приглашаем на вебинар, где вместе с Rebrain покажем, как облачные сервисы Yandex Cloud упрощают работу с Kubernetes®.

Почему это важно?


Kubernetes в топ-3 самых востребованных навыков в IT-вакансиях 2023–2024. Владение этим инструментом открывает новые карьерные возможности, но в процессе работы часто возникают вопросы: какие сервисы использовать, как избежать ошибок и упростить администрирование?

Что разберем на вебинаре?
Как эффективно работать с Yandex Managed Service for Kubernetes®.

Разбор кейсов и практических сценариев.

Типичные ошибки пользователей и их решение (на демо-стенде).

Лайфхаки для работы с облачными сервисами.

Мероприятие бесплатное, с максимально полезным контентом 👉 Регистрируйся и присоединяйся. Если столько инфы на бесплатном вебинаре, представь, что будет на полном кастомном обучении Kubernetes: Yandex Cloud и Rebrain.

* Результаты исследования «Код Безопасности» и Sk Capital
👎2
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_star
👍1
🎯 7 терминов, которые обязан знать каждый DevOps-инженер

Разбираем базовые, но важные термины, без которых не построить ни CI/CD, ни нормальный пайплайн. Быстро, по делу:

1. CI (Continuous Integration) — практика регулярной интеграции изменений в основную ветку. Позволяет ловить баги на ранней стадии.

2. CD (Continuous Delivery/Deployment) — автоматизация выкладки приложения. Delivery — до стейджа, Deployment — до продакшена.

3. Pipeline — последовательность шагов (сборка, тесты, деплой), описанных в YAML/JSON или через GUI CI/CD-системы.

4. IaC (Infrastructure as Code) — управление инфраструктурой через код (Terraform, Ansible). Хаоса меньше, стабильности больше.

5. Immutable Infrastructure — инфраструктура, которую не меняют "на лету". Если надо — пересоздают. Так проще масштабироваться и откатываться.

6. Artifact — скомпилированный результат (бинарь, Docker-образ, архив), готовый к деплою.

7. Blue-Green Deployment — техника выкладки, при которой старая и новая версии работают параллельно. Помогает откатываться без боли.

👉 @devops_star
👍7
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_star
👍3
Kubegres

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

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

👉 @devops_star
👍1
Стек технологий Netflix (CI/CD пайплайн)

Планирование:
Инженеры Netflix используют JIRA для планирования и Confluence для ведения документации.

Разработка:
Основной язык программирования для backend-сервисов — Java, однако для других задач применяются и другие языки.

Сборка:
Основной инструмент сборки — Gradle. Также разрабатываются собственные Gradle-плагины для поддержки различных кейсов.

Упаковка:
Приложения и их зависимости упаковываются в Amazon Machine Image (AMI) для выпуска.

Тестирование:
Тестирование отражает производственную культуру с акцентом на создание инструментов хаоса (chaos engineering).

Деплоймент:
Для канареечных релизов (canary rollout deployment) используется собственный инструмент Netflix — Spinnaker.

Мониторинг:
Метрики мониторинга централизуются в системе Atlas, а для выявления аномалий применяется Kayenta.

Инциденты:
Обработка инцидентов происходит в зависимости от приоритета, с использованием PagerDuty.

👉 @devops_star
👍1
В этом репозитории вы найдете 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_star
👍2
🚀 Ускоряем сборку Docker-образов: multi-stage build в действии

Если ваш Dockerfile тянет десятки зависимостей и билдится по 10 минут — есть способ ускорить и облегчить финальный образ. Используйте multi-stage build.

📦 Пример:


# Stage 1: сборка приложения
FROM golang:1.20 AS builder
WORKDIR /app
COPY . .
RUN go build -o main .

# Stage 2: финальный минимальный образ
FROM alpine:latest
WORKDIR /app
COPY --from=builder /app/main .
ENTRYPOINT ["./main"]


💡 Что это даёт:

– из финального образа убираем весь build-мусор
– минимальный размер (тут — alpine, всего ~5 MB)
– меньше уязвимостей = безопаснее
– быстрее выкатывать и проще кэшировать

🔥 Best practice:
Разделяй окружение для сборки и запуска. Всё, что не нужно в проде — оставь в первом этапе.

👉 @devops_star
👍2
Kubernetes ConfigMap Reload

Инструмент для перезапуска процессов при изменении файлов, смонтированных из ConfigMap или Secret в Kubernetes.

Этот образ может быть использован в качестве побочного контейнера в одном Pod'е с основным приложением. Он следит за изменениями в указанных файлах (например, из ConfigMap или Secret) и отправляет сигнал (по умолчанию SIGHUP) целевому процессу, чтобы тот мог перечитать конфигурацию без перезапуска контейнера.

Пример использования


...
containers:
- name: your-app
image: your-app:latest
- name: configmap-reload
image: jimmidyson/configmap-reload:latest
args:
- --volume-dir=/etc/config
- --webhook-method=POST
- --webhook-url=https://127.0.0.1:9090/-/reload
volumeMounts:
- name: config
mountPath: /etc/config
...


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

👉 @devops_star
👍3
#vacancy #DevOps #fulltime #вакансия #москва

DevOps

Локация: Москва
ЗП: 200к-350к net
Занятость: Полная, Гибридный формат
Оформление: ТК РФ
Компания: Федеральное Медико-биологическое агентство

ЦСП ФМБА занимается научными исследованиями связанными с геномом человека и анализом полученных данных.
Группа разработки создает внутренние сервисы для автоматизации движения, обработки и распределенного хранения больших объемов данных.

Требования:

•Опыт работы с Kubernetes обязателен
•Уверенные знания Linux, систем виртуализации и контейнеризации
•Опыт реализации CI/CD, большой опыт работы с Ansible и Git
•понимание работы web-серверов, балансировщиков и брокеров сообщений (на примере Nginx, Kafka)
•Понимание работы сетей и распределенных систем
•Опыт настройки и использования систем мониторинга: Zabbix, Grafana, Prometheus, ELK Stack
•Понимание процессов ITSM
•Законченное высшее образование


Чем предстоит заниматься:

•Настройка и последующая поддержка процессов CI/CD внутренних и публичных сервисов в различных окружениях
•Обеспечение непрерывной работоспособности и доступности сервисов
•Мониторинг систем, оптимизация производительности приложений и инфраструктуры, траблшутинг
•Настройка и управление Kubernetes
•Документирование процессов и систем
•Выстраивание процессов работы с командой разработки, командой данных, системными администраторами, Service Desk

Стек:
•Ubuntu, ALT Linux, Oracle
•Git, Gitlab-CI, Ansible, Terraform, Molecule
•Docker, Kubernetes
•Nginx, Haproxy, Traefik, Hashicorp Vault, MinioS3, Harbor, Consul, Postgres, Mariadb, Kafka
•Grafana, ELK, Prometheus, Loki, Victoria Metrics, Zabbix
•Bash, Python

Мы предлагаем:

•Оформление по ТК РФ.
•Работа в команде профессионалов на стыке передовых ИТ и науки. Мы работаем с Big Data и ML, у нас собственный корпоративный ЦОД.
•Только современное оборудование для рабочих мест.
•Прикрепление к корпоративной поликлинике.
•Возможность профессионального роста, обучение.
•График работы 5/2, гибрид, плавающее начало рабочего дня

Резюме отправлять: @ddsh_kl
👌1
Автоматическое обновление зависимостей в GitLab-проектах с помощью Renovate

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

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

👉 @devops_star
👍1
🔐 Infisical — открытая платформа для управления секретами​

Infisical — это современный open-source инструмент для безопасного хранения и управления секретами, такими как API-ключи, пароли и конфигурации приложений. Он предлагает централизованное хранилище с удобной панелью управления, поддержкой версионирования, автоматической ротацией и интеграцией с популярными инструментами разработки и CI/CD, включая GitHub Actions, Terraform и Kubernetes.​

Платформа также включает в себя возможности управления внутренним PKI, позволяя создавать и управлять сертификатами X.509, а также автоматизировать их обновление в Kubernetes. Infisical доступен как в виде облачного сервиса, так и для самостоятельного размещения.​

https://github.com/Infisical/infisical

👉 @devops_star
👍42
Устанавливаем кластер Kubernetes в LXC-контейнерах Proxmox

Если вы когда-либо разворачивали Kubernetes-кластер на виртуальных машинах (ВМ), то знаете, насколько это может быть ресурсоёмко. Особенно это ощущается на одноплатных компьютерах вроде Orange Pi 5 Plus, даже несмотря на его 16 ГБ оперативной памяти. Для домашнего лабораторного стенда или лёгкой продакшн-инфраструктуры хочется чего-то более лёгкого и быстрого.

Здесь на помощь приходят контейнеры LXC. Они позволяют запускать полноценные окружения, почти как ВМ, но с гораздо меньшими накладными расходами. В этой статье я покажу, как развернуть кластер Kubernetes не на ВМ, а внутри LXC-контейнеров под управлением Proxmox.

На практике это означает, что в контейнеры LXC можно «упаковать» больше узлов Kubernetes, чем в ВМ, особенно на ограниченном по ресурсам железе.

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

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

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

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

👉 @devops_star
👍2