Вход | Регистрация
 

1С Web сервер для Linux развернуть в Kubernetes?

1С Web сервер для Linux развернуть в Kubernetes?
Я
   pvase
 
23.02.21 - 14:02
Здравствуйте. Есть задача перевести сервер 1С на  Linux в Kubernetes. Делал ли кто такое, это возможно? Если есть какая-то информация относительно этого поделитесь пожалуйста. Спасибо.
 
 Партнерская программа EFSOL Oblako
   fisher
 
1 - 23.02.21 - 14:08
А сервер СУБД?
   fisher
 
2 - 23.02.21 - 14:08
Отдельно жить остается?
   fisher
 
3 - 23.02.21 - 14:25
Если я правильно понял, то от тебя примерно это хотят? http://catalog.mista.ru/1c/articles/1283329/
Там чуваки решали задачу повышения отказоустойчивости веб-сервисов с помощью Kubernetes. Но я так и не понял, как решался вопрос серверных лицензий при запихивании в докер. На прямой вопрос был ответ "Если сервер лицензирования находится в одной подсети, все можно легко организовать, просто прописав маршруты получения этих лицензий". Но это же про клиентские лицензии! Ну и вообще довольно стремно десятки серверов 1С в одном кластере. Его не попучит? :)
   Провинциальный 1сник
 
4 - 23.02.21 - 14:38
Хрень какая-то. В случае использования 1с в архитектуре клиент-сервер с доступом через роль веб-сервера сводится к примитивному ретранслятору и упаковщику. Соответственно, с намного большей вероятностью упадет сам сервер 1с, чем веб-сервер. И городить огород с отказоустойчивым веб-сервером при наличии единой точки отказа в виде кластера 1с как-то нелогично.
А при использовании веб-публикации файловой базы это вообще смешно.
   fisher
 
5 - 23.02.21 - 14:46
(3) +
Блииин! Кажись до меня дошло! Это ж линух! А на линухе до сих пор работает фича, что на одном рабочем процессе и небольшом количестве сеансов платформа не ругается на отсутствие серверного ключа. Для веб-сервисов - идеально. Гениально!
   fisher
 
6 - 23.02.21 - 14:48
Концептуально только один момент мне непонятен. Как именно выполняется балансировка веб-сервисов между инстансами. В идеале бы было не более одного веб-сервиса на инстанс. Но как этого добиться?
   fisher
 
7 - 23.02.21 - 15:07
(6) + Бегло погуглил, вроде как для Kubernetes это типичная задача и все учтено могучим ураганом: https://kubernetes.io/docs/concepts/services-networking/ingress/
   МихаилМ
 
8 - 23.02.21 - 15:13
   fisher
 
9 - 23.02.21 - 15:14
Реально очень красивое решение получается. Веб-процессы бегут изолировано, можно настроить динамическое выделение мощностей под увеличение нагрузки, а если таки ляжет - поднимется автоматом.
Критично только если ляжет менеджер кластера или СУБД. Но это уже такое. Тем паче что для "отдающих" сервисов можно отдельные реплики настроить.
   fisher
 
10 - 23.02.21 - 15:17
(8) Kubernetes и другие виды контейнеров поддерживает плюс виртуалки.
   Почему 1С
 
11 - 24.02.21 - 10:48
Осталось только отладить процесс помещения 1с хозяйства в Docker, на выходных только смотрел митап по поводу настройки контейнера под 1с, что то впечатления - сложно и криво.
https://www.youtube.com/watch?v=kNj5THH5lXI&t=6648s
   Garykom
 
12 - 24.02.21 - 10:51
Сервер 1С под линукс только с Постгрес умеет?
   ДенисЧ
 
13 - 24.02.21 - 10:52
(12) Да.
   Фрэнки
 
14 - 24.02.21 - 10:53
(12) э...
а почему такое спрашиваешь?
   ansh15
 
15 - 24.02.21 - 11:03
(12) Oracle и DB2 тоже можно, но кто ж их специально для этого купит. Експрессы тоже можно, но это даже не смешно.
Так что, фактически -да, PostgreSQL.
   Garykom
 
16 - 24.02.21 - 11:08
(15) Вот это и хотел уточнить

(14) Postgres в реальности на практике не айс, трабл с админством слишком много и разных неприятных глюков
Например ваяешь ты в серверной базе на рабочем компе (без упсы) и херак свет отрубили.
И привет "FATAL: the database system is starting up."
   ДенисЧ
 
17 - 24.02.21 - 11:08
https://v8.1c.ru/platforma/mnogoplatformennost/#1

Особенности рабочих серверов под управлением Linux
не могут взаимодействовать с СУБД Microsoft SQL Server,
   ansh15
 
