0

我正在尝试为使用“kind”(minikube 的轻量级替代品)运行的本地 kubernetes 集群设置 helmfile 部署。我为我的应用程序设置了图表,这些图表都正确部署,但是我需要一个 nginx-ingress 控制器。幸运的是,'kind' 提供了一个,我目前正在使用以下命令应用它:

kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/kind/deploy.yaml

我应该通过按一下按钮来设置其他所有内容,但仍然必须“记住”(并且还要训练我的同事记住......)才能运行这个附加命令,这似乎是不正当的。

我意识到我可以复制和粘贴并创建自己的版本,但我想及时了解源代码所做的任何更改。是否可以创建引用外部模板的图表?

我正在寻找使用 helm 或 helmfile 的解决方案。

4

1 回答 1

1

您链接的 YAML 文件似乎是从ingress-nginx图表生成的。

子图

您可以通过将 ingress-nginx 作为依赖项添加到您自己的图表中来将其作为子图表包含在 Helm 3 中。在 Helm 3 中,这是通过 中的dependencies字段完成的Chart.yaml,例如:

apiVersion: v2
name: my-chart
version: 0.1.0
dependencies:
  - name: ingress-nginx
    version: ~4.0.6
    repository: https://kubernetes.github.io/ingress-nginx
    condition: ingress-nginx.enabled

但是,如果您需要在同一个集群中安装您自己的图表的多个版本,这可能会出现问题。要处理这个问题,您需要考虑多个 Ingress 控制器的影响。

图表

入口控制器能够处理来自多个命名空间的各种版本的入口。因此,我建议将 ingress-nginx 与依赖于它的您自己的版本分开维护。这意味着像您一样安装 ingress-nginx 或作为单独的图表(指南)。

如果你走这条路,有一些工具可以帮助开发人员更轻松地采取不干涉的方法来设置他们的 K8s 环境。一些流行的包括SkaffoldDevSpaceTiltHelmfile

于 2021-11-08T04:54:47.003 回答