Chrome
много нод? Заранее спасибо за ответы
Dmytro
https://cloudplatform.googleblog.com/2018/03/introducing-Agones-open-source-multiplayer-dedicated-game-server-hosting-built-on-Kubernetes.html (может было, ещ ене дочитал чат)
Logan
траблов много было, какую версию пробовали?
centos 7. Проблем было очень много, мне надоело воевать с мельницами. Ubuntu 16 LTS
Logan
лаборатория, 8 нод
Chrome
а почему на дебиан 9? core os пробовали?
Logan
а почему на дебиан 9? core os пробовали?
стабильность + достаточно свежие версии ПО. Специфика лаборатории не позволяет мне использовать загрузку по сети, по этому CoreOS я использовать не могу
Chrome
Спасибо! будем думать)
Dmytro
Но может есть автомагический путь
баш скриптом выгребать имена эндпоинтов из headless сервиса, вот только в случае statefull set под стартуют один за других и поэтому и в headless они будут один за другим регаться. Какой-то магии встроенной нет (да и как она может быть, ведь statefull set может динамически менять количество членов?), только в каком-то скрипте или самому приложению поллить этот headless сервис и менять конфиг
Logan
Спасибо! будем думать)
тут лучше просто попробовать. Может у вас и CentOS зайдет в этой роли, я же не знаю... Может вам NIST-сертификация нужна
Andor
Скоро 18.04 выйдет ещё
Andor
В общем прямщас оно работает
Logan
мне не нравится нестабильность убунты. По этому я хочу от нее отказаться в пользу дебиана
Dmytro
тут я вступаю на зыбкий лед предположений. Если нода только под кубером, то реквест будет всегда гарантирован.
только учтите что в случае ЦПУ это CFS квота, поэтому может быть всякое в теории если есть какие-то процессы на хосте которые управляют CFS. Но в общем случае CFS должен дать столько ЦПУ сколько написано в requests или больше если есть свободные циклы
Anton
Скрипту ещё доступ давать на чтение апи кубера, ну нафиг
разве нельзя из headless service чреез dns выгрести адреса?
Andor
Не знаю
Dmytro
А зачем дашборды в конфигмапе хранить, они ж в базе хранятся?
как зачем? обычно их генерируют а не вручную накликивают
Anton
VolumeScheduling: Enable volume topology aware scheduling and make the PersistentVolumeClaim (PVC) binding aware of scheduling decisions. It also enables the usage of local volume type when used together with the PersistentLocalVolumes feature gate. в 1.9 появился такой feature gate и я как то сразу столкнулся с тем что моему поду на машине А выдали localstorage вольюм с ноды Б
Anton
может мне раньше везло, я хз
Dmytro
Скрипту ещё доступ давать на чтение апи кубера, ну нафиг
хардкод вс давать readonly доступ скрипту - ну тат каждый решает сам
Anton
ну можно и без api обойтись запросами к dns. я так понял что для headless должны адреса подов возвращаться
Anton
только это будет состояние на момент старта
Anton
хардкод норм =)
Dmytro
разве нельзя из headless service чреез dns выгрести адреса?
кстати, если количество нод динамически не меняется то можно вот такой скрипт юзать (я для монги юзаю) ## ## Generate statefulset peer hostnames in the form $(statefulset name)-$(ordinal) ## and from host names and knowing service name generate pod dns names. ## I.e. for replicas=3 pod hostnames will be: ## $(statefulset name)-0 ## $(statefulset name)-1 ## $(statefulset name)-2 ## and pod dns names will be: ## $(statefulset name)-0.$(service name).$(namespace name).svc.cluster.local ## $(statefulset name)-1.$(service name).$(namespace name).svc.cluster.local ## $(statefulset name)-2.$(service name).$(namespace name).svc.cluster.local ## ## Links: ## https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-identity ## https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#deployment-and-scaling-guarantee ## https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#srv-records ## function get_peers() { local stateful_set_name=${1:?} local service_name=${2:?} local replicas=${3:?} local my_dns_name=${4:?} local namespace_name=${5:?} local peers_dns_names="" for i in $(seq 0 $(($replicas - 1))); do local peers_dns_name="$stateful_set_name-$i.$service_name.$namespace_name.svc.cluster.local" if [[ "$peers_dns_name" != "$my_dns_name" ]]; then peers_dns_names="$peers_dns_names $peers_dns_name" fi done echo "$peers_dns_names" }
Anton
когда знаешь какие имена ожидаются, для statefulset, почему б и нет. ну такой хардкод тоже =)
Andor
только это будет состояние на момент старта
Ну первый сервис и должен подняться, чтобы хоть что-то вернулось
Dmytro
ну +- да, тут просто эти все переменные прокидываются у меня через ENV внутрь пода а генерируется хелмом
Vadim
centos 7. Проблем было очень много, мне надоело воевать с мельницами. Ubuntu 16 LTS
А что за проблемы или уровня "как это делать в центосе не знаем"?
Logan
А что за проблемы или уровня "как это делать в центосе не знаем"?
многие инструменты деплоймента ломаются, чинить долго. Странное поведение докера (вплоть до крэша хоста). Странное поведение сети. Неделю я боролся – потом мне надоело. С CentOS я общаюсь с 4-й версии (как и с ее побратимом SciLinux), так что в принципе тыркать ее умею. Просто конкретно центось конкретно 7-я с докером не особенно дружить, это надо иметь ввиду
Maksim
centos не пошел совсем, не рекомендую
Простите не пошёл для k8s?
Maksim
Почему у меня дружит при нагрузке ~30 подов/нода?
Vadim
дефолтно оно всё дружит, тут скорее вопрос что за докер, что за нагрузки, номера багов
Maksim
сейчас у меня 10 форкеров 3 мастера
Maksim
30 подов/нода
Logan
Простите не пошёл для k8s?
у меня – не пошел. Я же писал выше – надо пробовать.
Maksim
Cenot OS7.3
Maksim
Полёт в штатном режиме. на работы по выхам ещё ниразу не ездил. полёт длится уже месяцев 9
Maksim
Я его да же с 1.5.2 до 1.9.3 обновил в полёте без даун тайма.
Logan
впечатляет. а как etcd обновили?
Logan
мне пришлось останавливать
Maksim
Сначала было на —compabilty
Maksim
а потом перекинул базёнку и переключил api
Maksim
-2 минуты жизни кластера-)
Logan
то есть даунтайм все-таки был. А то я уж совсем удивился
Khramov
А вы etcd в кубе что ли держите?
Andor
в 18.04 тоже свежее ядро будет %)
Logan
в debian 9 - 4.9.0, вполе свежее
Logan
можем устроить опрос, как вариант :)
Andor
полет в нескольких продакшенах - все дружит
начиная с какой версии центоси?
Roman
с докером - с 7
Andor
в 7.1-7.3 было грустно
Roman
7.2
Roman
а, вру, даже 7.1
Andor
и какая там версия ядра и какое хранилище под докером?
Roman
ядро какое шло рядом, то и было
Roman
хранилища - оверлей
Roman
потом dm-thinpool
Andor
у нас было всё грустно до перехода на ядро из elrepo
Roman
но это без кубов все
Roman
чистый докер
Andor
кубы как бы ваще пофигу
Andor
ну после перехода на ядро из elrepo тоже было грустно, но по-другому
Andor
говорят в 7.3+ что-то бэкпортили в ядро и стало норм
G72K
в debian 9 - 4.9.0, вполе свежее
В последних, xfs copy on write вывели из экспериментального состояния, с последними изменениями в docker vfs драйвере должна быть бомба - самый лучший, самый простой, самый надежный, самый эффективный и самый быстрый storage driver
Andor
vfs ftw
G72K
В последних ядрах, 4.16 кажется
Andor
а его кстати задокументировали?
Logan
а сломаный tar в xfs + overlayfs2 починили уже?
Andor
он был недокументированым раньше
G72K
а сломаный tar в xfs + overlayfs2 починили уже?
Ну если у вас номер баги есть, можете и сюда кинуть и сами заглянуть проверить :) вы на центосе пробовали? Там требования к xfs же есть, , которые только в 7.4 бэкпортнули
Logan
я спрошу у Максима, он на этом круто обжегся
Vadim
"сломанный tar" видимо обозначает что-то другое, а не "tar не работает", потому что опеншифт tar активно юзает. Без номера баги и деталей это дилетантство или FUD