0

У меня есть несколько кластеров кубернетов, у которых есть балансиры нагрузки на основе Google (входные фунты).Имя kubernete сгенерировано Google cloud ingress load balancer

Итак, прямо сейчас, чтобы получить доступ к моим кластерным службам k8s, мне просто нужно выполнить ping публичный IP, заданный $ kubectl get service, прохладно.

Моя проблема заключается в том, что иногда мне нужно срывать/создавать кластеры, перенастраивать службы, этим службам также могут потребоваться SSL-сертификаты очень скоро, а также создавать также легко воспроизводимые сборки кластеров/сервисов (для облачных разработчиков!).

Вопрос прост: могу ли я вместо того, чтобы иметь входной балансировщик нагрузки IP, имеет хост-адрес балансира входа?

Что-то вроде ${LOAD_BALANCER_NAME}.${GOOGLE_PROJECT_NAME}.appspot.com было бы uber awesome.

+0

Почему вы думаете, что нужно снести кластеры часто? Вы создаете отдельный кластер для каждого Dev и разрываете их, когда не используются для экономии по стоимости? –

+0

Да, чтобы изменить кластерные области или тип машины, я должен снести весь кластер и создать новый с помощью этого скрипта: https://gist.github.com/azr/13e72daa9ec968f52d5d Это очень часто происходит в dev и это очень больно, если у меня есть redeploy зависимости, чтобы изменить ip :) – Azr

ответ

1

Интеграция Kubernetes с облаком Google DNS - это запрос функции, для которого нет немедленной временной шкалы (это произойдет, я не могу комментировать, когда). Однако вы можете создавать записи DNS со статическим ip loadbalancer.

Если я правильно понял вашу проблему, вы используете L4 loadbalancer (service.Type = LoadBalancer) и хотите удалить службу/узлы и т. Д. И продолжить использовать тот же IP-адрес (потому что у вас есть DNS-записи для него). Другими словами, вы хотите, чтобы loadbalancer не привязывался к жизненному циклу службы. Это возможно с помощью L7 loadbalancer [1] & [2] или путем воссоздания службы с существующим IP [3].

Обратите внимание, что [1] разводит loadbalancer со срока службы, но если вы уничтожите весь свой кластер, вы потеряете loadbalancer. [2] привязан к ресурсу Ingress, поэтому, если вы удалите кластер и заново создадите его, запустите контроллер контроллера loadbalancer и заново создайте тот же ресурс Ingress, он будет использовать существующий loadbalancer. Также отметим, что оба [1] и [2] зависят от «бета» ресурс, который будет выпущен с kubernetes 1.1, я ценю ваше мнение, если развернуть их :)

[1] https://github.com/kubernetes/contrib/tree/master/service-loadbalancer

[2] https://github.com/kubernetes/contrib/pull/132

[3] github.com/kubernetes/kubernetes/issues/10323

+0

Здравствуйте, Прашант! Спасибо за ответ. Я был бы рад использовать HEAD, но я не думаю, что это легко возможно в GKE? – Azr

+0

Ага, ты на ГКЕ. Вам придется подождать, пока мы не достигнем 1,1 за [2]. Однако вы можете развернуть [1] прямо сейчас в текущем кластере, и вы также можете назначить существующий ip для службы по [3]. Если вам нужна помощь, пожалуйста, напишите мне на канале slub-канала (@beeps) –

Смежные вопросы