Category Archives: DevOps

Ресурсы Kubernetes

Автор Itworkroom
k8s

Ресурсы Kubernetes
Namespace* (ns) [v1] — позволяет организовывать ресурсы в неперекрывающиеся группы (для каждого потребителя ресурсов).

Развертывающие рабочие нагрузки
Pod (po) [v1] — основная развертываемая единица, содержащая один или более процессов в расположенных рядом контейнерах. Метки (Labels).
ReplicaSet (rs) — поддерживает одну или несколько реплик модуля.
ReplicationController (rc) [v1] – устаревший и менее функциональный эквивалент ресурса ReplicaSet.
Job — запускает модули, выполняющие завершаемую задачу.
CronJob [batch/v1beta1] — запускает назначаемое задание один раз или периодически.
DaemonSet (ds) — запускает одну реплику модуля в расчете на узел (на всех узлах или только на тех, которые соответствуют селектору узлов).
StatefulSet (sts) — запускает модули, имеющие внутреннее состояние, со стабильной идентичностью.
Deployment (deploy) — декларативное развертывание и обновление модулей.

Службы
Service (svc) [v1] — предоставляет доступ к одному или нескольким модулям на одной и стабильной паре IP-адреса и порта.
Endpoints (ep) [v1] — определяет, к каким модулям (или другим серверам) предоставляется доступ через службу.
NodePort — открывает сервис на том же порту каждого выбранного узла в кластере с помощью NAT. Делает сервис доступным вне кластера через :.
Ingress (ing) [extensions/v1beta1] — предоставляет внешним клиентам доступ к одной или нескольким службам через один доступный извне IP-адрес.

Конфигурация
ConfigMap (cm) [v1] — словарь в формате «ключ-значение» для хранения незащищенных параметров конфигурации приложений и предоставления им доступа к ним.
Secret [v1] — словарь в формате «ключ-значение» для хранения конфиденциальных данных. (далее…)

Kubernetes Jobs

Автор Itworkroom

kubernetes-jobsЗа пределами модулей: раскрываем потенциал заданий Kubernetes для сложных рабочих нагрузок

Поды Kubernetes — это «рабочие лошадки» платформы, но они не всегда являются лучшим инструментом для каждой задачи. Для задач, которые являются конечными, независимыми и не требуют постоянного состояния, Kubernetes Jobs предлагают более совершенный подход, предоставляя надёжные механизмы для управления и мониторинга этих критически важных рабочих нагрузок. В этой статье рассматриваются нюансы использования Kubernetes Jobs помимо простой пакетной обработки, а также передовые методы и сценарии использования. (далее…)

Горизонтальное автомасштабирование модуля 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 (далее…)