18 - 24.02.21 - 11:41
(16) С MS SQL такого, конечно, никогда не бывает. Он заботливо сохраняет все данные до следующего включения, ни упс не нужен, ни ионистор на SSD...
   Garykom
 
19 - 24.02.21 - 11:47
(18) гораздо реже такие траблы с MSSQL
и админка у PostgreSQL ужасна через браузер да еще и глючит с восстановлением баз

Короче в проде PostgreSQL вполне нормален если за ним следить, для разработки/отладки не очень.
Речь про последние/свежие версии, со старыми все было сильно лучше когда лет так 10 назад из Java работал
   fisher
 
20 - 24.02.21 - 11:52
(16) Странно. С конфигом не шаманил? Разные глупцы в интернетах советуют отключать упреждающую запись в конфиге типа "для ускорения".
   fisher
 
21 - 24.02.21 - 12:00
fsync (boolean)
Если этот параметр установлен, сервер PostgreSQL старается добиться, чтобы изменения были записаны на диск физически, выполняя системные вызовы fsync() или другими подобными методами (см. wal_sync_method). Это даёт гарантию, что кластер баз данных сможет вернуться в согласованное состояние после сбоя оборудования или операционной системы.
Хотя отключение fsync часто даёт выигрыш в скорости, это может привести к неисправимой порче данных в случае отключения питания или сбоя системы. Поэтому отключать fsync рекомендуется, только если вы легко сможет восстановить всю базу из внешнего источника.
   Garykom
 
22 - 24.02.21 - 12:02
(20) та нет как раз ошибка расхождения упреждающей с основной, оно подождать и обычно запускается, на рабочем сервере это норма, там сбои редки
а вот на своем или домашнем такое поведение слегка бесит, у меня ноут например любит на последних биосах раз/два в неделю вырубаться (точнее перезагружаться) жестко
   Garykom
 
23 - 24.02.21 - 12:04
(22)+ Вот и думал на Oracle или IBM DB2 перейти, там вроде Экспресс/Девелопер версии вполне функциональны
   fisher
 
24 - 24.02.21 - 12:05
(22) Не, ну если СУБД уверена что сбросил данные на диск, а под копотом это не так и данные крашатся при блэкауте, то тут уже не в СУБД дело. Тут любая СУБД скажет "ой".
   Garykom
 
25 - 24.02.21 - 12:07
(24) Дык PostgreSQL долго после ой восстанавливается, я бы предпочел заново базу из бэкапа загрузить а не ждать.
Причем весь сервер того даже новую базу не але
   fisher
 
26 - 24.02.21 - 12:11
(25) Ну, некоторый блеск и нищета опенсорса торчат наружу, это да. Так наплевательски с ним обращаться как с сиквелом не выйдет. В реальном продакшене, как я слышал, на каждую базу отдельный кластер постгревый развертывают. Тогда сразу ряд проблем уходит.
   Йохохо
 
27 - 24.02.21 - 12:15
(26) ну в опенсорц часто путают включение вал с включением фсинк, по этому разные замеры производительности и разброд и шатания)
   fisher
 
28 - 24.02.21 - 12:24
(26) + Во-первых, для кластера целиком из коробки доступны нормальные бинарные бэкапы, во-вторых можно каждую базу затюнить под ее профиль нагрузки. Ну и плюс меньше вероятность, что сразу все базы засуспектятся. В оракле, ЕМНИП, похожая концепция - каждая база обслуживается отдельным набором сервисов. Хотя мое знакомство с ораклом было шапочным, поэтому могу ошибаться.
   Garikk
 
29 - 24.02.21 - 12:27
(26) <Ну, некоторый блеск и нищета опенсорса торчат наружу, это да>
Это не блески и нищета, а отсутствие DBA у тех кто обычно такие СУБД юзает
в оракле глюков не меньше, но обычно их эксплуатируют там где штатный дба есть
   Garykom
 
30 - 24.02.21 - 12:32
(29) чем поможет dba если в PostgreSQL в момент бэкапа низзя средствами 1С конфу/базу/метаданные обновлять
Бэкап то будет хороший а вот база того
 
 
   Garikk
 
31 - 24.02.21 - 12:44
(30) < в момент бэкапа низзя средствами 1С конфу/базу/метаданные обновлять >
а что в какойто базе можно?
   Garykom
 
32 - 24.02.21 - 12:53
(31) Бэкап средствами PostgreSQL проходит в фоновом режиме, работать штатно в 1С в это время можно.
Но если через конфигуратор сделать изменение метаданных или просто типовое обновление конфы запустить и там метаданные в базе меняются то упс.

Т.е. сервер 1С не понимает и не запрещает на PostgreSQL изменение таблиц sql базы, доступ типа монопольный а по факту нет и ибо субд в фоне бэкапит и изменение не проходит и приехали
База то есть но в недоделанном виде и 1С ее больше не хотит понимать
   Garykom
 
33 - 24.02.21 - 12:55
(32)+ На MSSQL подобного поведения не наблюдал, плевать было на время/длительность бэкапов, всегда запускал обновление конф/баз и все ок
На PostgreSQL низзя чтобы пересеклось время бэкапа средствами субд и изменение/обновление конфы
   Garikk
 
34 - 24.02.21 - 12:57
(32) ну как ты сам то считаешь каким чудным образом mssql может обеспечить целостность данных во время бекапа если не приостанавливать операции по базе?
   Garykom
 
35 - 24.02.21 - 12:58
(34) Ты в курсе как бэкапы делаются и целостность данных а конкретно какие данные (по времени) попадут в бэкап?
   fisher
 
36 - 24.02.21 - 12:59
(29) Да-да. Чем сильнее СУБД поворачивается жопой, тем более сильный админ нужен для разворачивания ее лицом.
(32) Интересно.
> База то есть но в недоделанном виде и 1С ее больше не хотит понимать
Не понял. То есть еще и база крашится после такого?
   Garykom
 
37 - 24.02.21 - 13:00
(36) Сама база PosgtreSQL работает, но сервер 1С с ней больше не але, там какие то служебные таблицы не те данные
   ansh15
 
38 - 24.02.21 - 13:05
(37) Как при неудавшемся динамическом обновлении?
   fisher
 
39 - 24.02.21 - 13:08
(37) Другими словами при реструктуризации происходит какой-то сбой, если в этот момент делается бэкап. Прекрасно.
Делать реструктуризацию во время бэкапа это плохая идея. Но ожидалось бы просто отваливание бэкапа, а не базы :)
   Garikk
 
40 - 24.02.21 - 13:08
(35) ну как я себе представляю бекап в mssql
1) ты тыркаешь в бекап
2) отмечается последняя транзакция до
3) все новые транзакции на изменения дублируются в отдельный лог
4) бекап завершается
5) лог из п.3 накатывается на боевые данные
вопрос лишь в том, хватит ли места базе чтобы в этот лог влезали транзакции до тех пор пока бекап не завершился

а в pgsql обычные админы делают pgdump которые такие фокусы не умеет...в итоге ломают консистентность.
я конечно не dba, но сдается мне что схему как с mssql сделать тоже вполне реально
   fisher
 
41 - 24.02.21 - 13:11
(40) Нет отдельного лога. Просто очередная контрольная точка откладывается до завершения бэкапа. То есть на диске остается старое состояние, которое и бэкапится, а все изменения делаемые во время бэкапа остаются в памяти.
   Garikk
 
42 - 24.02.21 - 13:15
(41) ну я тоже самое и описал
<а все изменения делаемые во время бэкапа остаются в памяти.>
я это и назвал отдельным логом.

Памяти может и не хватить, если 50гб изменений залить пока тем база на ленту бекапится...её в любом случае надо кудато скидывать
   Garikk
 
43 - 24.02.21 - 13:15
ну это не суть, я не дба всётаки, важен принцип

а обычные бекап в pg это select * from * > бэкапчик.sql
   Garikk
 
44 - 24.02.21 - 13:16
тут как грится, каков админ такой и результат, на базу тут не стоит гнать
   spiller26
 
45 - 24.02.21 - 13:19
Я тоже хочу попробовать docker, всё никак руки не доходят.
Где-то видел даже под винду докер делали, правда с MySQL, типа для всякой тестовой фигни. (MICROSOFT SQL SERVER DOCKER 1C https://www.youtube.com/watch?v=WhamkTdBldA)
   fisher
 
46 - 24.02.21 - 13:23
(42) Ну, хозяин - барин. Не мне же тебе запрещать называть логом то, что логом не является. Но не ожидай, что тебя с такой гибкой терминологией окружающие будут с полуслова понимать :)
(43) Это издержки pg_dump. Который судя по всему делается тупо по версиям данных в таблицах, а не на страничном уровне. Но вот почему при этом ломается база для кластера - загадка.
Пишут, что pg_basebackup делает "бинарный" бэкап кластера. Но в доке написано, что он использует механизмы репликации. Поэтому я не уверен, что и там этой беды нет. И еще я слышал, что в "энтерпрайзных" поделиях на базе постгреса запилена альтернативная реализация бэкапа. И это "жжжж", очевидно, неспроста.
   fisher
 
