Подготовка внутренней инфраструктуры
Подготовка внутренней инфраструктуры включает:
установку Sonatype Nexus Repository в docker;
настройку внутреннего docker-registry;
настройку apt-репозитория;
настройку raw-репозитория;
загрузку необходимых docker-образов в docker-registry;
загрузку необходимых пакетов в apt-репозиторий;
загрузку необходимых файлов в raw-репозиторий.
Для установки DLH в закрытом контуре необходим внутренний репозиторий (registry, apt, raw), например Sonatype Nexus Repository, с загруженными в него файлами, apt-пакетами, docker-образами.
Примечание
Установка Nexus может быть осуществлена с использованием любого предпочтительного метода. В официальной документации представлены инструкции по установке и настройке Sonatype Nexus Repository.
Самый простой способ установки в docker-контейнере:
Создайте файл docker-compose.yml.
Запустите Nexus командой docker compose up -d
1services: 2 nexus: 3 image: sonatype/nexus3:3.62.0 4 restart: unless-stopped 5 ports: 6 - "8081:8081" 7 - "5000:5000" 8 volumes: 9 - ./data:/nexus-data
Для создания и настройки внутреннего docker-registry, apt, raw репозиториев выполните действия:
Перейдите в раздел «Server administration and configuration» в веб-интерфейсе Nexus. Далее в меню слева выберите раздел «Repositories».
В открывшемся разделе нажмите на кнопку Create repository.
Из списка выберите нужный тип репозитория — docker (hosted), apt (hosted) или raw (hosted).
В открывшемся меню задайте параметры и сохраните настройки репозитория.
Во внутренний apt-репозиторий необходимо загрузить следующие пакеты:
conntrack iptables containerd socat - для установки kubernetes и его компонентов.
keepalived haproxy nginx - для настройки балансировки и отказоустойчивости.
docker-ce git curl net-tools telnet jq - для настройки инфраструктурных сервисов DLH.
Во внутренний raw-репозиторий необходимо загрузить:
CNI-plugin (Container Networking Interface) для настройки сетевого взаимодействия внутри kubernetes.
crictl для установки и настройки среды исполнения контейнеров.
утилиты kubeadm и kubelet для установки и настройки кластера kubernetes.
утилиту kubectl для управления кластером kubernetes.
утилиту helm для развертывания сервисов в кластере kubernetes.
Для установки инфраструктурных сервисов понадобятся следующие docker-образы:
nexus.dlhlabs.ru/infra/apache/airflow-dlh-mod:2.3.3,
nexus.dlhlabs.ru/infra/apache/apicurio-registry-sql:2.6.2.Final,
nexus.dlhlabs.ru/infra/apache/cp-kafka:7.5.3,
nexus.dlhlabs.ru/infra/debezium/connect-dlh-mod:2.7.1.Final-dlhcust0.1.4,
nexus.dlhlabs.ru/infra/provectuslabs/kafka-ui-dlh-mod:0.7.2,
nexus.dlhlabs.ru/infra/apache/pulsar:3.1.1,
nexus.dlhlabs.ru/infra/apache/pulsar-manager:v0.2.0,
nexus.dlhlabs.ru/infra/apache/superset:4.0.1,
nexus.dlhlabs.ru/infra/vault:1.14.8,
redis:7.2.4.
Для настройки кластера kubernetes понадобятся следующие docker-образы:
coredns:v1.11.3,
etcd:3.5.16-0,
kube-apiserver:v1.32.3,
kube-controller-manager:v1.32.3,
kube-proxy:v1.32.3,
kube-scheduler:v1.32.3,
nginx:stable,
weave-kube:latest,
weave-npc:latest.