You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过Ingress对外暴露ClusterIP类型Kubernetes Dashboard无法获取IP问题咨询

排查解决步骤
  • 第一步:获取Nginx Ingress Controller的对外入口IP
    你要绑定到dashboard.com的IP不是Ingress资源或dashboard服务的ClusterIP,而是Nginx Ingress Controller的对外访问IP,执行以下命令查询:
kubectl get service -n ingress-nginx

从返回结果的EXTERNAL-IP列获取IP即可。如果你的集群是裸机部署、无云厂商负载均衡,EXTERNAL-IP会显示为<pending>,此时可以直接使用集群任意节点的IP,配合Ingress Controller的HTTPS NodePort使用,也可以通过修改Ingress Controller部署配置使用HostNetwork模式直接复用节点IP。

  • 第二步:校验Ingress资源是否被正常识别
    执行以下命令查看Ingress资源状态:
kubectl get ingress -n kubernetes-dashboard

如果返回结果的ADDRESS列为空,说明当前Ingress规则没有被Nginx Ingress Controller处理,原因是你的Ingress配置缺少ingress类声明,需要在spec字段下添加ingressClassName: nginx(需对应你部署的Nginx Ingress Controller的ingress类名称),或在metadata.annotations中添加kubernetes.io/ingress.class: "nginx"。
修正后的Ingress配置参考:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: dashboard-ingress
  namespace: kubernetes-dashboard
  annotations:
    nginx.ingress.kubernetes.io/backend-protocol: "HTTPS" # *必填*,dashboard后端默认只接受HTTPS请求
spec:
  ingressClassName: nginx # 补充ingress类声明,与你部署的Nginx Ingress Controller类名一致
  tls:
  - hosts:
    - dashboard.com
    secretName: kubernetes-dashboard-certs
  rules:
  - host: dashboard.com
    http:
      paths:
      - pathType: ImplementationSpecific
        path: /
        backend:
          service:
            name: kubernetes-dashboard
            port:
              number: 443
  • 第三步:校验依赖资源有效性
    执行kubectl get secret -n kubernetes-dashboard kubernetes-dashboard-certs确认你配置的TLS证书Secret确实存在于对应命名空间下,不存在的话需要先创建合法的TLS证书Secret。

  • 第四步:配置hosts并验证
    将第一步获取的IP和dashboard.com的映射关系添加到/etc/hosts文件,格式如下:

[你获取的入口IP] dashboard.com

配置完成后即可通过https://dashboard.com访问kubernetes-dashboard服务。

内容的提问来源于stack exchange,提问作者Anil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 22:12:03