【问题标题】:How to access dashboard service internal use Kubernetes如何访问dashboard服务内部使用Kubernetes
【发布时间】:2018-06-27 00:33:42
【问题描述】:

我有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

非常感谢。

【问题讨论】:

    标签: kubernetes alibaba-cloud alibaba-cloud-ecs


    【解决方案1】:

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

    【讨论】:

    • 感谢您的回答,但在这种情况下,我不使用 NotePort 或 kubectl proxy
    • 另一种解决方案怎么样?
    【解决方案2】:

    In this answer您可以找到访问仪表板的不同方式。

    如果您不使用NodePortkubectl 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
    

    【讨论】:

    • 感谢@fiunchinho,我尝试将 Ingress 添加到我的集群,但它不起作用。请帮助我更多。关于API server,如何获取端口?
    • 这篇博文可以帮助你部署和使用 nginx Ingress 控制器medium.com/@gokulc/…。您可以找到运行 kubectl get nodes -o yaml 的节点的 ip
    猜你喜欢
    • 2021-10-04
    • 2017-02-13
    • 2019-05-26
    • 1970-01-01
    • 1970-01-01
    • 2019-09-03
    • 1970-01-01
    • 2015-12-14
    相关资源
    最近更新 更多