====== DevSecOps и промышленные решения ======
* [[https://habr.com/ru/companies/nubes/articles/808035/|Автоматический выпуск SSL-сертификатов. Используем Kubernetes и FreeIPA]]
===== Вы научитесь =====
- Интегрировать решения безопасности в CI
- Создавать CD в Кubernetes, используя ArgoCD
- Интегрировать приложения в Kubernetes с FreeIPA
- Настраивать решения Observability кластера Кubernetes
===== Вы будете знать =====
- Как использовать распределенные блочные хранилища в Кubernetes
- Как использовать операторы Kubernetes для управления сертификатами и базами данных
- Как настроить IDS/IPS приложения в Kubernetes
- Как восстановить кластер Kubernetes после сбоя
===== Модуль 1: Развертывание инфраструктуры предприятия =====
* Развертывание FreeIPA [[Решение FreeIPA]]
* Развертывание Kubernetes [[Система Kubernetes#Развертывание через Kubespray]]
* Развертывание GitLab [[Инструмент GitLab|Установка через docker-compose]]
# cat docker-compose.yml
...
userns_mode: 'host'
...
external_url 'https://server.corp13.un:4443'
...
- '4443:4443'
...
* Создать УЗ student через [[Инструмент GitLab#REST API интерфейс]]
* FreeIPA [[Решение FreeIPA#Установка и инициализация клиента]] client1
* FreeIPA [[Решение FreeIPA#Управление пользователями]] user1
* Настройка [[Firefox#Использование системных сертификатов]] в Firefox
* Может, не понадобится, или не сразу
bash -c '
scp /opt/freeipa-data/etc/ipa/ca.crt kube1:/usr/local/share/ca-certificates/
ssh kube1 update-ca-certificates
ssh kube1 systemctl restart containerd
scp /opt/freeipa-data/etc/ipa/ca.crt kube2:/usr/local/share/ca-certificates/
ssh kube2 update-ca-certificates
ssh kube2 systemctl restart containerd
scp /opt/freeipa-data/etc/ipa/ca.crt kube3:/usr/local/share/ca-certificates/
ssh kube3 update-ca-certificates
ssh kube3 systemctl restart containerd
scp /opt/freeipa-data/etc/ipa/ca.crt kube4:/usr/local/share/ca-certificates/
ssh kube4 update-ca-certificates
ssh kube4 systemctl restart containerd
'
kubeN#
crictl pull server.corpX.un:5000/student/gowebd
crictl images
crictl rmi server.corpX.un:5000/student/gowebd
===== Модуль 2: Развертывание приложений в кластере Kubernetes =====
* Стратегии развертывания и масштабирование нагрузки
* [[Система Kubernetes#MetalLB]], [[Система Kubernetes#ingress-nginx]]
* Использование баз данных ([[Сервис PostgreSQL#CloudNativePG]])
* Сервис Keycloak в [[Сервис Keycloak#Kubernetes]], [[Сервис Keycloak#Базовая конфигурация]], LDAP [[Сервис Keycloak#FreeIPA]]
* Сервис Keycloak [[Сервис Keycloak#Аутентификация пользователей WEB приложения]], [[Технология Docker#Приложение apwebd]], [[Система Kubernetes#Deployment]], [[Система Kubernetes#Service]], [[Решение FreeIPA#Создание ключа и сертификата для стороннего сервиса]], [[Система Kubernetes#ingress example]]
* Использование распределённых хранилищ ([[Система Kubernetes#longhorn]])
* ArgoCD и универсальный Helm Chart
===== Модуль 3: Безопасность в DevOps =====
* Инструменты для статического анализа кода
* Анализ уязвимостей в контейнерах
* Интеграция инструментов безопасности в CI/CD
* Управление секретами и сертификатами
* Управление доступом в Kubernetes
* Интеграция с внешними системами идентификации
* Использование IDS/IPS в Kubernetes
===== Модуль 4: Восстановление кластера после сбоев =====
* Мониторинг кластера Kubernetes
* Резервное копирование и восстановление данных приложений
* Восстановление управляющих и рабочих узлов
* Восстановление etcd
===== Черновик =====
==== DevSecOps ====
* [[DevSecOps]]
* - Анализ кода и контейнеров на уязвимости
* - Управление доступом в K8S
* - Управление чувствительными данными в CI/CD (Hashicorp Vault, Mozilla Sops)
* - Управление сертификатами (K8S cert-manager и FreeIPA)
* Использование LDAP и OpenID для управления идентификацией (Keycloak и FreeIPA)
* IDS/IPS (Suricata)
==== Промышленные решения ====
* ArgoCD и универсальный Helm Chart
* Распределенные блочные хранилища в K8S (Longhorn)
* Операторы K8S и СУБД (CloudNativePG)
* Брокеры сообщения (Kafka или RabbitMQ)
* Service Mesh (Istio)