Подготовка внутренней инфраструктуры

Подготовка внутренней инфраструктуры включает:

  • установку 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-контейнере:

  1. Создайте файл docker-compose.yml.

  2. Запустите 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 репозиториев выполните действия:

  1. Перейдите в раздел «Server administration and configuration» в веб-интерфейсе Nexus. Далее в меню слева выберите раздел «Repositories».

  2. В открывшемся разделе нажмите на кнопку Create repository.

  3. Из списка выберите нужный тип репозитория — docker (hosted), apt (hosted) или raw (hosted).

  4. В открывшемся меню задайте параметры и сохраните настройки репозитория.

Во внутренний apt-репозиторий необходимо загрузить следующие пакеты:

  1. conntrack iptables containerd socat - для установки kubernetes и его компонентов.

  2. keepalived haproxy nginx - для настройки балансировки и отказоустойчивости.

  3. docker-ce git curl net-tools telnet jq - для настройки инфраструктурных сервисов DLH.

Во внутренний raw-репозиторий необходимо загрузить:

  1. CNI-plugin (Container Networking Interface) для настройки сетевого взаимодействия внутри kubernetes.

  2. crictl для установки и настройки среды исполнения контейнеров.

  3. утилиты kubeadm и kubelet для установки и настройки кластера kubernetes.

  4. утилиту kubectl для управления кластером kubernetes.

  5. утилиту 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.