Должен ли я зарегистрировать сервис 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. Может дать вам некоторую идею.(Даже я должен смотреть это..!!)

Другие вопросы по тегам