0

我有kubernetes-dashboard服务类型是ClusterIP。如何访问内部仪表板?我用的是阿里云。

我的服务.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.

非常感谢。

4

2 回答 2

0

在这个答案中,您可以找到访问仪表板的不同方式。

如果你不使用NodePortor kubectl proxy,你最好的选择是

API 服务器

如果 Kubernetes API 服务器被暴露并且可以从外部访问,您可以直接访问仪表板:https://<master-ip>:<apiserver-port>/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/

入口

仪表板也可以使用 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
于 2018-01-18T06:54:34.817 回答
0

将仪表板服务类型更改为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访问仪表板

于 2018-01-18T02:25:44.510 回答