Kubernetes Ingress 重定向设置

发布于 2025-01-17 04:16:41 字数 702 浏览 2 评论 0原文

我有一个 avi Kubernetes 入口,想要将 / 重定向到 /ui 。是否可以对 Ingress 路由规则进行操作。

poc.xxx.com/ -->如何重定向到poc.xxx.com/ui

poc.xxx.com/ui --> ui-service

poc.xxx.com/backend -->后端服务

我的入口 Yaml

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: poc-ingress
spec:
  rules:
    - host: poc.xxx.com
      http:
       paths:
       - path: /ui
         pathType: Prefix
         backend:
           service:
            name: ui-service
            port: 
             number: 443
       - path: /backend
         pathType: Prefix
         backend:
           service:
            name: backend-service
            port:
             number: 443

I have a avi Kubernetes ingress and want to redirect / to /ui . Is it possible to do on Ingress routing rules.

poc.xxx.com/ --> How to redirect it to poc.xxx.com/ui

poc.xxx.com/ui --> ui-service

poc.xxx.com/backend --> backend-service

My ingress Yaml

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: poc-ingress
spec:
  rules:
    - host: poc.xxx.com
      http:
       paths:
       - path: /ui
         pathType: Prefix
         backend:
           service:
            name: ui-service
            port: 
             number: 443
       - path: /backend
         pathType: Prefix
         backend:
           service:
            name: backend-service
            port:
             number: 443

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

墨落成白 2025-01-24 04:16:41

如果您执行类似的操作,/ 上的任何请求都会转移到 ui 服务

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: poc-ingress
spec:
  rules:
    - host: poc.xxx.com
      http:
       paths:
       - path: /
         pathType: Prefix
         backend:
           service:
            name: ui-service
            port: 
             number: 443
       - path: /backend
         pathType: Prefix
         backend:
           service:
            name: backend-service
            port:
             number: 443

,但是如果您正在寻找重定向解决方案,您可以按照以下选项

添加此注释在 ingress 中:

nginx.ingress.kubernetes.io/server-snippet: |
      location ~ / {
         rewrite / https://test.example.com/ui permanent;
      }

如果请求来自 / ,它将根据您的意愿重定向到另一个域或 ui 路径。

您还可以创建两个入口,如下所示,第一个入口检查 backend/,而另一个入口处理 ui

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: poc-ingress
  annotation:
    nginx.ingress.kubernetes.io/server-snippet: |
      location ~ / {
         rewrite / https://test.example.com/ui permanent;
      }
spec:
  rules:
    - host: poc.xxx.com
      http:
       paths:
       - path: /backend
         pathType: Prefix
         backend:
           service:
            name: backend-service
            port:
             number: 443
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ui-ingress
spec:
  rules:
    - host: poc.xxx.com
      http:
       paths:
       - path: /ui
         pathType: Prefix
         backend:
           service:
            name: ui-service
            port: 
             number: 443

不要忘记使用ingress 中的 ingress 类注释。

What if you do something like this, any request at / will get moved to ui service

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: poc-ingress
spec:
  rules:
    - host: poc.xxx.com
      http:
       paths:
       - path: /
         pathType: Prefix
         backend:
           service:
            name: ui-service
            port: 
             number: 443
       - path: /backend
         pathType: Prefix
         backend:
           service:
            name: backend-service
            port:
             number: 443

However still if you are looking for a redirect solution you can follow below option

Add this annotation in ingress :

nginx.ingress.kubernetes.io/server-snippet: |
      location ~ / {
         rewrite / https://test.example.com/ui permanent;
      }

if request comes at / it will get redirected to another domain or ui path as you wish.

You can also create the two ingress looks like this, first one check backend and / while another one handles ui :

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: poc-ingress
  annotation:
    nginx.ingress.kubernetes.io/server-snippet: |
      location ~ / {
         rewrite / https://test.example.com/ui permanent;
      }
spec:
  rules:
    - host: poc.xxx.com
      http:
       paths:
       - path: /backend
         pathType: Prefix
         backend:
           service:
            name: backend-service
            port:
             number: 443
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ui-ingress
spec:
  rules:
    - host: poc.xxx.com
      http:
       paths:
       - path: /ui
         pathType: Prefix
         backend:
           service:
            name: ui-service
            port: 
             number: 443

Do not forget to use the ingress class annotation in ingress.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文