Как получить доступ к внутреннему использованию службы панели управления Kubernetes

У меня kubernetes-dashboard сервис с типом ClusterIP. Как я могу получить доступ к внутренней панели управления? Я использую Alibaba Cloud.

Мой service.yml

---
kind: Service
apiVersion: v1
metadata:
  labels:
    kubernetes.io/cluster-service: "true"
    app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kube-system
spec:
  type: ClusterIP
  ports:
  - port: 80
    targetPort: 9090
  selector:
    app: kubernetes-dashboard

Я хочу запустить свою панель управления по адресу http://MASTER_IP:80

Статус при запуске kubectl cluster-info:

Kubernetes master is running at https://MASTER_IP:6443
Heapster is running at https://MASTER_IP:6443/api/v1/namespaces/kube-system/services/heapster/proxy
KubeDNS is running at https://MASTER_IP:6443/api/v1/namespaces/kube-system/services/kube-dns/proxy
kubernetes-dashboard is running at https://MASTER_IP:6443/api/v1/namespaces/kube-system/services/kubernetes-dashboard/proxy
monitoring-influxdb is running at https://MASTER_IP:6443/api/v1/namespaces/kube-system/services/monitoring-influxdb/proxy

Когда я открываю https://MASTER_IP:6443, я получаю ошибку default backend - 404.

Примечание. Не используйте NodePort и kubectl proxy.

Большое спасибо.


person Huy Chau    schedule 18.01.2018    source источник


Ответы (2)


Измените тип службы панели мониторинга на NodePort, после чего вы сможете получить доступ к панели мониторинга с любым кластером:

  1. изменить тип службы с ClusterIP на NodePort kubectl -n kube-system edit svc kubernetes-dashboard

  2. Получите номер сервисного порта.

    kubectl -n kube-system get svc kubernetes-dashboard -o yaml |grep nodePort

  3. Доступ к панели управления с помощью https://masererverIP:nodeportnumber

person sfgroups    schedule 18.01.2018
comment
Спасибо за ответ, но в этом случае я не использую NotePort или kubectl proxy. - person Huy Chau; 18.01.2018
comment
Как насчет другого решения? - person Huy Chau; 18.01.2018

В этом ответе вы можете найти различные способы получить доступ к приборной панели.

Если вы не используете NodePort или kubectl proxy, лучше всего

API-сервер

Если сервер Kubernetes API открыт и доступен извне, вы можете напрямую получить доступ к панели управления по адресу: https://<master-ip>:<apiserver-port>/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/

Ingress

Дашборд также можно открыть с помощью ресурса Ingress. Например

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
 name: kubernetes-dashboard-ingress
 namespace: kube-system
spec:
 rules:
   — host: kubernetes
     http:
       paths:
         — path: /ui
           backend:
             serviceName: kubernetes-dashboard
             servicePort: 80
person Jose Armesto    schedule 18.01.2018
comment
Спасибо @fiunchinho, я пытаюсь добавить Ingress в свой кластер, но это не работает. Пожалуйста, помогите мне поподробнее. О сервере API, как получить порт? - person Huy Chau; 18.01.2018
comment
Это сообщение в блоге может помочь вам развернуть и использовать контроллер nginx Ingress medium.com/@gokulc/. Вы можете найти IP-адреса ваших узлов, на которых запущено kubectl get nodes -o yaml - person Jose Armesto; 18.01.2018