DevOps
8.47K 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
Контейнеризация

От Docker до Kubernetes: историческая ретроспектива
Введение в Docker
Введение в Kubernetes. Часть 1. Установка кластера
Введение в Kubernetes. Часть 2. Поды и сервисы
Введение в Kubernetes. Часть 3. Горизонтальное маштабирование.
Введение в Kubernetes. Часть 4. Отказоустойчивость для клиентов
Введение в Kubernetes. Часть 5. Интеграция с NFS
Что такое операторы в Kubernetes?

источник

#devops #девопс

Подпишись 👉@i_DevOps
👍4
Расскажите, как вы будете запускать приложение в Kubernetes, если из инструментов у вас только kubectl?

Общий процесс запуска приложения в Kubernetes выглядит следующим образом:

1. Сначала необходимо упаковать приложение в контейнер.
2. Далее запускаем контейнер в виде реплик с использованием Deployment.
3. Для доступности приложения в интернете и возможности подключения к нему настраиваем сервис LoadBalancer, который присваивает публичный IP-адрес и позволяет подключаться к кластеру извне.
4. Для маршрутизации трафика через балансировщик создаем Ingress в кластере, описывающий правила маршрутизации, и запускаем Ingress-контроллер.

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

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


Terraform Backend. Какой лучше?

AWS S3 — Standard (с блокировкой через DynamoDB). Сохраняет состояние в виде заданного ключа в заданном сегменте на Amazon S3. Этот бэкэнд также поддерживает блокировку состояния и проверку согласованности через DynamoDB.

terraform enterprise — Standard (без блокировки).

etcd — Standard (без блокировки). Сохраняет состояние в etcd 2.x по заданному пути.

etcdv3 — Standard (с блокировкой). Сохраняет состояние в хранилище etcd в виде K/V с заданным префиксом.

gcs — Standard (с блокировкой). Сохраняет состояние как объект в настраиваемом префиксе в заданном сегменте в Google Cloud Storage (GCS). Этот бэкэнд также поддерживает блокировку состояния.

Gitlab Terraform state (с блокировкой). Хранит состояние в Gitlab Terraform state хранилище, используя HTTP протокол и права Gitlab для доступа.

Существуют также и другие Backend для Terraform.

#devops #девопс

Подпишись 👉@i_DevOps
👍4
Who are you, Platform Engineering: разбираемся с одним из главных технологических трендов. Часть 1

Platform Engineering — один из главных технологических трендов 2024 года. По оценке Gartner, к 2026 году 80% компаний, занимающихся разработкой, будут иметь внутренние платформенные сервисы и команды для повышения эффективности разработки.

Мы в VK Cloud предлагаем Dev Platform — платформу для разработки, которой смогут пользоваться другие компании. В серии статей о методологии Platform Engineering и создании Internal Development Platform (IDP), мы поделимся своим подходом построения платформенных решений, расскажем о сложностях и о том, почему даже правильный подбор компонентов и архитектурных решений для IDP — не панацея.

В первом материале серии начнем с базы — остановимся на трудностях повышения эффективности команд разработки, разберем, что такое Platform Engineering и Internal Development Platform, что дает внедрение комплексных платформ и какие могут быть сложности.

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

#devops #девопс

Подпишись 👉@i_DevOps
👍1
Who are you, Platform Engineering. Часть 2: типовая архитектура, варианты и примеры реализации IDP

В докладе Gartner методология Platform Engineering определена в качестве одного из стратегических технологических трендов на 2024 год, что свидетельствует о дальнейшем эволюционном развитии подходов DevOps. Несмотря на это, для многих компаний Platform Engineering и Internal Development Platform (IDP) как один из примеров реализации прохода до сих остается «черным ящиком».

Мы в VK Cloud создаем Dev Platform — платформу разработки, которую могут использовать другие компании. В рамках серии статей мы рассказываем о методологии Platform Engineering и подходах к созданию платформ. В первом материале мы рассказали о том, зачем строить IDP, а в этом перейдем от базовой теории к более прикладным вещам и разберем типовую архитектуру IDP: из чего она состоит и как ее компоненты взаимодействуют между собой. Также рассмотрим, какие продукты могут выступить основой для построения IDP.

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

#devops #девопс

Подпишись 👉@i_DevOps
👍2
Рабочие процессы Арго - паттерны, проверенные на продакшене

Argo Workflows представляет собой отличную платформу для автоматизации инфраструктуры и заменил Jenkins в качестве основного инструмента для выполнения запланированных или управляемых событиями задач автоматизации.

За время работы с Argo Workflows мне приходилось убивать кластеры, ломать рабочие процессы и вообще вносить беспорядок в работу. Я также создал множество рабочих процессов, которые нуждались в рефакторинге, поскольку их стало сложно поддерживать.

Цель этой статьи - поделиться некоторыми уроками, которые я извлек, и некоторыми паттернами, которые я разработал, чтобы помочь вам избежать тех же ошибок, которые совершил я.

https://hodgkins.io/argo-workflow-proven-patterns-from-production

