Kubernetes кластер
Сервис для размещения и работы с контейнеризированными приложениями на инфраструктуре Lincore, основанный на Deckhouse Platform.

-
Кластеры Kubernetes Pro
-
Кластеры Kubernetes Flex
-
Deckhouse Platform
Что такое Deckhouse Platform
Deckhouse Platform - это экосистема продуктов для построения надежной инфраструктуры, включающая платформу контейнеризации, мониторинга и виртуализации.
С помощью нее можно создавать и управлять идентичными кластерами Kubernetes в любой инфраструктуре. Deckhouse Platform автоматизирует развертывание, настройку и обновление кластеров, а также обеспечивает управление жизненным циклом приложений в Kubernetes
Преднастроенные «ready – to - use» модули
cert-manager
Модуль cert-manager
Устанавливает надежную и высокодоступную инсталляцию cert-manager release v1.12.3.
При установке модуля автоматически учитываются особенности кластера:
- компонент (webhook), к которому обращается
kube-apiserver
, устанавливается на master-узлы; - в случае недоступности webhook’а производится временное удаление
apiservice
, чтобы недоступность cert-manager не блокировала работу кластера.
Обновление самого модуля происходит в автоматическом режиме, в том числе с миграцией ресурсов cert-manager.
loki
Модуль loki
Модуль предназначен для организации хранилища логов.
Модуль использует проект Grafana Loki.
Модуль разворачивает хранилище логов на базе Grafana Loki, при необходимости настраивает модуль log-shipper
на использование модуля loki и добавляет в Grafana соответствующий datasource.
log-shipper
Модуль log-shipper
Модуль разворачивает агенты log-shipper
для сборки логов на узлы кластера. Предназначение этих агентов — с минимальными изменениями отправить логи дальше из кластера. Каждый агент — это отдельный vector, конфигурацию для которого сгенерировал Deckhouse.
- Deckhouse следит за ресурсами ClusterLoggingConfig, ClusterLogDestination и PodLoggingConfig. Комбинация конфигурации для сбора логов и направления для отправки называется
pipeline
. - Deckhouse генерирует конфигурационный файл и сохраняет его в
Secret
в Kubernetes. Secret
монтируется всем подам агентовlog-shipper
, конфигурация обновляется при ее изменении с помощью sidecar-контейнераreloader
.
monitoring kubernetes
Модуль monitoring-kubernetes
Модуль предназначен для базового мониторинга узлов кластера.
Обеспечивает безопасный сбор метрик и предоставляет базовый набор правил для мониторинга:
- текущей версии container runtime (docker, containerd) на узле и ее соответствия версиям, разрешенным для использования;
- общей работоспособности подсистемы мониторинга кластера (Dead man’s switch);
- доступных файловых дескрипторов, сокетов, свободного места и inode;
- работы
kube-state-metrics
,node-exporter
,kube-dns
; - состояния узлов кластера (NotReady, drain, cordon);
- состояния синхронизации времени на узлах;
- случаев продолжительного превышения CPU steal;
- состояния таблицы Conntrack на узлах;
- подов с некорректным состоянием (как возможное следствие проблем с kubelet) и др.
cni-cilium
Модуль cni-cilium
Обеспечивает работу сети в кластере с помощью модуля cilium.
Ограничения
- Сервисы с типом
NodePort
иLoadBalancer
не работают с hostNetwork-эндпоинтами в LB-режимеDSR
. Переключитесь на режимSNAT
, если это требуется. HostPort
поды биндятся только к одному IP. Если в ОС есть несколько интерфейсов/IP, Cilium выберет один из них, предпочитая «серые» IP-адреса «белым».- Требования к ядру:
- Для работы модуля
cni-cilium
необходимо ядро Linux версии >=5.7
. - Для работы модуля
cni-cilium
совместно с модулем istio, openvpn или node-local-dns необходимо ядро Linux версии >=5.7
.
4. Проблемы совместимости с ОС:
- Ubuntu:
- не работоспособно на 18.04
- для работы на 20.04 необходима установка ядра HWE
- Astra Linux:
- не работоспособно на издании “Смоленск”
- CentOS: 7 (необходимо новое ядро из репозитория)
- CentOS: 8 (необходимо новое ядро из репозитория)
openvpn
Модуль openvpn
Дает доступ к ресурсам кластера посредством OpenVPN с аутентификацией по сертификатам, предоставляет простой веб-интерфейс.
Функции веб-интерфейса:
- выпуск сертификатов;
- отзыв сертификатов;
- отмена отзыва сертификатов;
- получение готового пользовательского конфигурационного файла.
Веб-интерфейс проинтегрирован с модулем user-authn
, что позволяет управлять возможностью доступа различных пользователей в этот веб-интерфейс.
prometheus
Prometheus-мониторинг
Веб-интерфейсы, связанные с модулем: grafana
Устанавливает и полностью настраивает Prometheus, настраивает сбор метрик со многих распространенных приложений, а также предоставляет необходимый минимальный набор alert’ов для Prometheus и dashboard Grafana.
Если используется StorageClass с поддержкой автоматического расширения (allowVolumeExpansion: true
), при нехватке места на диске для данных Prometheus его емкость будет увеличена.
Ресурсы CPU и memory автоматически выставляются при пересоздании пода на основе истории потребления, благодаря модулю Vertical Pod Autoscaler. Также, благодаря кэшированию запросов к Prometheus с помощью Trickster, потребление памяти Prometheus сильно сокращается.
Поддерживается как pull-, так и push-модель получения метрик.
descheduler
Модуль descheduler
Модуль запускает в кластере descheduler с набором стратегий, заданных в custom resource Descheduler
.
descheduler каждые 15 минут вытесняет Pod’ы, которые удовлетворяют включённым в custom resource Descheduler
стратегиям. Это приводит к принудительному запуску процесса шедулинга для вытесненных подов.
control-panel-manager
Управление control plane
Управление компонентами control plane кластера осуществляется с помощью модуля control-plane-manager
, который запускается на всех master-узлах кластера (узлы с лейблом node-role.kubernetes.io/control-plane: ""
).
Функционал управления control plane:
- Управление сертификатами, необходимыми для работы control-plane, в том числе продление, выпуск при изменении конфигурации и т. п. Позволяет автоматически поддерживать безопасную конфигурацию control plane и быстро добавлять дополнительные SAN для организации защищенного доступа к API Kubernetes.
- Настройка компонентов. Автоматически создает необходимые конфигурации и манифесты компонентов
control-plane
. - Upgrade/downgrade компонентов. Поддерживает в кластере одинаковые версии компонентов.
- Управление конфигурацией etcd-кластера и его членов. Масштабирует master-узлы, выполняет миграцию из single-master в multi-master и обратно.
- Настройка kubeconfig. Обеспечивает всегда актуальную конфигурацию для работы kubectl. Генерирует, продлевает, обновляет kubeconfig с правами cluster-admin и создает symlink пользователю root, чтобы kubeconfig использовался по умолчанию.
kube-dns
Модуль kube-dns
Модуль устанавливает компоненты CoreDNS для управления DNS в кластере Kubernetes.
upmeter
Модуль upmeter
Веб-интерфейсы, связанные с модулем: status, upmeter
Модуль собирает статистику по типам доступности для компонентов кластера и Deckhouse. Позволяет оценивать степень выполнения SLA на эти компоненты, показывает данные о доступности в веб-интерфейсе и предоставляет веб-страницу статуса работы компонентов кластера.
С помощью custom resource UpmeterRemoteWrite можно экспортировать метрики доступности по протоколу Prometheus Remote Write.
Состав модуля:
- agent — делает пробы доступности и отправляет результаты на сервер, работает на мастер-узлах.
- upmeter — агрегатор результатов и API-сервер для их извлечения.
- front:
- status — показывает текущий уровень доступности за последние 10 минут (по умолчанию требует авторизации, но ее можно отключить);
- webui — дашборд со статистикой по пробам и группам доступности (требует авторизации).
- smoke-mini — постоянное smoke-тестирование с помощью StatefulSet, похожего на настоящее приложение.
Модуль отправляет около 100 показаний метрик каждые 5 минут. Это значение зависит от количества включенных модулей Deckhouse.
user-authn
ingress-nginx
Модуль ingress-nginx
Устанавливает и управляет NGINX Ingress controller с помощью Custom Resources. Если узлов для размещения Ingress-контроллера больше одного, он устанавливается в отказоустойчивом режиме и учитывает все особенности реализации инфраструктуры облаков и bare metal, а также кластеров Kubernetes различных типов.
Поддерживает запуск и раздельное конфигурирование одновременно нескольких NGINX Ingress controller’ов — один основной и сколько угодно дополнительных. Например, это позволяет отделять внешние и intranet Ingress-ресурсы приложений.
extended-monitoring
Модуль extended-monitoring
Содержит следующие Prometheus exporter’ы:
extended-monitoring-exporter
— включает расширенный сбор метрик и отправку алертов по свободному месту и inode на узлах, а также «расширенный мониторинг» объектов в namespace с лейбломextended-monitoring.deckhouse.io/enabled=""
;image-availability-exporter
— добавляет метрики и алерты, позволяющие выявить проблемы с доступностью образов контейнеров в registry, указанных в полеimage
объектовDeployments
,StatefulSets
,DaemonSets
,CronJobs
;events-exporter
— собирает события в кластере Kubernetes и отображает их в виде метрик;cert-exporter
— сканирует Secret’ы в кластере Kubernetes и генерирует метрики об истечении срока действия сертификатов.
Параметры
-
До 10 рабочих узлов
-
От 4 до 64 GB RAM
-
От 2 до 16 vCPU
-
Два типа дисков до 2 TB: Super - до 40k IOPS 320 Mb/s Standard - до 20k IOPS 160 Mb/s

