Должен ли я зарегистрировать сервис pod или kubernete, чтобы консультироваться с кластером kubernete s?
Я развернул оцелота и консула в кластере Куберне. Ocelot выступает в роли шлюза API, который будет распространять запрос во внутренние службы. А консул отвечает за обнаружение услуг и проверку работоспособности. (Кстати, я размещаю консула в кластере Куберне после официального документа консула).
И мой сервис (то есть asp.net core webapi) также развернут в кластере kubernetes с 3 репликами. Я не создал сервисный объект kubernete, так как эти модули будут поглощены только оцелотом, который находится в том же кластере.
Архитектура выглядит примерно так:
ocelot
|
consul
/\
webapi1 webapi2 ...
(pod) (pod) ...
Кроме того, IMO, консул может отменить регистрацию модуля (webapi), когда модуль мертв. так что я не вижу необходимости создавать объект службы kubernete
Теперь мой вопрос: правильно ли регистрировать каждый модуль (webapi) у консула при запуске модуля? Или я должен создать сервисный объект kubernete перед этими модулями (webapi) и зарегистрировать сервисный объект консулу?
1 ответ
Headless Service
это ответ
Окружающая среда Kubernetes носит более динамичный характер.
отменить регистрацию службы, когда контейнер мертв
да
Стручки Kubernetes смертельны. Они рождаются, и когда они умирают, они не воскресают. В то время как каждый модуль получает свой собственный IP-адрес, даже на эти IP-адреса нельзя полагаться как стабильные с течением времени. Сервис Kubernetes - это абстракция, которая определяет логический набор модулей и обеспечивает стабильный IP
Вот почему рекомендуется использовать headless service
что в основном вписывается в эту ситуацию. Как они упоминали в первой строке в документах
Иногда вам не нужна или не нужна балансировка нагрузки и один IP-адрес службы. В этом случае вы можете создавать "безголовые" службы, указав "None" для IP-адреса кластера (.spec.clusterIP).
безголовый сервис не получает ClusterIP
, Если вы делаете nslookup
на безголовом сервере он разрешает все IP-адреса модулей, которые находятся в режиме безголового обслуживания. K8s позаботится о добавлении / управлении IP-адресом модуля в режиме безголового обслуживания. Пожалуйста, для более подробной информации. И я верю, что вы можете зарегистрировать / предоставить название безголового сервиса в Cosule.
- Пожалуйста, обратитесь к этому блогу для подробного здесь
Update1:
Пожалуйста, обратитесь к этому видео на Youtube. Может дать вам некоторую идею.(Даже я должен смотреть это..!!)