Создаем требуемые папки
mkdir /home/support/1.33 chmod 0755 /home/support/1.33 mkdir /home/support/kubernetes/ chmod 0755 /home/support/kubernetes mkdir /home/support/1.33/docker chmod 0755 /home/support/1.33/docker
Закачиваем папку docker в /home/support/1.33/ и содержимое папки k8s-latest в /home/support/kubernetes/ из \\ukm5-fs\builds\mintukm-server\release.
Проверка сетевых адаптеров и настройка DNS
Интерфейс eth0 внутренняя сеть клиента, статический.
Интерфейс eth1 (172.17.8.101) должен быть подключен в изолированную сеть (DMZ).
Интерфейс docker0 автоматический.
Настраиваем DNS в докере, чтобы сервер нормально общался в сети клиента со службами внутри себя и вне себя:
sudo mcedit /etc/systemd/system/docker.service.d/docker-dns.conf
Если у клиента нет своих DNS-серверов, можно оставить общедоступные:
Содержимое docker-dns.conf
[Service]
Environment="DOCKER_DNS_OPTIONS=\
--dns 10.100.0.3 --dns 8.8.8.8 --dns 8.8.4.4 \
--dns-search default.svc.cluster.local --dns-search svc.cluster.local \
--dns-opt ndots:2 --dns-opt timeout:2 --dns-opt attempts:2 \
"
10.100.0.3 – системный кубовый DNS, этот параметр не менять.
Пример правильной настроенной сети:
Вывод ifconfig
docker0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 172.18.0.1 netmask 255.255.0.0 broadcast 172.18.255.255
ether 02:42:34:f3:65:60 txqueuelen 0 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet <ip-адрес_клиента> netmask 255.255.255.0 broadcast <ip-шлюза_клиента>
inet6 fe80::20c:29ff:fec4:dfdd prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:c4:df:dd txqueuelen 1000 (Ethernet)
RX packets 13226845 bytes 6830028149 (6.3 GiB)
RX errors 0 dropped 4 overruns 0 frame 0
TX packets 2100608 bytes 157899252 (150.5 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.17.8.101 netmask 255.255.255.0 broadcast 172.17.8.255
inet6 fe80::20c:29ff:fec4:dfe7 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:c4:df:e7 txqueuelen 1000 (Ethernet)
RX packets 9069806 bytes 697074353 (664.7 MiB)
RX errors 0 dropped 36 overruns 0 frame 0
TX packets 480 bytes 20480 (20.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 54962423 bytes 9159436515 (8.5 GiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 54962423 bytes 9159436515 (8.5 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Настройка второго диска
Пропускаем, если диск один.
Проверка запуска MariaDB и установка HAproxy
sudo systemctl restart mariadb sudo systemctl enable mariadb sudo systemctl status mariadb
1. Устанавливаем HAproxy (чтобы видеть айпишники касс):
cd /opt/compose sudo yum install haproxy
2. Копируем конфиг текущего HAproxy в свежеустановленный (перезаписать файл, при необходимости):
sudo cp /opt/compose/cfg/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg
3. Останавливаем Docker-Compose:
sudo docker-compose down
4. В текущем файле /etc/haproxy/haproxy.cfg комментируем кусок про frontend stats (c 216 строки до конца):
sudo mcedit /etc/haproxy/haproxy.cfg
4. Проверяем текущий конфиг HAproxy на валидность:
haproxy -c -f /etc/haproxy/haproxy.cfg
Ответ – Configuration file is valid.
Если есть ошибки – смотрим, чем вызваны, правим, проверяем снова.
5. Запускаем HAproxy:
sudo systemctl start haproxy sudo systemctl status haproxy
6. Удаляем DC из автозагрузки:
sudo mcedit /opt/compose/docker-compose.yaml
Меняем параметр restart на no:
Сохраняем файл. При следующей загрузке Docker-Compose не стартует контейнер с HAproxy.
7. Добавляем HAproxy в загрузку:
sudo systemctl enable haproxy
Разворачивание экосистемы
cd /opt/ecosystem sh _create-ecosystem.sh
Требуется ожидать установки и смотреть вывод статуса служб:
kubectl get pods -A -o wide
Prometheus не нужен, его можно удалить.
Настройка внешнего доступа к kafka
Отредактируйте файл kube-configmap.yaml:
sudo mcedit /opt/ecosystem/kafka/kube-configmap.yaml
Нужно вписать актуальный IP/FQDN клиентского сервера УКМ5 eth0 в соответствующих строчках:
Содержимое файла kube-configmap.yaml
KAFKA_CFG_ADVERTISED_HOST_NAME: "ip-сервера или dns-hostname"
KAFKA_CFG_ADVERTISED_LISTENERS: "INTERNAL://:9093,CLIENT://:9092,EXTERNAL://ip-сервера или dns-hostname:39094"
cd /opt/ecosystem/kafka/ sh _restart-kafka-zookeeper.sh
Загружаем докеры:
cd /home/support/1.33/docker/
sudo docker load < admin-impl-1.33.5 sudo docker load < clickhouse-1.33.5 sudo docker load < converters_service-1.33.5 sudo docker load < db-migration-srvdata-1.33.5 sudo docker load < db-migration-srvsales-1.33.5 sudo docker load < export-doc-api-1.33.5 sudo docker load < flush-queue-1.33.5 sudo docker load < frontend-1.33.5 sudo docker load < import-doc-api-1.33.5 sudo docker load < import-export-api-1.33.5 sudo docker load < jsreport-1.33.5 sudo docker load < licensing-impl-1.33.5 sudo docker load < login-impl-1.33.5 sudo docker load < logs_cleaner-1.33.5 sudo docker load < monitoring-impl-1.33.5 sudo docker load < ntp_timezones-1.33.5 sudo docker load < pos_agent-1.33.5 sudo docker load < public-api-1.33.5 sudo docker load < receipts_cutter-1.33.5 sudo docker load < receipt-search-appender-1.33.5 sudo docker load < receipt-search-cleaner-1.33.5 sudo docker load < report-data-pump-1.33.5 sudo docker load < tradedata_processing-1.33.5 sudo docker load < transport_service_nginx-1.33.5 sudo docker load < transport_service-1.33.5
Необходимо отредактировать транспорт – DOWNLOAD_URL_PREFIX, заменить ukm5-qa-server на ukm5-server:
sudo mcedit /home/support/kubernetes/configmap-common/configmap-common.yaml
Если используется TM ( модуль интеграции) – отредактировать PRODUCE_ITEMS_DOCUMENT: "false", иначе – true:
sudo mcedit /home/support/kubernetes/tradedata-processing-import/configmap.yaml
sudo su cd /home/support/kubernetes ./_start-base.sh
Запускаем и ждем ~10-50 минут.