目前我正在使用 Kubeflow。这是一个相当大的设置,大约有 30 种不同的部署。Kubeflow 团队的默认清单是使用标准的 Kustomize 工具为不同环境(如本地、云、测试等)提供补丁。
但是,我仍然对所有这些配置感到不知所措和有限。我可以为整个项目快速导航和操作变量的唯一方法是使用 IDE 中的搜索和/或替换功能(是的,我知道 Kustomize 可以在每个环境中执行变量,但我想为所有部署执行此操作)。这很糟糕,因为一旦更换它就不可逆转。另一个问题是许多文件夹不只是命名base
或反向命名的文件夹太多base
,因此很难找到一些原始字段。当我只想组合不同环境的几个部分时,我也很挣扎。例如,他们为 dex auth 提供了 3 个不同的环境,1 个使用电子邮件,1 个使用 GitHub,1 个使用 Google。我希望我的设置拥有所有 3 个,但现在我无法轻松地重用这些环境中的配置。我必须创建自己的环境并挖掘每个环境,看看它们在补丁中做了哪些更改。
我从未尝试在类似的集群上设置 Jsonnet 配置(可能使用 Tanka 之类的工具)。我看到一些大公司在使用 Jsonnet。我知道的两个是 Grafana(他们甚至创建了 Tanka)和 Databricks(他们创建了自己的 Jsonnet 编译器)。与目前最流行的选择 Kustomize 相比,在 Jsonnet 中进行 k8s 配置管理的优缺点是什么?使用 Jsonnet(可能使用 Tanka)学习和管理 k8s 配置是否值得?