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

Kubernetes重新部署后Ingress地址未分配求助

排查Ingress未分配地址的步骤

首先,确认Ingress Controller的运行状态——Ingress资源仅为规则定义,需依赖Ingress Controller(如nginx-ingress)提供访问地址:

  • 查看nginx-ingress控制器Pod状态(默认部署在kube-system命名空间,自定义命名空间请替换):
    kubectl get pods -n kube-system | grep nginx-ingress
    
    确保所有Pod处于Running状态,无重启或异常终止情况。
  • 查看控制器日志排查错误:
    kubectl logs <nginx-ingress-controller-pod-name> -n kube-system
    
    重点关注Ingress资源处理相关的报错,比如权限不足、关联资源找不到等。

接下来,检查Ingress资源的详细状态与事件:

kubectl describe ingress applicationname -n namespacename

查看Events字段,这里会显示Ingress Controller处理该资源的结果,常见问题包括:

  • 关联的Service不存在或无法找到对应Endpoint
  • Ingress Class不匹配(控制器配置的Ingress Class与YAML中的注解不一致)
  • 权限问题导致控制器无法读取Ingress资源

然后,验证后端Service与Pod的关联是否正常:

  • 查看Deployment的Pod状态:
    kubectl get pods -n namespacename
    
    确认Pod处于Running状态,READY列显示1/1(无启动失败或崩溃)。
  • 检查Service的Endpoint是否正确关联Pod:
    kubectl describe service applicationname-service -n namespacename
    
    Endpoints字段中应显示Pod的IP地址,若为空则说明Service的标签选择器与Pod标签不匹配(建议再次核对拼写)。

另外,注意Kubernetes版本兼容性:
若集群为1.18及以上版本,部分Ingress Controller可能要求使用IngressClass资源而非旧的kubernetes.io/ingress.class注解。可查看集群中是否存在名为nginx的IngressClass:

kubectl get ingressclass

若不存在,需创建对应的IngressClass资源,或调整控制器启动参数指定Ingress Class为nginx。

最后,当Ingress成功分配地址后,需确保本地hosts文件添加myhost到该地址的映射(如192.168.1.100 myhost),否则会出现域名无法解析的问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 08:41:00