Size: a a a

OpenShift - русскоязычное сообщество

2021 September 09

AS

André Strelnikov in OpenShift - русскоязычное сообщество
зачем?
источник

AS

André Strelnikov in OpenShift - русскоязычное сообщество
безголовый сервис это вообще не про то
источник

AS

André Strelnikov in OpenShift - русскоязычное сообщество
все должно работать и так
источник

AK

Alexander Katelin in OpenShift - русскоязычное сообщество
А как тогда роут с антоцией roundrobin, балансирует по  подам, минуя clusterIp service?
источник

AK

Alexander Katelin in OpenShift - русскоязычное сообщество
У него же при резолве service получится только один clusterIp
источник

AK

Alexander Katelin in OpenShift - русскоязычное сообщество
А безголовый сервис отдаст ему все эндпоинты подов или это не так работает?
источник

AS

André Strelnikov in OpenShift - русскоязычное сообщество
Роут смотрит на сервис. Сервис - это логический балансер.
источник

AS

André Strelnikov in OpenShift - русскоязычное сообщество
позволю себе процитировать собственную доку:
источник

AS

André Strelnikov in OpenShift - русскоязычное сообщество
Если не нужна балансировка или выделенные IP для каждого сервиса - можно создать "безголовый" сервис. Для него:

не создается ClusterIP
не выполняется балансировка нагрузки
не выполняется проксирование
Для таких сервисов DNS настраивается автоматом, в зависимости от того, с селекторами они созданы или нет.

С селекторами - это значит endpoint controller создает записи конечных точек в API и изменяет настройки DNS так, чтобы возвращать записи DNS типа A, указывающие прямо на поды, на которых запущен этот сервис.

Без селекторов - эндпойнт контроллер не создает записи. Для сервисов типа ExternalName - DNS-сервер создает записи CNAME, для других - A-записи для всех конечных точек, с теми же именами что и сервис.

Создать безголовый сервис просто - в конфиге просто не нужно указывать для сервиса параметр ClusterIP: None

Если обращаться к обычному сервису по имени - DNS вернет один IP-адрес кластерного IP.

Если к безголовому - то вернется набор IP отдельных подов.

$ dig frontend-headless.test A +search +short
172.17.0.3
172.17.0.6
источник

VR

Vadim Rutkovsky in OpenShift - русскоязычное сообщество
https://docs.openshift.com/container-platform/4.8/rest_api/network_apis/route-route-openshift-io-v1.html

When using roundrobin scheduling the portion of requests that go to each backend is the backend weight divided by the sum of all of the backend weights. When the backend has more than one endpoint the requests that end up on the backend are roundrobin distributed among the endpoints

то есть тип сервиса не важен, его Endpoint будет использоваться
источник

AK

Alexander Katelin in OpenShift - русскоязычное сообщество
А, вот как работает. А по умолчанию route без анотации roundrobin просто перенапрааляет на service который рандомно выбирает под?
источник

VR

Vadim Rutkovsky in OpenShift - русскоязычное сообщество
насколько я понял - да, оно перенаправляет на ClusterIP, который их кэширует и не полностью рандомен емнип
источник

AK

Alexander Katelin in OpenShift - русскоязычное сообщество
Там получается iptables как я понял , который перенаправляет с clusterIp на один выбранный любой ip пода, а где он кеширует?
источник

VR

Vadim Rutkovsky in OpenShift - русскоязычное сообщество
источник

AK

Alexander Katelin in OpenShift - русскоязычное сообщество
Мм, спасибо за ответы
источник

АС

Андрей Суковицын... in OpenShift - русскоязычное сообщество
Что-то подобное делал в маилру - подкидывал второй диск, загружался, запускал инсталляцию из консоли. В качестве диска для установки выбирал тот, который подкинул. После установки выключал машины и менял диски местами.
источник

АС

Андрей Суковицын... in OpenShift - русскоязычное сообщество
Ну или pxe со всеми пирогами
источник

LT

Leonid Titov in OpenShift - русскоязычное сообщество
Роут не использует сервис для направления трафика. Он берет эндпоинты и прописывает их сразу в бэкенды хапрокси.
Кубпрокси при этом не используется вовсе.
источник

AK

Alexander Katelin in OpenShift - русскоязычное сообщество
Это во всех случаях, или только когда у нас анотация balance: roundrobin стоит в роуте?
источник

LT

Leonid Titov in OpenShift - русскоязычное сообщество
Во всех
источник