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

本地K8s集群Ingress未分配LoadBalancer IP问题排查咨询

问题分析与解决方案

首先,从你的kubectl get ingress输出能看到CLASS字段是<none>,这说明你的Ingress资源没有和Ingress Controller(这里是nginx-ingress)绑定,这是核心问题。另外你的Ingress配置里也有个小错误,我们一步步来解决:

1. 修正Ingress配置的核心错误

你把kubernetes.io/ingress.class: nginx直接放在了metadata根节点下,这是不对的——这个配置应该属于annotations字段。另外YAML里的路径转义"\/"也没必要,直接写"/"就行。修正后的配置如下:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: wp-ingress
  annotations:
    kubernetes.io/ingress.class: nginx  # 移到annotations下才生效
  labels:
    name: wp-ingress
spec:
  # 如果你用的是K8s 1.18+版本,也可以用下面这行替代上面的annotation(二选一即可)
  # ingressClassName: nginx
  rules:
  - host: wordpress.pandora.local
    http:
      paths:
      - pathType: Prefix
        path: "/"
        backend:
          service:
            name: wp-svc
            port:
              number: 80
  - host: phpmyadmin.pandora.local
    http:
      paths:
      - pathType: Prefix
        path: "/"
        backend:
          service:
            name: phpmyadmin-svc
            port:
              number: 80

应用修正后的配置:

kubectl apply -f <你的Ingress配置文件名>.yaml

2. 验证Ingress与Controller的绑定

再次执行kubectl get ingress wp-ingress,如果配置正确,CLASS字段应该会显示nginx,同时ADDRESS字段会填充为你的Ingress Controller的ExternalIP(也就是ingress-nginx-controller Service的EXTERNAL-IP:192.168.188.20)。

3. 后续验证步骤

如果绑定后还是有问题,可以做以下排查:

  • 检查Ingress Controller日志,确认它正确加载了你的Ingress资源:
    kubectl logs -n ingress-nginx deployment/ingress-nginx-controller
    
    日志里应该能看到wp-ingress的加载记录,没有报错信息。
  • 配置本地hosts解析:在你的本地机器的hosts文件(Windows是C:\Windows\System32\drivers\etc\hosts,Linux/macOS是/etc/hosts)里添加两行:
    192.168.188.20    wordpress.pandora.local
    192.168.188.20    phpmyadmin.pandora.local
    
  • 确认后端Service的可用性:检查wp-svc和phpmyadmin-svc的Endpoint是否正常(有没有关联到运行中的Pod):
    kubectl get endpoints wp-svc
    kubectl get endpoints phpmyadmin-svc
    
    输出里的ADDRESSES列应该有Pod的IP,否则需要检查对应的Deployment/Pod是否正常运行。

补充说明

你提到Ingress没分配LoadBalancer IP——其实Ingress资源本身不会分配LB IP,LoadBalancer IP是属于Ingress Controller的Service的。你的Ingress只是负责将域名请求转发到对应的后端Service,流量先到Ingress Controller的LB IP,再由它根据Ingress规则路由。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 18:24:08