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

Kubernetes Admin应用无法访问求助(含Ingress配置问题)

问题原因及解决方案

核心问题

Service的Endpoints显示<none>,说明Service没有匹配到任何处于Running且Ready状态的Pod,根源在于你配置的容器端口与镜像实际监听的端口不匹配,导致Pod无法正常就绪。

具体分析

  1. 镜像端口不兼容:你使用的dockercloud/hello-world镜像默认监听80端口,该镜像并不支持通过LISTEN_PORT环境变量修改服务端口。你强行设置LISTEN_PORT=3000后,容器内的服务无法启动,Pod会进入CrashLoopBackOff或Error状态,无法被Service识别。
  2. Pod状态异常:执行kubectl get pods可查看Pod状态,大概率会显示异常;通过kubectl logs <pod-name>能看到服务启动失败的日志。

修复步骤

  1. 修正Deployment配置:删除无效的LISTEN_PORT环境变量,将容器端口改回80:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: admin-deployment
    spec:
      selector:
        matchLabels:
          app: admin
      template:
        metadata:
          labels:
            app: admin
        spec:
          containers:
          - name: admin
            image: dockercloud/hello-world
            resources:
              requests:
                memory: "32Mi"
                cpu: "100m"
              limits:
                memory: "128Mi"
                cpu: "500m"
            ports:
            - containerPort: 80
    
  2. 修正Service配置:将targetPort改为镜像实际监听的80端口:

    apiVersion: v1
    kind: Service
    metadata:
      name: admin-service
    spec:
      type: ClusterIP
      selector:
        app: admin
      ports:
      - port: 4444
        targetPort: 80
    
  3. 重新应用配置:

    kubectl apply -f <你的配置文件名>.yaml
    
  4. 验证修复:

    • 执行kubectl get pods确认Pod处于Running状态
    • 执行kubectl describe service admin-service,此时Endpoints会显示Pod的IP地址
    • 访问http://localhost:4444或通过Ingress访问,即可正常响应

补充说明

Ingress无法工作是因为后端Service没有可用的Pod端点,解决上述Pod和Service的匹配问题后,Ingress即可正常转发请求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 18:03:22