【问题标题】:Apply Github hosted Kubernetes file with Helm使用 Helm 应用 Github 托管的 Kubernetes 文件
【发布时间】:2021-12-20 08:44:01
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: kubernetes kubernetes-helm helmfile kind


    【解决方案1】:

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

    子图

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

    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
    

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

    图表

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-15
      • 2022-08-23
      • 2017-02-03
      • 2021-12-03
      • 2019-08-03
      • 1970-01-01
      相关资源
      最近更新 更多