Планы на начало 2021

За последний год работы с kubernetes, наконец то появилось некоторое понимание как это должно работать 🙂 В связи с этим соберу в одну кучу свои заметки по созданию небольшого кластера для devops и развертывания нескольких приложений.

К сожалению к большим кластерам у меня нет доступа. Традиционная проблема «яйца и курицы»: что бы получить доступ к большому кластеру, требуют опыт работы с ним. Что бы получить опыт работы, нужен доступ к большому кластеру.

Ниже представлен план, что будет. Еще не решил, сделать в виде только текста или текст + видео.

Небольшой kubernetes cluster step by step

Попытаюсь описать пошаговую процедуру создания кластера kubernetes.

Будет настроен кластер и некоторое количество системных приложений.

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

Шаг 0. Определение PriorityClasses.

Шаг 1. Различные утилиты и первоначальные действия.

  • Определение namespaces, необходимых для дальнейшей работы приложений кластера.
  • Reloader — утилита для перезагрузки сервиса после изменения configMap.
  • MetricsServer — отображение метрик при использовании kubectl top.
  • cert-manager — утилита для управления сертификатами.

Шаг 2. Persistent Volumes.

Автоматизируем создание PersistentVolumes на базе nfs.

Шаг 3. Ingress Controllers.

Создаем системный ingress-controller, для доступа к системным приложениям.

Шаг 4. Мониторинг.

  • Разное.
    • netdata — интересная замена node-exporter.
  • Victoriametrics — длительное хранение метрик.
  • Prometeheus — сбор метрик приложений системы.
    • Варианты конфигурации для различных подсистем.
    • node-exporter.
    • kube-state-metrics.
  • Grafana — графики, алёрты.

Шаг 5. Сбор логов.

Сбор логов системных приложений. Для приложений пользователей логи будут собираться отдельно.

  • Роутер логов на основе fluentd.
    • Пересылка логов системных приложений в файловую систему.
  • Сбор системных логов, при помощи fluentbit.