如何为 Kubernetes 设置入口控制器,其中一个端点用于测试环境,另一个用于生产环境? [英] How do I setup Ingress controller for Kubernetes where one end point for test environment and another for production environment?

查看:32
本文介绍了如何为 Kubernetes 设置入口控制器,其中一个端点用于测试环境,另一个用于生产环境?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在 Kubernetes 的 deployment.yaml 中为我的服务设置 Ingress 控制器.

I'm setting up Ingress controller for my service in deployment.yaml of Kubernetes.

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: {env}
  annotations:
    traefik.ingress.kubernetes.io/frontend-entry-points: "http,https"
    ingress.kubernetes.io/force-hsts: "true"
    traefik.ingress.kubernetes.io/redirect-regex: ^http://(.*)
    traefik.ingress.kubernetes.io/redirect-replacement: https://$1
    kubernetes.io/ingress.class: "traefik"

spec:
  rules:
    - host: "qa.mywebsite.com"
      http:
        paths:
          - backend:
              serviceName: serviceName-{env}
              servicePort:8080

如何设置 Ingress 控制器,以便将 QA pod 中的流量路由到 QA 端点,将 Prod prod 的流量路由到 Prod pod?

How can I set it up Ingress controller so that the traffic in QA pods are routed to the QA end point, Prod prods' traffic are routed to Prod pods?

推荐答案

不同阶段的环境分离是Kuebernetes应用部署的重要因素之一.

我建议在这里创建两个单独的入口.

I would recommend here to create two separate ingress.

一个用于生产,另一个用于 QA.(如果你有更多的环境,你可以拥有更多).入口规则将根据主机进行控制.

One for Production and another one for QA. (If you have more environment, you can have more). Ingress Rules would be controlled based on host.

QA 环境入口可能是这样的.

QA environment ingress could be like this.

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: {env}
  annotations:
    traefik.ingress.kubernetes.io/frontend-entry-points: "http,https"
    ingress.kubernetes.io/force-hsts: "true"
    traefik.ingress.kubernetes.io/redirect-regex: ^http://(.*)
    traefik.ingress.kubernetes.io/redirect-replacement: https://$1
    kubernetes.io/ingress.class: "traefik"

spec:
  rules:
    - host: "qa.mywebsite.com"
      http:
        paths:
          - backend:
              serviceName: serviceName-{env}
              servicePort:8080

同样,您也可以在生产环境中创建另一个入口(此处的主机不同).

Similarly you can also have another ingress in Production Environment(host is different here).

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: {env}
  annotations:
    traefik.ingress.kubernetes.io/frontend-entry-points: "http,https"
    ingress.kubernetes.io/force-hsts: "true"
    traefik.ingress.kubernetes.io/redirect-regex: ^http://(.*)
    traefik.ingress.kubernetes.io/redirect-replacement: https://$1
    kubernetes.io/ingress.class: "traefik"

spec:
  rules:
    - host: "prod.mywebsite.com"
      http:
        paths:
          - backend:
              serviceName: serviceName-{env}
              servicePort:8080 

这篇关于如何为 Kubernetes 设置入口控制器,其中一个端点用于测试环境,另一个用于生产环境?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