gpt4 book ai didi

kubernetes - 在 k3s 上使用 traefik ingress 生成重定向?

转载 作者:行者123 更新时间:2023-12-05 05:57:59 28 4
gpt4 key购买 nike

我在 k3s 下运行 prometheus 和 grafana,可以(分别)访问 http://monitoring.internal/prometheushttp://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 的服务,并创建一个 Ingress 对象这会将 / 映射到该服务,但似乎应该是用 Traefik 本身做到这一点的一种方式。

看起来我在本地运行 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

我找到了 this documentation for 1.7这表明有一个注释正是用于此目的:

  • traefik.ingress.kubernetes.io/app-root: "/index.html": 重定向所有对/到定义路径的请求。

但是在 grafana ingress 对象上的设置似乎没有任何影响,我还没有找到 2.x 的类似文档(我环顾四周 here , 为了示例)。

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

最佳答案

因为我还没有弄清楚 traefik,所以我想我应该在这里发布我的解决方案,以防其他人遇到同样的情况。我希望有人知道正确的方法来做到这一点,如果我知道我会更新这个答案。

我添加了一个运行 darkhttpd 的新部署作为一个简单的导演:

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

相应的服务:

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

这些都是用kustomize部署的, 它负责在适当的地方添加标签和选择器。这kustomization.yaml 看起来像:

apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization

resources:
- deployment.yaml
- ingress.yaml
- service.yaml

commonLabels:
component: redirector

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

关于kubernetes - 在 k3s 上使用 traefik ingress 生成重定向?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68642661/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com