Ingress关联ClusterIP服务时端点未找到问题求助
问题排查与解决步骤
1. 修正Ingress配置的服务端口
你的Ingress配置里指定的服务端口是8006,但实际test-service的端点端口是8001——端口不匹配是导致Ingress找不到对应端点的核心原因之一。
把Ingress的端口配置改成8001:
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: annotations: kubernetes.io/ingress.class: nginx nginx.ingress.kubernetes.io/rewrite-target: / name: nginx-ingress # 若Ingress和服务不在同一命名空间,需在此指定Ingress的命名空间 # namespace: your-ingress-namespace spec: rules: - http: paths: - path: /api/test pathType: Prefix backend: service: name: test-service # 修正为服务实际端口 port: number: 8001
2. 确保跨命名空间访问配置正确
如果test-service不在default命名空间,需要在Ingress的backend.service里显式指定服务的命名空间(Kubernetes 1.21+的Ingress v1版本支持该字段):
backend: service: name: test-service namespace: your-service-namespace # 替换为test-service所在的命名空间 port: number: 8001
同时用命令确认服务和端点的归属命名空间:
kubectl get service test-service -n your-service-namespace kubectl get endpoints test-service -n your-service-namespace
3. 重新部署并验证Ingress
修改配置后重新应用:
kubectl apply -f your-ingress-file.yaml
然后检查Ingress状态,确认错误消失:
kubectl describe ingress nginx-ingress
4. 额外验证点
- 检查
test-service的标签选择器是否和Pod标签匹配:
查看输出里的kubectl describe service test-service -n your-service-namespaceSelector字段,确保Pod的标签包含对应键值对。 - 确认Pod处于正常运行状态:
保证Pod状态为kubectl get pods -n your-service-namespace -l <service-selector-key>=<service-selector-value>Running且就绪探针通过。
内容的提问来源于stack exchange,提问作者athar
相关产品推荐
相关产品推荐

