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

Helm部署UserAPI时Service无负载均衡器入口IP及Pod未就绪问题的解决咨询

解决Helm安装超时:Deployment Pod未就绪&Service无LoadBalancer IP问题

看起来你遇到的核心问题是Helm等待资源就绪时超时了,具体表现为Deployment的0/2 Pod无法就绪,同时Service没有获取到LoadBalancer ingress IP。咱们一步步来排查解决:

一、先搞定Pod无法就绪的问题(这是超时的主要原因)

Pod起不来大概率是镜像拉取失败、应用启动报错或者探针配置有问题,先从这里入手:

  1. 查看Pod的详细状态和事件
    先看看Pod到底卡在哪个环节了:
# 列出demospace命名空间下的所有Pod
kubectl get pods -n demospace
# 查看具体某个Pod的详细信息,重点看Events部分
kubectl describe pod <你的Pod名称> -n demospace

如果Events里出现ImagePullBackOff或者ErrImagePull,那就是镜像拉取的问题;如果是Readiness probe failed或者Liveness probe failed,就是探针的锅。

  1. 排查镜像拉取问题
    你已经创建了ACR(acrdemo),但得确保几个点:
  • 你的应用镜像已经推送到这个ACR里了?可以用az acr repository list -n acrdemo确认。
  • AKS集群有没有权限拉取ACR的镜像?默认AKS不会自动获得ACR的访问权限,需要手动关联:
az aks update -n democluster -g demorg --attach-acr acrdemo
  • 镜像地址是否正确?ACR的镜像格式是acrdemo.azurecr.io/[你的镜像名]:tag,检查Helm的values.yaml里image.repository是不是这个格式。
  1. 调整探针配置
    你的liveness和readiness探针都是访问/路径,初始延迟30秒。如果你的应用启动慢,或者/路径本身不返回200状态码,探针就会失败:
  • 可以先临时注释掉两个探针,重新安装Helm,看Pod能不能正常启动。如果能启动,说明探针是问题所在。
  • 如果是启动慢,把initialDelaySeconds调大到60甚至更高,比如:
livenessProbe:
  httpGet:
    path: /
    port: http
  initialDelaySeconds: 60
  failureThreshold: 5
  • 或者进入Pod内部,手动测试/路径是否正常:
kubectl exec -it <Pod名称> -n demospace -- curl http://localhost:{{ .Values.service.port }}/

二、解决Service无LoadBalancer IP的问题

这个问题通常是Service配置不对,或者AKS的LoadBalancer还没完成分配:

  1. 确认Service类型是LoadBalancer
    检查你的Service资源配置:
kubectl get svc userapi -n demospace -o yaml

确保spec.type的值是LoadBalancer,如果不是,需要修改Helm Chart里的Service模板,把类型改成LoadBalancer。

  1. 等待LoadBalancer分配IP
    Standard Load Balancer在创建时可能需要几分钟时间,你可以等一会儿再查看:
kubectl get svc userapi -n demospace

如果长时间没有EXTERNAL-IP,去Azure门户看看资源组里的LoadBalancer资源是否正常创建,或者AKS节点是否处于就绪状态。

三、其他需要检查的点

  • 确认命名空间存在:错误里提到demospace/userapi,先检查这个命名空间是否存在:
kubectl get ns demospace

如果不存在,先创建:kubectl create ns demospace

  • 检查节点资源是否足够:你的AKS集群当前只有1个节点,而Deployment配置了2个副本,看看节点的CPU和内存是否能容纳两个Pod:
kubectl describe node
  • 查看Deployment状态:看看Deployment的ReplicaSet是否正常创建,有没有错误:
kubectl get deployment userapi -n demospace
kubectl describe deployment userapi -n demospace

总结

优先解决Pod无法就绪的问题,这是导致Helm超时的核心。按照上面的步骤一步步排查,先搞定镜像和探针,再处理Service的LoadBalancer问题,应该就能解决了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 14:14:07