2016-04-11 2 views
0

Это кластер Kubernetes, где все доступно, DNS является ключевым элементом системы, все зависит от DNS.kube2sky в кубернете с несколькими серверами api

В pod kube2sky есть параметр «-kube_master_url», где, afaik, вы можете указать только один узел сервера api.

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

Для других контейнеров вы можете использовать внутреннее DNS-имя службы сервера api, но в этом случае вы не можете, так как это фактическая служба DNS.

Любая идея, как решить эту проблему?

ответ

2

В своей стандартной конфигурации kube2sky на самом деле не полагается на использование одного IP-адреса Apiserver. Вместо этого он использует виртуальный IP-адрес службы kubernetes, которая автоматически создается в каждом кластере и для которой kube-proxy устанавливает правила iptables. Это briefly explained in the docs on github.

Кроме того, it's recommended that replicated masters are put behind a load balancer в таких конфигурациях с высокой доступностью, чтобы избежать подобных проблем с помощью клиентских инструментов.

+0

Но, что сервис kubernetes использует порт 443, для этого kube2sky потребуются сертификаты для подключения. Есть ли способ их установить? Или я делаю что-то неправильно? – victorgp

+1

Используйте опцию '--kubecfg-file', описанную здесь: https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/dns/kube2sky. Это позволит вам указать CA и сертификаты и конечную точку ведущего устройства. Вы можете использовать тот же файл конфигурации, который используется хостом, запускающим kubelet, путем установки каталога, содержащего файл конфигурации, в модуль. –

+0

Звучит неплохо, я попробую это – victorgp

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