在k3s上生成具有流量入口的重定向?



我在k3s下运行prometheus和grafana,可分别访问http://monitoring.internal/prometheus和http://monitoring.internal/grafana。例如,grafana Ingress对象看起来像:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: grafana
annotations:
kubernetes.io/ingress.class: traefik
spec:
rules:
- host: monitoring.internal
http:
paths:
- path: /grafana
pathType: Prefix
backend:
service:
name: grafana
port:
number: 3000

这很好,除非你在http://monitoring.internal/,你会得到一个404错误。我想要重定向到http://monitoring.internal/的请求http://monitoring.internal/grafana。我也许可以再创造一个服务,运行类似darkhttpd ... --forward-all http://monitoring.internal/grafana的东西,并创建一个入口对象将/映射到该服务,但似乎应该这样做

看起来我在本地运行的是Traefik 2.4.8:

$ kubectl -n kube-system exec -it deployment/traefik -- traefik version
Version:      2.4.8
Codename:     livarot
Go version:   go1.16.2
Built:        2021-03-23T15:48:39Z
OS/Arch:      linux/amd64

我找到了这个1.7版本的文档,它表明有一个注释正是为了这个目的:

  • traefik.ingress.kubernetes.io/app-root: "/index.html":重定向

但是在grafana入口对象上设置它似乎没有没有任何影响,我还没有找到2.x的类似文档)我四处看了看在这里,例子)。

设置这种重定向的正确方法是什么?

因为我还没能弄清楚交通问题,我想我应该把我的解决方案贴在这里,以防其他人遇到同样的情况。我希望有人知道正确的方法来做这件事,如果我找到了,我会更新这个答案。

我添加了一个新的部署,将darkhttpd作为一个简单的director运行:

apiVersion: apps/v1
kind: Deployment
metadata:
name: redirector
spec:
replicas: 1
template:
spec:
containers:
- name: redirector
image: docker.io/alpinelinux/darkhttpd
ports:
- containerPort: 8080
args:
- --forward-all
- http://monitoring.internal/grafana

对应的Service:

apiVersion: v1
kind: Service
metadata:
name: redirector
spec:
ports:
- port: 8080
protocol: TCP
targetPort: 8080

和以下Ingress对象:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: redirector
annotations:
kubernetes.io/ingress.class: traefik
spec:
rules:
- host: monitoring.internal
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: redirector
port:
number: 8080

这些都是用自定义部署的,由它来处理在适当的位置添加标签和选择器。的kustomization.yaml看起来像:

apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- deployment.yaml
- ingress.yaml
- service.yaml
commonLabels:
component: redirector

所有这些就绪后,对http://monitoring.internal/的请求将击中重定向器pod。

相关内容

  • 没有找到相关文章

最新更新