#devops #девопс

Подпишись 👉@i_DevOps
👍3
Who are you, Platform Engineering. Часть 3: знакомство с Dev Platform

Внутренние платформы разработки (Internal Development Platform, IDP), как один из артефактов реализации платформенного подхода (Platform Engineering), становятся важной точкой роста для многих компаний, занимающихся разработкой: помогают унифицировать стек, снизить нецелевую нагрузку на команды, сократить time-to-market. Поэтому многие компании начинают двигаться в сторону создания своих IDP.

Мы продолжаем серию статей о Platform Engineering и Internal Development Platform (IDP). В первом и втором материалах цикла мы уже рассмотрели базовую теорию, познакомились с типовой архитектурой IDP и вариантами реализации. А в этой статье остановимся на обзоре Dev Platform, разрабатываемой командой VK Cloud.

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

#devops #девопс

Подпишись 👉@i_DevOps
2👍2
В чем разница между Registry и Repository?

Registry — это сервис хранения и распространения образов, также DockerHub — это Registry по умолчанию. Repository — это набор связанных образов. У них одно и то же имя, но разные метки.


Расскажите об образах Docker, DockerHub, Dockerfile

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

DockerHub: сервис для поиска и совместного использования образов контейнеров. Вы можете выгружать туда свои образы, скачивать их оттуда, работать с частными репозиториями образов контейнеров, собирать автоматически образы с помощью GitHub (Bitbucket), а затем закачивать их в DockerHub. Этот сервис предоставляет компания Docker.

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

#devops #девопс

Подпишись 👉@i_DevOps
👍43
Вопросы с собеседования

df сообщает о наличии 20 Гб занятого пространства, подсчёт занятого файлами места при помощи du даёт результат в 20 Мб. При каких обстоятельствах может возникнуть описанная ситуация?

Когда файл удален т. к. файловый дескриптор «держит» его.

Ищем файл через:

lsof -a +L1 | grep var | grep httpd

При удалении файла, который в этот момент был «занят» процессом — его имя удаляется, но inode — остаётся в файловой системе до тех пор, пока не завершится процесс, который «держит» этот файл.

Соответственно, что бы «освободить» уже удалённые файлы — необходимо перезапустить процесс, который этот файл держит.

#devops #девопс

Подпишись 👉@i_DevOps
👍16
Топ-10 распространенных проблем с линтингом Dockerfile

Мы добавили возможность линтинга Docker-файлов по требованию в Depot. В этом посте мы рассмотрим 10 наиболее распространенных проблем с линтингом Dockerfile, которые мы наблюдали в Depot.

https://depot.dev/blog/dockerfile-linting-issues

#devops #девопс

Подпишись 👉@i_DevOps
👍3
Обучение у команды Google SRE

Недавно команда Google Site Reliability Engineering опубликовала в своем блоге пост под названием «Уроки, извлеченные за двадцать лет работы над надежностью сайтов». В нем рассказывается об уроках, которые доказали свою ценность с течением времени и в условиях трудностей; они получены в результате инцидентов, затронувших некоторые из основных систем и продуктов Google, таких как Youtube и Google Calendar.

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

Часть 1 https://www.codereliant.io/20-sre-lessons-from-google-part1/
Часть 2 https://www.codereliant.io/learning-from-google-sre-team-part-2/

#devops #девопс

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

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

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

#devops #девопс

Подпишись 👉@i_DevOps
👍4
Мониторинг черных ящиков и котов в мешке через eBPF

Привет! Меня зовут Петр Бобров, в QIWI я отвечаю за отказоустойчивость, расскажу немного историй про сторонних вендоров, у всех они разные. У нас есть карточный процессинг, потому что мы банк, у нас банковская лицензия, проводим много платежей. Еще можно черными ящиками считать и базы данных: кто знает, как там работает Oracle, кто знает, как работает Linux внутри? Думаю, очень немного людей разбирается в этом, как оно работает на низком уровне.

https://habr.com/ru/companies/qiwi/articles/738968/

#devops #девопс

Подпишись 👉@i_DevOps
👍3
Kubernetes: контейнеры и «потерянные» сигналы SIGTERM

У нас есть API-сервис с Gunicorn в Kubernetes, который периодически возвращает 502, 503, 504 ошибки.

Я начал его отлаживать и обнаружил странную вещь: в логах не было сообщений о полученном SIGTERM, поэтому я сначала пошел разбираться с Kubernetes - почему он его не отправляет?

https://itnext.io/kubernetes-containers-and-the-lost-sigterm-signals-40007f35759a

#devops #девопс

Подпишись 👉@i_DevOps
👍4
Использование брокера сообщений Apache Kafka в распределенных очередях

24 июля в 20:00 мск

Хотите узнать, как эффективно управлять сообщениями в масштабируемых распределенных системах? Тогда этот открытый вебинар для вас!

Мы разберем основы и архитектуру Apache Kafka, принципы работы с распределенными очередями, а также научимся настраивать и развертывать кластер Kafka в Docker. Вы увидите реальные примеры использования Kafka для обмена сообщениями между сервисами и узнаете о лучших практиках и рекомендациях по интеграции Kafka в ваши проекты.

