【发布时间】:2021-03-15 10:16:31
【问题描述】:
我编写了一个小型 Blazor 应用程序,它在容器化和通过 k3s 端口转发访问时看起来运行良好,但很难找到关于该应用程序需要如何正确通过以下方式公开的指南入口控制器。要显示这一点:
- 如果我运行 Blazor 应用程序并通过端口转发进行访问(blazor 路由运行良好等):
kubectl 端口转发部署/8000:80
页面路由按预期工作
- 但是,当我将 clusterIP 服务添加到部署并通过 Traefik 入口控制器连接到它时,我得到:
更改路由会出现404 page not found错误
我的 Ingress serviceIp 和 ingress 控制器设置:
- 集群IP:
apiVersion: v1
kind: Service
metadata:
name: driverpassthrough
spec:
selector:
app: driverpassthrough
ports:
- name: ui
protocol: TCP
port: 8010
targetPort: 80
- 入口
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: ingress-test
annotations:
kubernetes.io/ingress.class: "traefik"
traefik.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- http:
paths:
- path: /passthrough
backend:
serviceName: driverpassthrough
servicePort: 8010
【问题讨论】:
-
我可以知道您是否安装了traefik ingress controller 本身,而不仅仅是 Ingress 对象?如果是这样 - 你到底是怎么做到的 - 掌舵,守护进程?
-
k3s 会自动运行 traefik 服务,因此我只是使用该服务并为其定义入口控制器配置(yaml 清单)
标签: kubernetes kubernetes-ingress traefik-ingress