47 - 24.02.21 - 13:25
"Но вот почему при этом ломается база для кластера 1С - загадка."
   Garykom
 
48 - 24.02.21 - 13:28
(38) угу, очень похоже
   fisher
 
49 - 24.02.21 - 13:29
Стоп-стоп. А чего там такого пишет при проблемах из-за динамического обновления? Есть точное описание ошибки?
   Garykom
 
50 - 24.02.21 - 13:31
(39) дык меня тоже это прикололо что сама база рухнула, хорошо что хоть бэкап с последними данными поднялся и просто заново обновление накатил
   fisher
 
51 - 24.02.21 - 13:39
(45) В (8) ссылка на видео про докер от ЗлогоБобра, который "наше всё".
   pvase
 
52 - 24.02.21 - 14:37
Все верно. У нас будет 3 среды: 1 - SQL база (находится к кластере серверов MS SQL). 2 - Сервер приложений находиться отдельно, есть главный сервер и дополнительные (типа кластер по нагрузке). 3 - Сервер WEB 1С (UBuntu + Apache все на Кубере).
   pvase
 
53 - 24.02.21 - 14:39
Причем сервер 1С будет на Windows, поэтому проблем с MS SQL не должно возникнуть.
p.s. Лицензирование нас волнует в последнюю очередь в этом вопросе. Главная задача - уйти от терминалов и получить масштибуремое решение по клиентам. У нес сетка по стране разбросана, сейчас все в терминалах, но это очень и очень ресурсоемко и очень и очень немасштибуремо.
   Garykom
 
54 - 24.02.21 - 14:42
(53) Так с сервером 1С зачем несколько веб-серверов то?
   Garykom
 
55 - 24.02.21 - 14:42
(54)+ Я еще понимаю файловый вариант через веб-сервер, когда несколько апачей на разных портах поднимают чтобы в одно подключение к базе не упираться
   Йохохо
 
56 - 24.02.21 - 14:43
(52) Вы оркестровщик с балансировщиком не перепутали?
   pvase
 
57 - 24.02.21 - 14:49
(52) Возможно, в Кубере я несколько дней только, и то по заданию "Партии". У нас проблема в нагрузке на терминальные сервера + их постоянная поддержка, вот и решили уйти от них на WEB, к тому же готовиться большой проект по обменам, сразу переписываем все где можно на API, а тут снова нужен WEB.
   pvase
 
58 - 24.02.21 - 14:51
обмен через Kafka попробуем запустить.
   fisher
 
59 - 24.02.21 - 14:53
(53) Отдельно апачи вы в кубер не засунете. Да и вообще при такой постановке вопроса "кубер" выглядит больше "як примха". Будет больше головняка, чем пользы.
   pvase
 
60 - 24.02.21 - 14:57
(59) Для 1С возможно, для Апача - как раз то что надо. Но мне дали задание разобраться и предоставить возможность работы WEB сервере 1С в Кубере. В Докере нашел но это немного не то.
 
 
   fisher
 
61 - 24.02.21 - 15:05
(60) Да, я затупил. Должно получиться.
   fisher
 
62 - 24.02.21 - 15:17
(57) Вообще, очень странно, что у вас тонкие клиенты создают такую нагрузку на терминальные сервера. Либо у вас не тонкие клиенты (и тогда в веб вы не уйдете), либо основную нагрузку дает не 1С.
   ansh15
 
63 - 24.02.21 - 16:09
(47) Запускал одновременное выполнение реструктуризации таблиц ИБ из ТиИ и pg_dump(однопоточно).
Когда, при реструктуризации, выполняются DROP TABLE, некоторые из них могут быть в состоянии waitig.
Если ожидание слишком долгое, то 1С выдает ошибку конфликта блокировок с завершением работы.
Правда, мне базу испортить не удалось. Наверное, в иных случаях, может и портиться.
   Garykom
 
64 - 24.02.21 - 16:12
(63) ТиИ не портит таблицы а вот обновление с новыми метаданными портит
   Вафель
 
65 - 24.02.21 - 16:12
под каждого клиента веб сервиса отдельный сервер 1с хотите поднимать?
   Garykom
 
66 - 24.02.21 - 16:12
(64)+ Но бэкап должен быть долгий, на большой базе и тормозном сервере
   ansh15
 
67 - 24.02.21 - 16:22
(66) Да, согласен.
1С, в качестве способа обхода, просто предложит так не делать(если у них спросить)
   timurhv
 
68 - 24.02.21 - 16:23
(3) есть механизмы проброса серверных ключей по сети, например USB Redirector. По-моему, клиент под Linux бесплатен.
(5) веб-сервисы не используют лицензию


Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.