我编写了一个小型 Blazor 应用程序,它在容器化和通过 k3s 端口转发访问时看起来都运行良好,但正在努力寻找有关如何正确通过以下方式公开该应用程序的指南入口控制器。要显示这一点:
kubectl 端口转发部署/8000:80
和页面路由按预期工作
并且更改路由将导致 404 page not found 错误
我的入口 serviceIp 和入口控制器设置:
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
答案 0 :(得分:0)
所以就我而言,我使用 k3s 和 traefik。我还有 blazor 服务器应用程序的 3 个副本。为了使它工作,我必须像这样在集群 ip 上启用粘性会话(在注释中):
apiVersion: v1
kind: Service
metadata:
name: qscale-healthcheck-service
annotations:
traefik.ingress.kubernetes.io/affinity: "true"
labels:
name: qscale-healthcheck-service
spec:
type: ClusterIP
selector:
app: healthcheck
ports:
- name: http
port: 80
targetPort: 80
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: traefik-ingress
annotations:
kubernetes.io/ingress.class: "traefik"
spec:
rules:
- http:
paths:
- path: /
backend:
serviceName: qscale-healthcheck-service
servicePort: 80
这是我找到注释的链接:Traefik Doc