Как я могу получить доступ к информационной панели kubernetes, используя NodePort в удаленном кластере для тестирования? - PullRequest
0 голосов
/ 10 января 2019

У меня есть тестируемый кластер Kubernetes, работающий на удаленных виртуальных машинах (в VSphere), у меня есть полный доступ к виртуальным машинам через ssh (у них есть частные IP-адреса). Как я могу предоставлять сервисы и получать к ним доступ снаружи кластера (с моего удаленного ноутбука, пытающегося получить доступ к машинам), зная, что я могу удаленно выполнять все команды kubectl.

Например: я пытался с приборной панели, я установил его, я изменил службу на NodePort, и я попытался получить к нему доступ с моего ноутбука, используя этот URL http:master-private-ip:exposedport, также с рабочими IP, но это не так Работа. В браузере возвращается только (двоичный вывод). Когда я пытаюсь подключиться через https, выдается ошибка сертификата.

$ kubectl get svc -n kube-system -l k8s-app=kubernetes-dashboard
  NAME                   TYPE           CLUSTER-IP       EXTERNAL-IP   PORT(S)         AGE
  kubernetes-dashboard   NodePort       10.97.143.110    <none>        443:30714/TCP   42m
$ kubectl  proxy -p 8001
$ curl http://172.16.5.226:30714 --output -

Я ожидал, что на выходе отобразится html из пользовательского интерфейса приборной панели Kubernetes

1 Ответ

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

ПРИМЕЧАНИЕ. Панель инструментов не должна быть доступна публично через HTTP. Для доменов, доступ к которым осуществляется через HTTP, вход в систему невозможен. После нажатия кнопки «Войти» на странице входа в систему ничего не произойдет.

Если вы все сделали правильно, все должно работать HTTPS

Как объясняется в Доступ к Dashboard 1.7.X и выше .

Чтобы открыть Dashboard с помощью NodePort, необходимо отредактировать сервис kubernetes-dashboard.

kubectl -n kube-system edit service kubernetes-dashboard

Найдите type: ClusterIP и измените его на type: NodePort, затем сохраните файл.

Затем проверьте, какой порт был открыт для панели мониторинга:

kubectl -n kube-system get service kubernetes-dashboard который может выглядеть:

NAME                   CLUSTER-IP       EXTERNAL-IP   PORT(S)        AGE
kubernetes-dashboard   10.100.124.90   <nodes>       443:31707/TCP   21h

Для доступа к панели инструментов перейдите в браузере на https://<server_IP>:31707

EDIT:

В вашем случае с самозаверяющим сертификатом вы должны хранить его в секрете. Он должен иметь имя kubernetes-dashboard-certs и находиться в kube-system пространстве имен.

Вы должны сохранить сертификат как dashboard.crt и dashboard.key и хранить их в $HOME/certs.

kubectl create secret generic kubernetes-dashboard-certs --from-file=$HOME/certs -n kube-system

Этот процесс установки объясняется здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...