Сервис Kubernetes с одним пакетом из развертывания? - PullRequest
0 голосов
/ 29 августа 2018

У меня есть развертывание k8s с 3-мя модулями, и я настроил службу NodePort для перенаправления SSH (порт 22) на три модуля. Все работает, как и ожидалось, но каждый раз, когда я в SSH, я получаю случайный пакет. Я хотел бы сделать его липким, чтобы я всегда получал один и тот же стручок, но я не уверен, возможно ли это.

Согласно документации , настройка sessionAffinity: ClientIP, вероятно, не будет работать для NodePorts. Я не думаю, что externalTrafficPolicy: Local будет работать, потому что вам нужно использовать сервис LoadBalancer. Я не думаю, что услуги LoadBalancer выполнимы для меня, потому что мне нужно создать сотни из них, и каждый LoadBalancer стоит денег и использует квоту.

Что меня интересует, так это то, возможно ли создать службу, которая указывает не на все 3 модуля в развертывании, а на ровно 1 модуль. Это помогло бы в моей ситуации. Я мог бы вручную прикрепить специальную метку к 1 стручку и установить селектор службы на эту метку, но мне кажется хрупким в случае, если стручок умирает и заменяется.

1 Ответ

0 голосов
/ 29 августа 2018

Одним из способов обойти это было бы создание ваших модулей с использованием StatefulSet вместо развертывания. Тогда ваши стручки будут иметь детерминированные имена, и при перезапуске сохранят свое имя. Таким образом, вы можете создать сервис, который указывает на myapp-0, myapp-1 и т. Д., И быть уверенным, что прерывания, хотя и будут прерываться на некоторое время, когда модуль перепланируется / перезапускается, также вернутся в рабочее состояние. Вам потребуется автоматизировать создание такого сервиса при масштабировании StatefulSet, и ваша «привязанность» будет зависеть от порта сервиса, к которому подключается клиент (не может иметь несколько сервисов на одном порту)

Тем не менее, это определенно не хороший шаблон для подражания. Вы должны убедиться, что ваш клиент может подключиться к любому из модулей и предоставить ему требуемое состояние с помощью другой службы, которую они все используют, или общего тома RWX, если речь идет о файлах.

...