Platform as a Service
Внутренний проект по созданию платформы для In-house решений, с возможностью миграции решений в Cloud.
Source Code
- actions - always public repository (for work GitHub Actions)
- cli-doc-tools
- cli-rakovets
- env-paas
- infra-devops - deprecated
- infra-images
- infra-local-env - deprecated
Hardware
- Network Switch: Hikvision DS-3E1105P-EI
- Raspberry Pi 5
- Power Over Ethernet HAT (F) For Raspberry Pi 5
Network
Kubernetes cluster
Solution
- Ingress:
- Traefik as Ingress Controller
- Certificate management:
cert-manager
as Certificate Controller- Let's Encrypt as ACME provider.
- Kubernetes Web UI:
- Persistence Storage:
- TopoLVM as CSI plugin
- SSD on cluster node with label
type=persistence
anddisk=nvme
/disk=ssd
Schema
Architecture
TODO
Evolution of Abstract On-premises Kubernetes Cluster
- Single Mini
- Cluster as Single Node (Control Plane, Node)
- Persistence Storage as SD card.
- Single
- Cluster as Single Node (Control Plane, Node)
- Persistence Storage as SSD/HDD.
- Multi Mini
- Cluster as Multi Nodes (Control Plane, Node)
- Persistence Storage as SD card.
- Multi
- Cluster as Multi Nodes (Control Plane, Node)
- Persistence Storage as SSD/HDD.
- Multi Pro
- Cluster as Multi Nodes (Control Plane, Node)
- Persistence Storage as Distributed Block Storage (example: Longhorn).
- Multi Max
- Cluster as Multi Nodes (Control Plane, Node)
- Persistence Storage as Distributed Block Storage (example: Longhorn).
- Persistence Storage as PCIe to .M2 HAT
- Power over Ethernet by Network switch + PoE HAT
- Multi Ultra
- Cluster as HA Cluster with Multi Nodes (Control Plane, Node)
- Persistence Storage as Distributed Block Storage (example: Longhorn).
- Persistence Storage as PCIe to .M2 HAT
- Power over Ethernet by Network switch + PoE HAT
Manual
Add new Cluster Node
- Зарезервировать IP адрес для Cluster Node на Router по MAC (http://192.168.0.1/).
- Добавить новую Cluster Node в Ansible inventory (https://github.com/rakovets/env-paas).
- Раскатить необходимое ПО для Cluster Node с помощью Ansible (https://github.com/rakovets/env-paas).
- Предварительно добавить sudo пароль для первичной инициализации
- Проинициализировать
- Раскатить ПО
- Добавить новую Cluster Node на сетевую диаграмму.
Backlog
- Создать boilerplate для проекта
- В RCLI добавить создание нового сервиса:
- создает git-repository на основе boilerplate
- Добавить CLI-complete for RCLI