簡體   English   中英

kubernetes ingress 有版本控制嗎?

[英]Are there any versioning for kubernetes ingress?

我想知道入口配置是否有類似於我們在部署中的版本控制。 假設存在錯誤配置,我想恢復到以前的配置。 我想了解 ingress 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 本身不提供此功能,Rancher 之類的管理工具也不提供此功能。

如果你想這樣做,你需要一個 infra-as-code 工具,比如 Terreform、ansible 等。這些的配置文件可以在 repo 中進行版本控制。

即使沒有這些,您也可以獨立導出給定入口 yaml,並將其提交到存儲庫。

查看解決方案的方式略有不同 - 您可以使用 gitOps。 我的意思是你可以把你所有的 yaml 放在一個 git repo 中,在你的集群上安裝 ArgoCD,然后讓 ArgoCD 為你做同步。 當你意識到你在 yaml 文件中搞砸了一些東西的那一刻,只需在 git repo 中恢復提交。 這樣你就可以維護歷史並獲得一個優雅的、非自以為是的解決方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM