[英]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.