首页 > 解决方案 > 通过 ingress 暴露服务时如何修复 404 not found 错误

问题描述

我想通过将 hostNetwork 设置为 true 的入口公开 Web 服务,但是当我尝试访问www.example.com/example-apiapi 时,响应总是404 not found为我返回错误代码。

--- Ingress
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: example-ingress
spec:
  tls:
  - hosts:
    - www.example.com
    secretName: example-tls
  rules:
  - host: www.example.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: example-service
            port:
              number: 3000

--- service
apiVersion: v1
kind: Service
metadata:
  name: example-service
spec:
  selector:
    app: example
  ports:
    - name: example-api
      port: 3000
      targetPort: example-api # 3000

标签: kuberneteskubernetes-ingress

解决方案


这是因为我没有为 ingress 定义 nginx 类。

--- Ingress
...
metadata:
  annotations:
    kubernetes.io/ingress.class: "nginx"
  name: example-ingress
...

推荐阅读