Category Archives: DevOps

Автоматизация Задач с CronJob в Kubernetes

Автор Itworkroom

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

Что такое CronJob в Kubernetes?

CronJob в Kubernetes — это ресурс, который позволяет запускать контейнеры по заданному расписанию. Он основан на стандартном формате cron-выражений, что делает его интуитивно понятным для тех, кто уже работал с cron в Unix-системах. CronJob создает задачи (Jobs), которые выполняют определенные действия в указанное время. (далее…)

ReplicaSet в Kubernetes

Автор Itworkroom

Обеспечение надежности и масштабируемости: освоение наборов реплик Kubernetes

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

Понимание наборов реплик

Набор реплик в Kubernetes отвечает за поддержание стабильного набора реплицируемых модулей, работающих в любой момент времени. Он обеспечивает работу необходимого количества модулей и автоматически заменяет любые модули, которые выходят из строя, завершают работу или удаляются. Это делает наборы реплик критически важными для обеспечения надёжности и доступности ваших приложений.

Ключевые концепции наборов реплик

  1. Желаемое состояние: ReplicaSet определяет желаемое состояние для количества реплик модуля. Kubernetes постоянно работает над приведением текущего состояния в соответствие с желаемым, обеспечивая постоянную работу указанного количества модулей.
  2. Шаблон модуля: набор реплик включает шаблон модуля, который определяет конфигурацию управляемых им модулей. Этот шаблон содержит такие сведения, как образы контейнеров, метки и другие характеристики модулей.
  3. Селектор: ReplicaSet использует селектор меток для определения того, какими модулями он должен управлять. Этот селектор гарантирует, что ReplicaSet управляет только модулями, соответствующими указанным меткам.

(далее…)

Горизонтальное автомасштабирование модуля HorizontalPodAutoscaler (HPA)

Автор Itworkroom

Горизонтальное автомасштабирование модуля

Горизонтальное автомасштабирование модуля – это автоматическое масштабирование количества реплик модуля, управляемых контроллером. Оно выполняется горизонтальным контроллером, который активируется и конфигурируется путем создания ресурса HorizontalPodAutoscaler (HPA). Данный контроллер периодически проверяет метрики модуля, вычисляет количество реплик, необходимое для соответствия целевому значению метрики, сконфигурированной в ресурсе HorizontalPodAutoscaler, и настраивает поле replicas на целевом ресурсе (развертывании Deployment, наборе реплик ReplicaSet, контроллере репликации ReplicationController или наборе модулей с внутренним состоянием StatefulSet)

Процесс автомасштабирования

Процесс автомасштабирования можно разделить на три этапа:

  • получение метрик всех модулей, управляемых масштабируемым ресурсным объектом;
  • расчёт количества модулей, необходимого для приведения метрик к указанному целевому значению (или близкому к нему);
  • обновление поля replicas масштабируемого ресурса. Далее мы рассмотрим все три этапа

Получение метрик модуля

Автопреобразователь масштаба сам не выполняет сбор метрик модуля. Он получает метрики из другого источника. Метрики модуля и узла собираются агентом под названием cAdvisor, который выполняется в Kubelet на каждом узле, а затем агрегируется кластерным компонентом под названием Heapster. Контроллер автопреобразователя горизонтального масштаба модуля получает метрики всех модулей, запрашивая агрегатор Heapster посредством вызовов REST.

(далее…)

Ресурс Role в Kubernetes

Автор Itworkroom

Ресурс Role определяет, какие действия можно предпринимать и на каких ресурсах (или какие типы HTTP-запросов можно выполнять и на каких ресурсах RESTful). В следующем ниже листинге определяется роль, которая позволяет пользователям получать и выводить список служб в пространстве имен boo.

apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
namespace: boo
name: service-reader
rules:
- apiGroups: [""]
verbs: ["get", "list"]
resources: ["services"]

(далее…)

Ресурс ServiceAccount

Автор Itworkroom

Учетные записи ServiceAccount – это ресурсы, такие же, как модули, секреты, словари конфигурации и т. д., которые ограничиваются отдельными простран[1]ствами имен. Устанавливаемая по умолчанию учетная запись ServiceAccount создается автоматически для каждого пространства имен (именно их и ис[1]пользовали ваши модули все время). Список учетных записей ServiceAccount можно вывести точно так же, как вы делаете это с другими ресурсами:

$ kubectl get sa

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

ServiceAccount k8s (далее…)