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

Ubuntu环境下Kubernetes Ingress地址为空问题求助

排查与解决Ingress Address/Hosts为空问题

1. 修复Ingress配置的语法错误

你的ingress.yaml存在缩进错误:ingressClassName应该放在spec顶层,与rules同级,而非嵌套在host节点下。错误的缩进会导致Kubernetes无法识别Ingress关联的控制器,直接引发Hosts字段为空。

修正后的ingress.yaml:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  labels:
    app: docker-testmrv
  name: docker-testmrv-ingress
  namespace: jenkins
spec:
  ingressClassName: nginx  # 移至spec顶层,与rules同级
  rules:
    - host: dockertest.com
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: docker-testmrv-service
                port:
                  number: 80

执行配置更新:

kubectl apply -f ingress.yaml -n jenkins

2. 确认Nginx Ingress Controller已部署

Ingress仅为路由规则定义,需要对应的Ingress Controller(如nginx-ingress-controller)来实现实际的流量转发。检查Controller是否正常运行:

# 默认命名空间为ingress-nginx,若自定义了命名空间请替换
kubectl get pods -n ingress-nginx

如果未找到运行中的Pod,需安装Nginx Ingress Controller:

  • 用Helm安装:
    helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
    helm repo update
    helm install nginx-ingress ingress-nginx/ingress-nginx -n ingress-nginx --create-namespace
    
  • 或使用官方提供的静态部署YAML文件,下载后执行:
    kubectl apply -f deploy.yaml
    

3. 验证IngressClass资源存在

确认集群中存在名为nginx的IngressClass资源:

kubectl get ingressclass

若不存在,创建对应的IngressClass:

apiVersion: networking.k8s.io/v1
kind: IngressClass
metadata:
  name: nginx
  annotations:
    ingressclass.kubernetes.io/is-default-class: "true"  # 设置为默认IngressClass
spec:
  controller: k8s.io/ingress-nginx

执行创建命令:

kubectl apply -f ingressclass.yaml

4. 检查Service与Pod的关联状态

确认Service已正确关联到运行中的Pod:

# 查看Service的Endpoints,确认有Pod IP存在
kubectl get endpoints docker-testmrv-service -n jenkins
# 查看Pod状态,确认Pod正常运行
kubectl get pods -n jenkins -l app=docker-testmrv

若Endpoints为空,检查Pod的标签是否与Service的spec.selector匹配,或Pod是否正常启动。

5. 查看Ingress事件排查异常

通过describe命令查看Ingress的事件日志,定位潜在问题:

kubectl describe ing docker-testmrv-ingress -n jenkins

如果存在"no ingress class specified"或"backend service not found"等报错,根据提示进一步调整配置。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 01:45:30