我有一个使用k3s的本地测试环境。
我正试图通过入口到达一个运行在k3s工人中的本地jenkins pod。
我已经将入口对象配置为在所有路径的特定主机上回答,但它似乎不起作用。
我在交通日志中总是得到404。
是否有一种方法来检查请求是如何流动的?配置
:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: jenkins
namespace: jenkins
labels:
app: jenkins
spec:
rules:
- host: jenkins.homelab.internal
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: jenkins
port:
number: 80
当ingressclass.kubernetes。io/is-default-class注释在IngressClass资源上被设置为true,新的ingress将被分配这个默认的IngressClass,即使没有指定ingressClassName字段。
annotations:
ingressclass.kubernetes.io/is-default-class: "true"
一个Ingress上的多个Ingress对象使用以下注释:
annotations:
kubernetes.io/ingress.class: nginx
确保metadata.name是独一无二的。如果每个对象的metadata.name都是相同的,则新的配置只是替换它。
遵循您的问题的入口路径匹配,这里有一个解释路径匹配的博客
也许你的IngressClass没有设置为default,所以你的ingress没有分配给它。
尝试在ingress中设置它:
spec:
ingressClassName: nginx
rules:
...
或者通过将你的入口类设置为default:
kubectl patch ingressclass nginx -p '{"metadata": {"annotations":{"ingressclass.kubernetes.io/is-default-class":"true"}}}'
其中'nginx'是你的IngressClass的名字。