Обнаружение конечных точек Hystrix в Kubernetes (и т. д.)?

Мы переходим на Kubernetes, и многие из наших сервисов используют Hystrix, которые предоставляют поток данных о событиях, отправленных сервером. используется Turbine и визуализируется Панель управления Hystrix. Я хотел бы реализовать подключаемый модуль обнаружения служб для Turbine, который автоматически обнаруживает наши потоки Hystix, работающие в Kubernetes.

  1. Было бы неплохо использовать метки для этого? т.е. определить метку, которая включает путь к потоку hystrix для каждого модуля с помощью Hystrix?
  2. Если ярлыки не являются хорошей идеей, то что было бы?

person Johan    schedule 06.02.2016    source источник


Ответы (2)


У меня была та же проблема, и я создал небольшой проект для ее решения. по сути, я реализовал класс обнаружения экземпляров hystric для работы с сервисами kubernetes. Вы можете найти мой проект здесь.

Этот проект находится в зачаточном состоянии, поэтому вероятны ошибки. Обратная связь приветствуется.

Спасибо, Раффаэле.

person user3157549    schedule 16.02.2016
comment
Спасибо. На самом деле у меня это тоже работает, просто я хочу избежать состояния. Но в настоящее время я думаю, что это полезно, если вы не используете опрос. - person Johan; 16.02.2016
comment
@joahn, не уверен, что ты имеешь в виду под избеганием состояния. Мой подход заключается в использовании селектора для выбора группы модулей, которые генерируют поток. Нигде нет состояния, если поды меняются, конфигурация адаптируется. Он опрашивает мастера kubernetes для получения списка модулей. - person user3157549; 18.02.2016
comment
У меня нет большого опыта работы с Turbine 1 (я использую Turbine 2), но как в вашем коде обновляется список экземпляров? Я вижу, что вы опрашиваете Kubernetes только один раз? Что происходит, когда модуль останавливается и, следовательно, его необходимо удалить из списка экземпляров, или если создается новый модуль и его необходимо добавить? - person Johan; 18.02.2016
comment
@Johan, код, который вы видите, вызывается турбиной каждую минуту, поэтому список модулей обновляется. Я пытался собрать его для turbo2, но застрял, похоже, не все зависимости от maven опубликованы (пока). - person user3157549; 18.02.2016
comment
О, тогда это определенно сработает, но я не думаю, что Turbine 2 делает это. Вы возвращаете Observable с StreamAction, который состоит из URL-адреса и того, был ли URL-адрес ДОБАВЛЕН или УДАЛЕН. Turbine2 находится в центральном Maven (но, к сожалению, это не та версия, которая поддерживает базовую аутентификацию, которую я использую, и это мешает мне открыть исходный код). Может быть, нам стоит сотрудничать на GitHub? :) - person Johan; 18.02.2016
comment
Буду рад сотрудничеству. Что мне нужно сделать, чтобы вы могли работать над моим проектом на github? Извините, я не знаком с процессом. - person user3157549; 18.02.2016

Как насчет того, чтобы сделать Hystrix сервисом Kubernetes? Kubernetes предлагает два способа обнаружения сервисов: https://github.com/kubernetes/kubernetes/blob/master/docs/user-guide/services.md#discovering-services

person caesarxuchao    schedule 06.02.2016
comment
Хм, я не думаю, что это сработает. Мне нужно подключиться к каждому отдельному модулю, так как меня интересует поток для каждого модуля, а не для службы. - person Johan; 08.02.2016
comment
безголовая служба не использует VIP, но все же дает вам группировку на основе DNS. - person Tim Hockin; 12.02.2016
comment
вы можете получить адрес модуля, запросив у apiserver конечные точки службы, URL-адрес будет ‹основной URL-адрес›/api/v1/namespaces/‹namespace›/endpoints/‹service name›. Также обратите внимание, что конечные точки являются динамическими. - person caesarxuchao; 12.02.2016