Как сделать RESTful api Kubernetes доступным с удаленных машин?

Я настроил кластер Kubernetes, работающий на AWS. Сейчас я хочу управлять кластером с удаленных машин, например, с моего MacBook Pro.

Я узнал, что Kubernetes имеет API RESTful, а Kubectl может служить прокси. Запустив: kubectl proxy --port=8001 &, я могу получить доступ к RESTful api с помощью curl, например:

curl http://localhost:8001/api

Затем я обнаружил, что могу скрутить только локальный хост. Если я скручиваюсь с удаленного компьютера с помощью следующей команды:

curl http://dns-to-the-k8-machine:8080/api

Я получаю сообщение «В соединении отказано». Интересно, что здесь происходит? И есть ли способ легко получить удаленный доступ к API?

Заранее спасибо.


person Mohan Yang    schedule 08.11.2016    source источник


Ответы (1)


В зависимости от того, как вы подготовили свой кластер, сервер API может прослушивать другой порт. Взгляните на свой kubeconfig файл (~/.kube/config), там должен быть раздел с сервером, к которому вы подключаетесь.

Кроме того, ваш кластер может использовать сертификаты или другой тип аутентификации, который вам также необходимо пройти. Они будут указаны в том же файле kubeconfig.

При использовании kubectl proxy kubectl автоматически обрабатывает упомянутые выше части и отправляет проксирование обратно на ваш ноутбук через localhost.

person Steve Sloka    schedule 08.11.2016
comment
Спасибо, Стив. Kubeconfig работает отлично. Теперь я могу получить доступ к кластеру с удаленных машин. Но есть небольшая проблема. При использовании kubeconfig в качестве аутентификации мне разрешен доступ к кластеру только путем связи с портом 443 главного узла kubernetes через его частный IP-адрес. Это означает, что я могу получить доступ к кластеру только из другого экземпляра aws, но не из моего собственного ноутбука. Интересно, есть ли способ разрешить мне доступ к кластеру через общедоступный IP-адрес главного узла? - person Mohan Yang; 10.11.2016
comment
Как вы развернули кластер? Вам нужно будет предоставить какой-то общедоступный IP-адрес или конечную точку балансировщика нагрузки, указывающую на частный IP-адрес сервера api. - person Steve Sloka; 10.11.2016