为什么Kubernetes Flux需要多个配置间隔?

vatpfxk5  于 2023-10-17  发布在  Kubernetes
关注(0)|答案(2)|浏览(111)

我是Flux的新手。我很难理解间隔配置。我在跟踪原始文档Flux

flux create source git podinfo \
--url=https://github.com/stefanprodan/podinfo \
--branch=master \
--interval=30s \
--export > ./clusters/my-cluster/podinfo-source.yaml

flux create kustomization podinfo \
--target-namespace=default \
--source=podinfo \
--path="./kustomize" \
--prune=true \
--interval=5m \
--export > ./clusters/my-cluster/podinfo-kustomization.yaml

前一个间隔(30 s)应该控制flux查看Git新提交的频率,而后一个间隔(5 m)控制flux将git中的内容应用到集群的频率,而不管新提交。例如,使用其他方法删除的资源将重新创建。
问题:有两个间隔的意义是什么?我最好的猜测是是不是因为如果没有前一个间隔,Kustomize将没有办法最终更新它正在观察的路径中的清单?相反,它将能够协调k8s集群中的手动更改?!

baubqpgj

baubqpgj1#

我在这里找到了答案https://fluxcd.io/docs/flux-e2e/。本质上,Kustomize控制器是唯一负责将更改应用到集群的控制器,包括来自源控制器的新提交。因此,他们完成两个独立的任务。

06odsfpq

06odsfpq2#

在第一个命令中,您正在创建一个git仓库(kubernetes CRD),这将检测flux以检查定义的仓库上的所有30个更新。如果有更改,它将应用于集群中的所有引用项。
独立于git级别的更改,集群中可能会有漂移(例如:通过手动更改。)
你的第二个命令是创建一个通量kustomization,间隔为5米。kustomization间隔与git间隔无关。即使在最后5m内没有推送任何git更改,flux也会每隔5m协调一次路径和所有涉及的资源。
请记住,这不包括HelmReleases资源输出。(这在一开始真的很难理解,我个人很想知道为什么在重新考虑kustomization级别后,事情没有得到协调)要进一步阅读和配置通量舵漂移检测和校正,请检查文档:https://fluxcd.io/flux/components/helm/helmreleases/#drift-detection

相关问题