Публикация дополнена и обновлена 16 мая 2024 г.

Основы работы с хранилищами в Kubernetes

В Kubernetes принято разделение хранилищ на два основных типа: постоянные и временные.

Постоянные хранилища (PV) представляют собой сегменты дискового пространства, которые могут быть подключены к подам и сохранять данные даже после перезапуска или удаления контейнеров. Эти объемы предоставляются через механизм Persistent Volume Claims, который позволяет юзерам и приложениям запрашивать хранилище определенного размера и класса, абстрагируясь от физической реализации хранилища.

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

Читать далее


Деплоим приложение в k8s через Jenkins+Helm3+ArgoCD

В мире современной разработки программного обеспечения Kubernetes (K8s) стал неотъемлемой частью инфраструктуры, предоставляя масштабируемость и гибкость в развертывании контейнеризированных приложений. В этой статье мы рассмотрим эффективный способ деплоя приложений в среде Kubernetes, используя мощные инструменты: Jenkins, Helm 3 и ArgoCD.

Читать далее


SaltStack: управление конфигурациями

SaltStack позволяет администраторам и DevOps-специалистам взаимодействовать с различными уровнями своих инфраструктур, от индивидуальных серверов до центров обработки данных. Система использует модель Salt Minion.

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

Читать далее


Kubelet в Kubernetes

Kubelet — это агент, который работает на каждом узле в кластере Kubernetes. Он отвечает за то, чтобы контейнеры в Pod’ах были запущены и функционировали в соответствии с предоставленными спецификациями PodSpec. Kubelet непрерывно общается с сервером API Kubernetes, чтобы проверять и поддерживать состояние узлов и контейнеров. Без Kubelet, управление контейнерами стало бы нестабильным и непредсказуемым, так как он обеспечивает регулярную проверку состояния и восстановление контейнеров, управляет их жизненным циклом и реагирует на изменения в конфигурации.

Читать далее


4 частых вопроса на собеседовании по части Kubernetes, с которыми может столкнуться каждый. Часть 1

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

Начнем с основной архитектуры Kubernetes и роли основных компонентов.

Читать далее


Тюнинг Wireshark

Анализатор пакетов Wireshark является мощным инструментом как для сбора, так и для анализа трафика. Ранее мы уже рассматривали использование Wireshark для работы с пакетами DNS. В этой статье мы рассмотрим различные приемы гибкой настройки данного инструмента для того, чтобы сделать работу с ним более удобной и эффективной.

Настройки Wireshark спрятаны в разделе Edit -> Preferences… Здесь нам доступно множество различных настроек и подробно останавливаться на каждой мы не будем. В разделе Appearance мы можем указать различные настройки для визуального отображения: шрифты, используемые цвета, сохранение размеров и расположения основного окна и многое другое.

Читать далее


Инфраструктурные пайплайны в Jenkins

Jenkins позволяет автоматизировать всё, от сборки и тестирования кода до деплоя на продакшн. Jenkins работает по принципу пайплайнов, которые можно настраивать под любые нужды проекта.

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

Читать далее


MERGE и её улучшение производительности с помощью work_mem

С выходом PostgreSQL 15 мы застали появление долгожданной команды MERGE, которая позволяет реализовывать эффективные способы синхронизации обновлений.

Суть MERGE заключается в ее универсальности: она позволяет объединить операции INSERTUPDATE и DELETE в одном запросе, автоматически выбирая нужное действие в зависимости от того, существует ли соответствующая запись в целевой таблице.

Читать далее


Helm Charts

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

Чарты — это пакеты, которые могут включать в себя все для запуска приложения в Kubernetes, от deployments до services. Все это дает возможность работать с приложениями как с единой сущностью, а не как с набором отдельных ресурсов, которые еще и в ручную нужно настраивать…

Читать далее


Обзор балансировщика traefik

Traefik — современный и мощный балансировщик нагрузки.

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

Читать далее


Создание базового образа с Packer

Packer – это инструмент для создания однородных образов виртуальных машин и контейнеров для использования на различных платформах от HashiCorp. C ним можно легко автоматизировать процесс сборки образов на основе одного исходного конф. файла, используя предопределённые шаблоны.

Рассмотрим создание базового образа с Packer.

Читать далее


Packer: мультисборка, пост-процессоры и пользовательские плагины

Рассмотрим его возможности мультисборки, пост-процессоров и пользовательских плагинов.

Читать далее


Интеграция SonarQube в Kubernetes

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

Читать далее


Укрощаем DNS в Wireshark

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

Читать далее


Взгляд в хранилище данных. Анализ диска с помощью Kali Linux

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

Читать далее


Отладка дедлока FUSE в ядре Linux

Наша команда вычислительных ресурсов Netflix (Compute team) отвечает за администрирование AWS, в том числе за автомасштабирование и развертывание контейнеризованных приложений, включая решение возникающих проблем. В мои обязанности входит разбор разного рода странных ошибок, о которых сообщают пользователи.

Проблема, описываемая далее, была связана с ndrive — внутренней файловой системой, реализованной с помощью FUSE. Я расскажу, как я копался в /proc в поисках причины, и узнал, как на самом деле работает wait в ядре.

Читать далее


Kustomize в Kubernetes

Если вы когда-либо сталкивались с вызовами управления множественными и сложными Kubernetes конфигурациями, то Kustomize — это то, что может очень круто упростить вашу жизнь.

Чем больше масштаб работы Kubernetes, тем более витиеватыми становятся конфигурации. И здесь очень помогает Kustomize, он позволяет «конфигурировать конфигурации», управлять сложностью и делать процесс более понятным.

Читать далее


Собственные CRD в Kubernetes

Custom Resource Definition в Kubernetes — это хороший инструмент, который позволяет расширять API Kubernetes, добавляя собственные, пользовательские ресурсы. Эти определения не просто новые названия для существующих концепций; они создают новые типы ресурсов, которые Kubernetes будет распознавать и обрабатывать так же, как и встроенные ресурсы, такие как Pods, Deployments и Services.

Читать далее


Microk8s, еще один легковесный K8s

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

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

Читать далее

Инфраструктура: подборка статей в блоге OTUS на Хабр