Планы на начало 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.

Kubernetes, network, services [02]

Kubernetes, network, service
Продолжение рассказа о сервисах в kubernetes

00:20 — headless service
10:51 — ссылка на конкретный под statefulset
12:33 — service externalname
16:26 — externalIP
22:25 — service NodePort

Текстовый вариант можно почитать тут.

Kubernetes, network. Перед установкой сети кластера.

Копаем дальше, копаем глубже.

Ставим кластер, подробнее про конфигурационный файл. Смотрим как настроена сеть хоста и докера перед установкой сети кластера.

Текстовка к видео на моем сайте.

Материалы на github.

Установка Jenkins в Kubernetes

Первое видео

Как установить Jenkins в kubernetes, руками без хелмчартов.
Как заставить kubernetes (docker) работать с частным хранилищем docker образов по https с «левым» сертификатом

  • 01:32 — схема.
  • 02:59 — собираем кастом контейнеры.
  • 08:30 — подключаем кастомное хранилище по https.
  • 15:23 — деплоим Jenkins.

Файлы, используемые в видео: https://github.com/BigKAA/youtube/tree/master/jenkins

Второе видео.

Продолжение видео по установке Jenkins:

  • 00:25 — Настройка плагина kubernetes
  • 06:10 -Тесовый pipeline
  • 07:36 — Сборка и деплой приложения.