Category Archives: DevOps
Ресурсы Kubernetes
Namespace* (ns) — позволяет организовывать ресурсы в неперекрывающиеся группы (для каждого потребителя ресурсов).
Развертывающие рабочие нагрузки
Pod (po) — основная развертываемая единица, содержащая один или более процессов в расположенных рядом контейнерах. Метки (Labels).
ReplicaSet — поддерживает одну или несколько реплик модуля.
ReplicationController (rc) [v1] – устаревший и менее функциональный эквивалент ресурса ReplicaSet.
Job — запускает модули, выполняющие завершаемую задачу.
CronJob [batch] — запускает назначаемое задание один раз или периодически.
DaemonSet (ds) — запускает одну реплику модуля в расчете на узел (на всех узлах или только на тех, которые соответствуют селектору узлов).
StatefulSet (sts) — запускает модули, имеющие внутреннее состояние, со стабильной идентичностью.
Deployment (deploy) — декларативное развертывание и обновление модулей.
Службы
Service (svc) [v1] — предоставляет доступ к одному или нескольким модулям на одной и стабильной паре IP-адреса и порта.
Endpoints (ep) — определяет, к каким модулям (или другим серверам) предоставляется доступ через службу.
NodePort — открывает сервис на том же порту каждого выбранного узла в кластере с помощью NAT. Делает сервис доступным вне кластера через :.
Ingress (ing) [extensions] — предоставляет внешним клиентам доступ к одной или нескольким службам через один доступный извне IP-адрес.
Конфигурация
ConfigMap (cm) [v1] — словарь в формате «ключ-значение» для хранения незащищенных параметров конфигурации приложений и предоставления им доступа к ним.
Secret [v1] — словарь в формате «ключ-значение» для хранения конфиденциальных данных. (далее…)
Kubernetes предоставляет мощные инструменты для управления контейнеризированными приложениями, обеспечивая их масштабируемость, надежность и автоматизацию. Одним из таких инструментов является CronJob, который позволяет запускать задачи по расписанию, аналогично традиционным cron-задачам в Unix-системах. В этой статье мы рассмотрим, как использовать CronJob в Kubernetes для автоматизации повторяющихся задач, их настройку и лучшие практики.
Что такое CronJob в Kubernetes?
CronJob в Kubernetes — это ресурс, который позволяет запускать контейнеры по заданному расписанию. Он основан на стандартном формате cron-выражений, что делает его интуитивно понятным для тех, кто уже работал с cron в Unix-системах. CronJob создает задачи (Jobs), которые выполняют определенные действия в указанное время. (далее…)
Обеспечение надежности и масштабируемости: освоение наборов реплик Kubernetes
В динамичном мире оркестрации контейнеров Kubernetes выделяется как мощный инструмент для управления контейнерными приложениями. Одной из его ключевых особенностей является ReplicaSet — механизм, предназначенный для обеспечения запуска определённого количества реплик модуля в любой момент времени. В этой статье рассматриваются тонкости использования ReplicaSet в Kubernetes, подчёркивается их важность, функциональность и рекомендации по эффективному использованию.
Понимание наборов реплик
Набор реплик в Kubernetes отвечает за поддержание стабильного набора реплицируемых модулей, работающих в любой момент времени. Он обеспечивает работу необходимого количества модулей и автоматически заменяет любые модули, которые выходят из строя, завершают работу или удаляются. Это делает наборы реплик критически важными для обеспечения надёжности и доступности ваших приложений.
Ключевые концепции наборов реплик
- Желаемое состояние: ReplicaSet определяет желаемое состояние для количества реплик модуля. Kubernetes постоянно работает над приведением текущего состояния в соответствие с желаемым, обеспечивая постоянную работу указанного количества модулей.
- Шаблон модуля: набор реплик включает шаблон модуля, который определяет конфигурацию управляемых им модулей. Этот шаблон содержит такие сведения, как образы контейнеров, метки и другие характеристики модулей.
- Селектор: ReplicaSet использует селектор меток для определения того, какими модулями он должен управлять. Этот селектор гарантирует, что ReplicaSet управляет только модулями, соответствующими указанным меткам.
За пределами модулей: раскрываем потенциал заданий Kubernetes для сложных рабочих нагрузок
Поды Kubernetes — это «рабочие лошадки» платформы, но они не всегда являются лучшим инструментом для каждой задачи. Для задач, которые являются конечными, независимыми и не требуют постоянного состояния, Kubernetes Jobs предлагают более совершенный подход, предоставляя надёжные механизмы для управления и мониторинга этих критически важных рабочих нагрузок. В этой статье рассматриваются нюансы использования Kubernetes Jobs помимо простой пакетной обработки, а также передовые методы и сценарии использования. (далее…)
Горизонтальное автомасштабирование модуля
Горизонтальное автомасштабирование модуля – это автоматическое масштабирование количества реплик модуля, управляемых контроллером. Оно выполняется горизонтальным контроллером, который активируется и конфигурируется путем создания ресурса HorizontalPodAutoscaler (HPA). Данный контроллер периодически проверяет метрики модуля, вычисляет количество реплик, необходимое для соответствия целевому значению метрики, сконфигурированной в ресурсе HorizontalPodAutoscaler, и настраивает поле replicas на целевом ресурсе (развертывании Deployment, наборе реплик ReplicaSet, контроллере репликации ReplicationController или наборе модулей с внутренним состоянием StatefulSet)
Процесс автомасштабирования
Процесс автомасштабирования можно разделить на три этапа:
- получение метрик всех модулей, управляемых масштабируемым ресурсным объектом;
- расчёт количества модулей, необходимого для приведения метрик к указанному целевому значению (или близкому к нему);
- обновление поля replicas масштабируемого ресурса. Далее мы рассмотрим все три этапа
Получение метрик модуля
Автопреобразователь масштаба сам не выполняет сбор метрик модуля. Он получает метрики из другого источника. Метрики модуля и узла собираются агентом под названием cAdvisor, который выполняется в Kubelet на каждом узле, а затем агрегируется кластерным компонентом под названием Heapster. Контроллер автопреобразователя горизонтального масштаба модуля получает метрики всех модулей, запрашивая агрегатор Heapster посредством вызовов REST.
1