Инфраструктура
При развороте платформы под конкретное внедрение страница должна быть актуализирована под новые вводные.
Общая схема
Окружение, в котором разрабатывается ensi состоит из следующих частей:
- Кластер k8s
- Сервер администрирования и воркер ci/cd
- Кластер Ceph
- Сервер с СУБД Postgres
В общих чертах схема развёртывания выглядит как показано на рис. 1.
Кластер k8s
Кластер состоит из 6 машин. На них развёрнуты микросервисы ensi и различные инфраструктурные сервисы, необходимые как для непосредственно работы ensi, так и для мониториринга её работы.
Машина | IP | CPU | RAM | DISK |
---|---|---|---|---|
master1 | 10.1.0.21 | 4 | 4 | 20 |
master2 | 10.1.0.22 | 4 | 4 | 20 |
master3 | 10.1.0.23 | 4 | 4 | 20 |
worker1 | 10.1.0.24 | 16 | 32 | 64 |
worker1 | 10.1.0.24 | 16 | 32 | 64 |
worker1 | 10.1.0.24 | 16 | 32 | 64 |
Сервер администрирования / Jenkins agent
Сервер используется в основном как агент Jenkins, на котором выполняется сборка docke образов. Кроме того на машине установлены kubectl и helm, и настроен доступ в кластер k8s.
Машина | IP | CPU | RAM | DISK |
---|---|---|---|---|
kube-adm | 10.1.0.2 | 4 | 16 | 20 |
Кластер ceph
Кластер состоит из трёх машин. Используются как отказоусточивое сетевое файловое хранилище, доступное с любой из машин кластера k8s. В нём хранятся файлы всех приложений, развёрнутых в k8s, как микросервисов ensi, так и инфраструктурных сервисов.
Машина | IP | CPU | RAM | DISK |
---|---|---|---|---|
ceph1 | 10.1.0.31 | 4 | 8 | 120 |
ceph2 | 10.1.0.32 | 4 | 8 | 120 |
ceph2 | 10.1.0.33 | 4 | 8 | 120 |
Сервер postgres
Используется как основная БД самим ensi.
Машина | IP | CPU | RAM | DISK |
---|---|---|---|---|
database | 10.1.0.10 | 20 | 24 | 120 |
Системы управления
K8s dashboard
Веб-интерфейс к кубернетису, который позволяет выполнять практически любые манипуляции с кластером и наблюдать за его состоянием.
Ceph dashboard
Веб-интерфейс для управления кластером ceph.
Системы CI/CD
Jenkins
Система автоматизации задач. Используется для сборки и отгрузки микросервисов ensi. https://jenkins-infra.ensi.tech/
Nexus
Хранилище артефактов, таких как docker образы и composer пакеты. https://nexus-infra.ensi.tech/
Системы мониторинга
Prometheus
Собирает метрики со всего, что ими обладает - с железа, платформы, отдельных сервисов. Для просмотра метрик используется Grafana.
https://grafana-infra.ensi.tech/
ELK
Связка из Elasticsearch, Logstash и Kibana используется для сбора логов с микросервисов ensi и с некоторых компонентов платформы, таких как, например, ingress controller.
Инфраструктурные сервисы ensi, развёрнутые в кластере
Elasticsearch
NoSql хранилище и поисковой движок, использующийся в ensi для быстрой фильтрации больших массивов данных, например товаров. Для его настройки и отладки поисковых запросов используется Kibana.
https://kibana-infra.ensi.tech/
Kafka
Система обмена сообщениями между микросервисами ensi.