Контейнеризация
От Docker до Kubernetes: историческая ретроспектива
Введение в Docker
Введение в Kubernetes. Часть 1. Установка кластера
Введение в Kubernetes. Часть 2. Поды и сервисы
Введение в Kubernetes. Часть 3. Горизонтальное маштабирование.
Введение в Kubernetes. Часть 4. Отказоустойчивость для клиентов
Введение в Kubernetes. Часть 5. Интеграция с NFS
Что такое операторы в Kubernetes?
источник
#devops #девопс
Подпишись 👉@i_DevOps
От 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
Общий процесс запуска приложения в 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
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
В докладе 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
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
Внутренние платформы разработки (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
Registry — это сервис хранения и распространения образов, также DockerHub — это Registry по умолчанию. Repository — это набор связанных образов. У них одно и то же имя, но разные метки.
Расскажите об образах Docker, DockerHub, Dockerfile
Образы: файлы, содержащие несколько слоев, используемые для выполнения кода внутри контейнера. Они собираются по инструкциям для получения исполняемой версии приложения. Образы могут ускорить сборку в Docker с помощью кэширования каждого этапа.
DockerHub: сервис для поиска и совместного использования образов контейнеров. Вы можете выгружать туда свои образы, скачивать их оттуда, работать с частными репозиториями образов контейнеров, собирать автоматически образы с помощью GitHub (Bitbucket), а затем закачивать их в DockerHub. Этот сервис предоставляет компания Docker.
Dockerfile: текстовый файл, используемый для сборки образа. Он содержит инструкции и команды по сборке образа. Docker читает их и автоматически собирает образ.
#devops #девопс
Подпишись 👉@i_DevOps
👍4❤3
Вопросы с собеседования
df сообщает о наличии 20 Гб занятого пространства, подсчёт занятого файлами места при помощи du даёт результат в 20 Мб. При каких обстоятельствах может возникнуть описанная ситуация?
Когда файл удален т. к. файловый дескриптор «держит» его.
Ищем файл через:
При удалении файла, который в этот момент был «занят» процессом — его имя удаляется, но inode — остаётся в файловой системе до тех пор, пока не завершится процесс, который «держит» этот файл.
Соответственно, что бы «освободить» уже удалённые файлы — необходимо перезапустить процесс, который этот файл держит.
#devops #девопс
Подпишись 👉@i_DevOps
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
Мы добавили возможность линтинга Docker-файлов по требованию в Depot. В этом посте мы рассмотрим 10 наиболее распространенных проблем с линтингом Dockerfile, которые мы наблюдали в Depot.
https://depot.dev/blog/dockerfile-linting-issues
#devops #девопс
Подпишись 👉@i_DevOps
Depot
Top 10 common Dockerfile linting issues
We've added the ability to lint Dockerfiles on demand in Depot. This post covers the top 10 most common Dockerfile linting issues we've seen flowing through Depot.
👍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
Недавно команда 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
На вебинаре описывается сетевая модель 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
Привет! Меня зовут Петр Бобров, в 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
У нас есть 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
24 июля в 20:00 мск
❓Хотите узнать, как эффективно управлять сообщениями в масштабируемых распределенных системах? Тогда этот открытый вебинар для вас!
Мы разберем основы и архитектуру Apache Kafka, принципы работы с распределенными очередями, а также научимся настраивать и развертывать кластер Kafka в Docker. Вы увидите реальные примеры использования Kafka для обмена сообщениями между сервисами и узнаете о лучших практиках и рекомендациях по интеграции Kafka в ваши проекты.
💻 Урок будет полезен Fullstack и Backend-разработчикам, DevOps-инженерам, архитекторам ПО и администраторам систем, а также всем, кто хочет углубить свои знания об Apache Kafka и его применении.
🔴 Регистрация открыта: https://vk.cc/cyziEN
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576