Преимущества
Внешний IP и доменное имя для web интерфейсов управления кластером

Системные узлы и control-plane в сбалансированной конфигурации

Готовый kubeconfig для всех популярных систем

Kubernetes Flex
Сервис для автоматического создания и управления кластерами Kubernetes в минимально необходимой конфигурации

Привычен и понятен для пользователя

Просто и быстро создаётся

Отлично подходит для запуска небольших продуктивных приложений

3 мастер узла c параметрами, которые подобраны для разных профилей нагрузки (зависит от тарифа)

Видео* от 1 до 10 рабочих узлов с гибкими параметрами от 2 CPU 2 GB RAM до 12 CPU 32 GB RAM. монтаж и постобработка

Два типа диска объёмом до 512 GB для рабочих узлов: Super — до 40k IOPS 320 Mb/s Standard — до 20k IOPS 160 Mb/s
Возможности
Cоздавание кластеров с одним или тремя мастер узлами.
В состав сервиса входят:
-
Группа мастер узлов — имеют фиксированную конфигурацию в рамках тарифа
-
Группа рабочих узлов — пользователь может выбирать конфигурацию узлов произвольно под планируемую нагрузку
-
Внешний IP адрес для управления кластером и доступа к приложениям размещенным в кластере
-
Сетевой балансировщик для доступа kube-api, пользователь может добавлять необходимые правила балансировщика из панели управления

Остались вопросы?
Задайте их нашему эксперту и получите квалифицированную консультацию