Skip to content

Platform as a Service

Внутренний проект по созданию платформы для In-house решений, с возможностью миграции решений в Cloud.

Source Code

Hardware

Network

image

Kubernetes cluster

Solution

Schema

image

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

  1. Зарезервировать IP адрес для Cluster Node на Router по MAC (http://192.168.0.1/).
  2. Добавить новую Cluster Node в Ansible inventory (https://github.com/rakovets/env-paas).
  3. Раскатить необходимое ПО для Cluster Node с помощью Ansible (https://github.com/rakovets/env-paas).
    • Предварительно добавить sudo пароль для первичной инициализации
    • Проинициализировать
    • Раскатить ПО
  4. Добавить новую Cluster Node на сетевую диаграмму.

Backlog

  • Создать boilerplate для проекта
  • В RCLI добавить создание нового сервиса:
    • создает git-repository на основе boilerplate
  • Добавить CLI-complete for RCLI