💻 Урок будет полезен Fullstack и Backend-разработчикам, DevOps-инженерам, архитекторам ПО и администраторам систем, а также всем, кто хочет углубить свои знания об Apache Kafka и его применении.

🔴 Регистрация открыта: https://vk.cc/cyziEN

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
11 советов по повышению безопасности контейнеров 🔐

1 🔒 Используйте официальные образы

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

2 📦 Регулярно обновляйте образы

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

3 🔍 Сканирование образов на наличие уязвимостей

Используйте такие инструменты, как Clair, Trivy или Anchore, для проверки образов контейнеров на уязвимости перед развертыванием. Сделайте это частью вашего CI/CD pipeline.

4 📜 Следуйте принципу наименьших привилегий

Запускайте контейнеры с минимально необходимыми привилегиями. Избегайте запуска контейнеров от имени root и используйте пространства имен пользователей для разграничения привилегий.

5 🛠️ Используйте средства обеспечения безопасности на этапе выполнения

Используйте инструменты безопасности во время выполнения, такие как Falco или Sysdig Secure, для мониторинга и защиты запущенных контейнеров от угроз и аномалий.

6 🔐 Внедрите сегментацию сети

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

7 📋 Ограничение использования ресурсов

Ограничьте ресурсы (процессор, память), которые могут использовать контейнеры, чтобы предотвратить атаки на исчерпание ресурсов. Используйте квоты и лимиты ресурсов Kubernetes.

8 🛡️ Включение контекстов безопасности

Определите контексты безопасности в платформе оркестровки контейнеров для контроля доступа и разрешений. Используйте PodSecurityPolicies в Kubernetes.

9 🧩 Используйте решения для управления секретами

Безопасное управление и хранение конфиденциальных данных, таких как пароли и ключи API, с помощью таких инструментов, как HashiCorp Vault, AWS Secrets Manager или Kubernetes Secrets.

10 🌐 Регулярные аудиты и проверки на соответствие требованиям

Регулярно проводите аудиты безопасности и проверки на соответствие требованиям, чтобы обеспечить соблюдение политик и стандартов безопасности. Автоматизируйте аудиты с помощью таких инструментов, как kube-bench.

11 🔄 Постоянно обучайте свою команду

Постоянно информируйте свою команду о последних практиках и тенденциях в области безопасности. Регулярно проводите тренинги и делитесь ресурсами.

#devops #девопс #docker #containers #security

Подпишись 👉@i_DevOps
👍8🔥2
Практическое руководство по Kubernetes: Сетевая политика 🛠️

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

https://medium.com/@muppedaanvesh/a-hands-on-guide-to-kubernetes-network-policy-%EF%B8%8F-041bebe19a23

#devops #девопс #docker #containers #security

Подпишись 👉@i_DevOps
👍5
Talos Linux & VirtualBox: готовим свой Kubernetes

Есть множество путей развернуть свой Kubernetes. Все они разные, выбор зависит от вашего бюджета, от того, какие задачи вы планируете решать, для каких нагрузок и что в конечном итоге вы планируете получить. В этой статье мы быстро пройдёмся по различным способам инсталляции, а затем попробуем развернуть свой K8s кластер на виртуальных машинах, воспользовавшись гипервизором второго типа (VirtualBox). Но это будет не условная Ubuntu, на которую мы будем ставить необходимые компоненты, а целая операционная система, разработанная специально для Kubernetes — Talos Linux!

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

#devops #девопс #docker #containers #security

Подпишись 👉@i_DevOps
👍8
Высокотехнологичная компания-производитель IT-инфраструктуры YADRO в поиске опытных DevOps-специалистов:

1️⃣ Старший DevOps инженер
2️⃣ DevOps engineer (Senior, Lead)
3️⃣ Инженер технической поддержки
4️⃣ Инженер по резервному копированию

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

А ещё у тебя будут:

– Гибридный или удалённый формат работы;
– Возможность гибкого начала и окончания рабочего дня;
– Конкурентный уровень заработной платы и премирование по результатам работы;
– Возможность горизонтального и вертикального роста;
– Обучение за счёт компании: учебный портал с курсами и лекциями от экспертов, дополнительное профессиональное обучение, изучение английского, участие в конференциях;
– Личное участие в становлении процессов и продуктов, возможность увидеть результат своей работы;
– Большое инженерное сообщество, которое постоянно развивается;
– ДМС со стоматологией с первого дня, консультации юристов, психологов, экспертов по ЗОЖ и управлению финансами;
– Программа поддержки инноваций;
– Скидки для сотрудников, дополнительные day-off;
– Комфортные офисы в Москве, Санкт-Петербурге, Нижнем Новгороде и Минске.

Откликайся по ссылкам и стань частью YADRO!
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Xeol

Cканер образов контейнеров, SBOM и файловых систем на проверку пакетов на end-of-life (EOL)

https://github.com/xeol-io/xeol

#devops #девопс

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