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

Kubernetes集群NGINX Ingress Controller就绪探针503故障求助

解决NGINX Ingress Controller Pod就绪探针失败(503)及CRD资源未找到问题

问题根源:从Pod日志可以明确看出,NGINX Ingress Controller启动时尝试访问virtualservers.k8s.nginx.org、virtualserverroutes.k8s.nginx.org等专属CRD资源,但这些资源未在集群中创建,导致控制器初始化异常,最终触发就绪探针返回503状态码,Pod无法进入就绪状态。

你遗漏了官方安装流程中必须前置执行的CRD安装步骤,以下是修复步骤:

  1. 清理现有异常的Ingress Controller资源
kubectl delete -f deployments/service/nodeport.yaml
kubectl delete -f deployments/deployment/nginx-ingress.yaml
kubectl delete -f deployments/common/ingress-class.yaml
kubectl delete -f deployments/common/nginx-config.yaml
kubectl delete -f deployments/rbac/rbac.yaml
kubectl delete -f deployments/common/ns-and-sa.yaml
  1. 安装NGINX Ingress Controller依赖的CRD资源
# 逐个安装CRD
kubectl apply -f deployments/crds/k8s.nginx.org_virtualservers.yaml
kubectl apply -f deployments/crds/k8s.nginx.org_virtualserverroutes.yaml
kubectl apply -f deployments/crds/k8s.nginx.org_transportservers.yaml
kubectl apply -f deployments/crds/k8s.nginx.org_policies.yaml

# 或直接批量应用crds目录下所有文件(如果存在)
# kubectl apply -f deployments/crds/
  1. 重新按官方流程部署Ingress Controller
kubectl apply -f deployments/common/ns-and-sa.yaml
kubectl apply -f deployments/rbac/rbac.yaml
kubectl apply -f deployments/common/nginx-config.yaml
kubectl apply -f deployments/common/ingress-class.yaml
kubectl apply -f deployments/deployment/nginx-ingress.yaml
kubectl create -f deployments/service/nodeport.yaml
  1. 验证部署状态
    执行以下命令确认Pod进入就绪状态:
kubectl get pods -n nginx-ingress

等待输出中Pod的READY列变为1/1,STATUS为Running即可。

补充说明:这些CRD是NGINX Ingress Controller的核心依赖,即使你暂时不需要使用VirtualServer等扩展功能,控制器启动时也会同步这些资源的状态,因此必须提前完成安装。

内容的提问来源于stack exchange,提问作者Inês Gomes

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 21:22:43