Maksim
они размазаны по кластеру
Maksim
и в один прекрасный момент одна из нод теряет связь с БД.
Maksim
и того у тебя минмум 1 под не может обрабатывать инфу
Maksim
при 8 подах это 12.5% отказов в обслуживание
Oleksandr
ну мониторить коннект к внешней бд
Oleksandr
или на внешней БД мониторить коннекты
Maksim
А дальше что?
Maksim
что с приложением то делать?
bebebe
ситуацию я понял. вы вопрос сформулируйте
Maksim
как k8s обеспечить отсутвия 12.5% отказа в данном случае?
Oleksandr
ну к примеру в приложение встроить проверку к бд и если ее нет - алертовать и говорить о том что оно не рабочее
bebebe
пока что мой ответ: если под потерял доступ к данным, на него надо перестать слать запросы
Oleksandr
а почему вы эту задачу на кубер возлагаете?
Maksim
Vitalii
service discovery через kube-apiserver не хуже dns srv например в консуле. Один чёрт переделывать, если платформа меняется.
bebebe
итак...?
Maksim
Maksim
ВЫ не проверяете коннект к БД, соотвенно кубер не знает что под потерял связь с БД и не может осущевтлять обработку данных. а значит продолжает слать трафик
bebebe
еще раз, если под потерял доступ к базе - на него нужно перестать слать запросы
это верное утверждение
bebebe
если под после дестроя поднимается по каким-то причинам на той же ноде, что потеряла коннект до базы, он не пройдет readiness пробу и не включится
bebebe
нагрузка пойдет на другие поды этого сервиса на других нодах (в общем случае, если нет селекторов которые стреляют себе в ногу)
Maksim
bebebe
я не говорил, а вы?
Maksim
и я не говорил) Более того я точно знаю, что она как и health работает постоянно
Maksim
и если health отвечает за рестарт контейнера, то readness отвечает за подачу трафика на под
Maksim
health проба отвечает на вопрос Жив ли под Readness отвечает на вопрос, можно ли давать ему трафик
bebebe
зачем вы это пишите?
Maksim
за тем что коннект к базе нужно проверять в readness пробе
bebebe
окей,я подозреваю что мы не одинаково понимаем фразу: можно в своём приложении хэндлер написать, который проверяет нужные вещи: например что кэши некие прогреты для readinessProbe
Maksim
Возможно
Victor
Где в Helm крутить что попадет в
entries:
redis:
- apiVersion: v1
urls:
- http://127.0.0.1:8879/charts/redis-0.1.0.tgz
helm repo index redis --url CUSTOM_URL
Разве не CUSTOM_URL должен туда попадать?
Victor
Вот про это конкретно - http://127.0.0.1:8879/charts
Victor
а, локальный репозиторий генериться на команде package, думал на шаге index
плохо мне дается helm
Anatoliy
Народ, ткните пожалуйста носом что я не так делаю?
Запускаю : ansible-playbook -i inventory/inventory.cfg cluster.yml
Выдает:
TASK [bootstrap-os : Remove require tty] ***************************************
Tuesday 14 November 2017 21:03:19 +0300 (0:00:00.026) 0:00:01.718 ******
и дальше замирает и останавливается, на сервере в этот момент ничего не делается
Anatoliy
У меня есть подозрение что оно туда не доходит, может ему где то явно надо ключ подцепить что бы он залогиниться смог на сервер?
bebebe
ansible -i /path/to/inventory.cfg -m ping all
bebebe
@Visteras ^^^
Anatoliy
@Visteras ^^^
SSH Error: data could not be sent to the remote host. Make sure this host can be reached over ssh
Anatoliy
Видимо всё же где то ошибся( буду искать дальше)
Anatoliy
народ, я прописал cgroup_enable=memory swapaccount=1 в grub, смотрю на docker info | grep group и вижу
Cgroup Driver: cgroupfs
WARNING: No cpu cfs quota support
WARNING: No cpu cfs period support
Но варнингов быть вроде не должно?
Anatoliy
Сталкивался кто?
Logan
коллеги, nginx ingress научился работать с доменными именами? Или без шансов?
Sergey
Есть плагин экстернал днс
Sergey
Он умеет делать запись в тот же самый роут53
Logan
я не про это. Траефик позволяет вывесить несколько ингрессов на один 80 (к примеру) порт, различая их по имени. Nginx так раньше не умел. Теперь умеет?
G72K
Oleksandr
+
Logan
пример из документации можно? в кубе 1.6 не умел точно
Oleksandr
вы про nginx?
Logan
да
Oleksandr
name based virtual host не?
Oleksandr
http://nginx.org/ru/docs/http/request_processing.html
Logan
пример документации если можно. Чтобы я был уверен, что мы оба говорим об одном и том же
Oleksandr
выше
Logan
пример именно с кубом и с nginx в роле ingress-controller.
Logan
я не настолько слабо подготовлен
Oleksandr
https://kubernetes.io/docs/concepts/services-networking/ingress/#name-based-virtual-hosting
Logan
именно то, что надо, спасибо. Научился-таки, здорово
Oleksandr
👍
Logan
осталось разобраться, как туда дописывать свои правила - и будет вообще огонь решение 🙂
Anatoliy
Oleksandr
update-grub && reboot
Anatoliy
Собственно по этой причине и спрашиваю..(
Igor
пробовал, ничего не изменилось
может, у тебя какой-нибудь Debian Jessie или другой ультра-консервативный дистрибутив, который просто это не поддерживает в ядре?
Khramov
Alex
Ребята, а можно к вам с глупыми вопросами? Как значения из environments (например из DaemonSet) использовать в подключаемом к поду ConfigMap?
Anton
обычно из configmap получают значение для environments
Anton
тоесть берут ключ configmap и используют как значение для какого то env
Anton
https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/#define-a-pod-environment-variable-with-data-from-a-single-configmap
Alex
У меня в configmap конфигурация для filebeat'а. Очень хочется подсовывать туда хостнейм эластика
Anton
как тут описано
Anton
configmap статичный ведь. используется "как есть". можно задать его сразу с нужным адресом
Alex
Ага, значит я не в ту сторону думаю. Спасибо
Rinat
всем привет,
у кого была такая ошибка?
etcd invoked oom-killer: gfp_mask
Rinat
kubespray/azure