kubernetes - 通过 ingress 暴露服务时如何修复 404 not found 错误
问题描述
我想通过将 hostNetwork 设置为 true 的入口公开 Web 服务,但是当我尝试访问www.example.com/example-api
api 时,响应总是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
解决方案
这是因为我没有为 ingress 定义 nginx 类。
--- Ingress
...
metadata:
annotations:
kubernetes.io/ingress.class: "nginx"
name: example-ingress
...
推荐阅读
- c# - c#如何从另一个类中的通用扩展方法调用Action
- pandas - 如何在总和为 1000 时取每个值的总和并放入新的数据帧
- javascript - 如何使用可变字符串文本访问 JSON 数组
- neo4j - Cypher:使用 CALL 子查询实现 EXISTS 子查询功能
- javascript - Mongoose 预保存不更新字段
- node.js - 渲染后未定义 EJS 变量
- c# - DateTime 导致应用程序在物理手机上崩溃?
- python-3.x - 为什么 PyObject_CallMethod 有时会导致访问冲突?
- java - 如何解决错误?“服务器无法识别 HTTP 标头 SOAPAction 的值”
- asp.net-core - 有没有办法更改用于使用 JwtSecurityTokenHandler 设置 IssuedAt/ValidFrom/ValidTo 的声明?