Доступ к веб-интерфейсу kubernetes с удаленного клиента - PullRequest
0 голосов
/ 07 января 2019

Я получил кластер, работающий на сервере Ubuntu. Я предоставляю веб-контент на сервере, работающем в кластере, через порт 80/443. Сам сервер, к которому я получаю доступ только через ssh, поэтому графический интерфейс вообще отсутствует.

Теперь я хочу получить доступ к веб-интерфейсу kubernetes для этого кластера. В ходе исследований я обнаружил источники, которые утверждают, что доступ к web ui для удаленного доступа не рекомендуется для сред с расширенными возможностями В руководствах рассказывается только об использовании kubectl proxy для отображения панели мониторинга на localhost.

Существует ли решение или более или менее распространенный способ доступа к панели мониторинга кластера, работающего на сервере?

Ответы [ 3 ]

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

Если вы хотите получить доступ к своей панели мониторинга через внешний IP-адрес, вы можете отредактировать службу панели мониторинга и изменить тип на LoadBalancer, если у вас есть внешний поставщик LB, такой как GCP или AWS. Для этого отредактируйте сервис kubernetes-dashboard.

# kubectl -n kube-system edit service kubernetes-dashboard

Вы должны увидеть yaml представление сервиса. Измените тип: ClusterIP на тип: LoadBalancer и сохраните файл. Если он уже изменен, перейдите к следующему шагу.

# Please edit the object below. Lines beginning with a '#' will be ignored,
# and an empty file will abort the edit. If an error occurs while saving this file will be
# reopened with the relevant failures.
#
apiVersion: v1
...
  name: kubernetes-dashboard
  namespace: kube-system
  resourceVersion: "343478"
  selfLink: /api/v1/namespaces/kube-system/services/kubernetes-dashboard-head
  uid: 8e48f478-993d-11e7-87e0-901b0e532516
spec:
  clusterIP: 10.100.124.90
  externalTrafficPolicy: Cluster
  ports:
  - port: 443
    protocol: TCP
    targetPort: 8443
  selector:
    k8s-app: kubernetes-dashboard
  sessionAffinity: None
  type: ClusterIP # <-- Change to LoadBalancer
status:
  loadBalancer: {}

Затем выполните команду ниже, чтобы просмотреть внешний IP-адрес службы Dashboard Kubernetes

# kubectl -n kube-system get service kubernetes-dashboard
NAME                   TYPE           CLUSTER-IP      EXTERNAL-IP     PORT(S)         AGE
kubernetes-dashboard   LoadBalancer   10.23.252.164   <external-ip>   443:31720/TCP   26d

Затем просмотрите https://<external-ip>, чтобы увидеть веб-интерфейс

Также вы можете предоставить свой сервис как NodePort для доступа к веб-интерфейсу через вашу подсеть

0 голосов
/ 26 апреля 2019

2 шт .; 1. Для прямого доступа через браузер (локальный компьютер) кластер k8s должен находиться в одном сетевом домене. 2. если у вас нет пункта №1, получите к нему доступ через Windows RDP и используйте браузер.

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

kubectl proxy работает довольно хорошо. В противном случае вы также можете изменить kubernetes-dashboard на loadbalancer / nodeport и получить к нему доступ через кластер.

Если вы используете балансировщик нагрузки и облачный провайдер, такой как AWS или Azure, вы, вероятно, можете настроить группы безопасности, чтобы разрешить доступ в определенных диапазонах IP-адресов.

Но я скажу, что kubectl proxy достаточно хорош в большинстве случаев.

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