Как внедрить nodePort, сгенерированный службой, в развертывание? - PullRequest
0 голосов
/ 14 января 2019

Я пытаюсь перенести приложения на основе Netflix OSS в Kubernetes, поэтому я нашел идеальный способ создать службу типа NodePort и зарегистрировать приложения в Eureka. Так что я делаю eureka.hostname = hostIP и eureka.nonSecurePort = nodePort

Вот что я сделал -

  1. Создание службы для примера приложения-службы с типом службы NodePort.

  2. Внедрить порт узла в ConfigMap, выполнив команду kubectl create configmap saas-событие-прием-config --from-literal = nodePort = $ (kubectl get -o jsonpath = "{. Spec.ports [ 0] .nodePort} "services sample-app-service) (Вопрос: есть ли способ указать это как yaml?)

  3. Обратитесь к nodePort, используя configMapKeyRef в yaml развертывания.

Проблема, с которой я сталкиваюсь, заключается в автоматическом развертывании. Поэтому в идеале я хотел бы развернуть приложение, используя один файл развертывания, который включает в себя Service, ConfigMap и Deployment. Есть ли способ, которым я могу сделать это изящно? Или есть альтернативное предложение для этого.

Я также смотрю на helm, но даже если я использую --set для передачи nodePort в ConfigMap, выполнив команду (kubectl get -o jsonpath = "{. Spec.ports [0] .nodePort}" services services -app-service) сначала необходимо развернуть Сервис, чтобы ConfigMap получил значение nodePort. Есть ли способ, которым я могу сделать это?

1 Ответ

0 голосов
/ 14 января 2019

Что вы можете сделать, это указать порт из диапазона портов узла службы (по умолчанию 30000-32767) в файле yaml службы под ports с именем nodePort. Тогда вы будете знать nodePort заранее. Вы можете использовать helm для передачи в nodePort для использования в качестве параметра, чтобы этот параметр использовался в yaml службы, а также в ваших ConfigMap и Deployment.

...