首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用Nginx Ingress暴露Kubernetes Dashboard?

如何使用Nginx Ingress暴露Kubernetes Dashboard?
EN

Stack Overflow用户
提问于 2021-10-26 06:49:30
回答 2查看 152关注 0票数 1

整个集群由3个节点组成,看起来一切运行正常:

代码语言:javascript
运行
复制
$ kubectl get pods --all-namespaces
NAMESPACE              NAME                                         READY   STATUS    RESTARTS        AGE
default                ingress-nginx-controller-5c8d66c76d-wk26n    1/1     Running   0               12h
ingress-nginx-2        ingress-nginx-2-controller-6bfb65b8-9zcjm    1/1     Running   0               12h
kube-system            calico-kube-controllers-684bcfdc59-2p72w     1/1     Running   1 (7d11h ago)   7d11h
kube-system            calico-node-4zdwr                            1/1     Running   2 (5d10h ago)   7d11h
kube-system            calico-node-g5zt7                            1/1     Running   0               7d11h
kube-system            calico-node-x4whm                            1/1     Running   0               7d11h
kube-system            coredns-8474476ff8-jcj96                     1/1     Running   0               5d10h
kube-system            coredns-8474476ff8-v5rvz                     1/1     Running   0               5d10h
kube-system            dns-autoscaler-5ffdc7f89d-9s7rl              1/1     Running   2 (5d10h ago)   7d11h
kube-system            kube-apiserver-node1                         1/1     Running   2 (5d10h ago)   7d11h
kube-system            kube-controller-manager-node1                1/1     Running   3 (5d10h ago)   7d11h
kube-system            kube-proxy-2x8fg                             1/1     Running   2 (5d10h ago)   7d11h
kube-system            kube-proxy-pqqv7                             1/1     Running   0               7d11h
kube-system            kube-proxy-wdb45                             1/1     Running   0               7d11h
kube-system            kube-scheduler-node1                         1/1     Running   3 (5d10h ago)   7d11h
kube-system            nginx-proxy-node2                            1/1     Running   0               7d11h
kube-system            nginx-proxy-node3                            1/1     Running   0               7d11h
kube-system            nodelocaldns-6mrqv                           1/1     Running   2 (5d10h ago)   7d11h
kube-system            nodelocaldns-lsv8x                           1/1     Running   0               7d11h
kube-system            nodelocaldns-pq6xl                           1/1     Running   0               7d11h
kubernetes-dashboard   dashboard-metrics-scraper-856586f554-6s52r   1/1     Running   0               4d11h
kubernetes-dashboard   kubernetes-dashboard-67484c44f6-gp8r5        1/1     Running   0               4d11h

仪表板服务也工作得很好:

代码语言:javascript
运行
复制
$ kubectl get svc -n kubernetes-dashboard
NAME                        TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)    AGE
dashboard-metrics-scraper   ClusterIP   10.233.20.30   <none>        8000/TCP   4d11h
kubernetes-dashboard        ClusterIP   10.233.62.70   <none>        443/TCP    4d11h

我最近做的是创建一个Ingress来公开Dashboard以便在全球范围内可用:

代码语言:javascript
运行
复制
$ cat ingress.yml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: dashboard
spec:
  defaultBackend:
    service:
      name: kubernetes-dashboard
      port:
        number: 443

应用上面的配置后,它看起来工作正常:

代码语言:javascript
运行
复制
$ kubectl get ingress
NAME        CLASS    HOSTS   ADDRESS   PORTS   AGE
dashboard   <none>   *                 80      10h

但是,尝试访问以下任意URL上的仪表板时,会返回Connection Refused错误:

代码语言:javascript
运行
复制
https://10.11.12.13/api/v1/namespaces/kube-system/services/kube-dns/proxy
https://10.11.12.13/api/v1/
https://10.11.12.13/

我在这个配置中遗漏了什么?补充说明:我不想给仪表板分配任何域,目前可以访问它的IP地址。

EN

回答 2

Stack Overflow用户

发布于 2021-10-26 07:02:23

入口是命名空间的仪表板资源,kubernetes-dashboard pod位于“kubernetes-”命名空间。

因此,您需要将入口移动到"kubernetes-dashboard“名称空间。

:*列出所有命名空间的k8s资源::

代码语言:javascript
运行
复制
kubectl api-resources --namespaced=true
票数 1
EN

Stack Overflow用户

发布于 2021-10-26 06:58:24

您是否正在为nginx运行metallb或类似的负载均衡器,或者您是否正在为入口端点使用nodeport?需要通过负载均衡IP或nginx NodePort访问入口。和afaik您将需要一个主机名/DNS条目作为入口条目。

如果您只想在没有主机名的情况下访问仪表板,则不需要入口,而需要负载均衡器服务或仪表板pod的NodePort服务。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69718567

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档