【问题标题】:Are there any versioning for kubernetes ingress?kubernetes 入口是否有任何版本控制?
【发布时间】:2020-11-20 06:00:20
【问题描述】:

我想知道是否有类似于我们在部署中的入口配置的版本控制。假设有一个错误配置我想恢复到以前的配置。 我想了解入口 YAML 配置中的 generation

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    nginx.ingress.kubernetes.io/service-match: 'new-nginx: header("foo", /^bar$/)'           #Canary release rule. In this example, the request header is used.
    nginx.ingress.kubernetes.io/service-weight: 'new-nginx: 50,old-nginx: 50'                #The route weight.
  creationTimestamp: null
  generation: 1
  name: nginx-ingress
  selfLink: /apis/extensions/v1beta1/namespaces/default/ingresses/nginx-ingress
spec:
  rules:                                                        ##The Ingress rule.
  - host: foo.bar.com
    http:
      paths:
      - backend:
          serviceName: new-nginx
          servicePort: 80
        path: /
      - backend:
          serviceName: old-nginx
          servicePort: 80
        path: /

【问题讨论】:

    标签: kubernetes kubernetes-ingress


    【解决方案1】:

    Kubernetes 本身不提供此功能,像 Rancher 这样的管理工具也不提供。

    如果你想这样做,你需要一个基础设施即代码工具,比如 Terreform、ansible 等。这些的配置文件可以在 repo 中进行版本控制。

    即使没有这些,您也可以独立导出给定入口 yaml,并将其提交到 repo。

    【讨论】:

      【解决方案2】:

      查看解决方案的方式略有不同 - 您可以使用 gitOps。我的意思是你可以把你所有的 yaml 放在一个 git repo 中,在你的集群上安装 ArgoCD,然后让 ArgoCD 为你做同步。当你意识到你在 yaml 文件中搞砸了一些东西时,只需恢复 git repo 中的提交即可。这样一来,您就可以维护历史并获得一个优雅的、非固执己见的解决方案。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-10-13
        • 2014-03-10
        • 1970-01-01
        • 1970-01-01
        • 2021-01-28
        • 2021-04-17
        • 1970-01-01
        • 2020-06-09
        相关资源
        最近更新 更多