Kubernetes 配置:在代码存储库上与在 helm 图表存储库上

2023-12-31

Helm 被宣传为“管理 k8s 上应用程序部署的方式”。

我们的微服务具有代码存储库和可部署的 1 对 1 映射,我发现将 k8s 配置映射与代码一起使用要方便得多,以便它们一起发展,例如为功能标志添加新的环境变量时。

然而,我们维护的是一个 helm Charts git 存储库,需要偶尔与代码同步更新。

最佳实践是什么:

  • 何时使用舵图?当代码存储库和可部署具有一对一映射时是否适用?或者主要是为了协调复合应用程序的部署?
  • 您是否在每个存储库中成功使用了 Helm Chart(而不是对所有图表使用单个存储库)?
  • 如果使用 vanilla k8s 配置映射来配置 git 存储库的部署,您遇到了哪些问题? IE。你什么时候开始需要掌舵?

希望它不要太笼统或固执己见,但很乐意进行编辑以使其更加具体。


我们也遇到过一些同样的问题Activiti https://github.com/Activiti云项目所以可以根据我的经验回答:

1 何时使用舵图?当代码存储库和可部署具有一对一映射时是否适用?或者主要是为了协调复合应用程序的部署?

如果您发现自己需要针对不同环境进行不同配置,那么 helm 可能会很有用。如果您的外部使用者也想使用您的可部署项并将其部署到自己的环境中,或者扩展或进一步配置可部署项,则更加有用。

2 您是否在每个存储库中成功使用了 Helm Chart(而不是对所有图表使用单个存储库)?

We have 做了这个 https://github.com/Activiti/ttc-rb-english-campaign/tree/65d52c3adb9edd63f0e214f8e8bd44e8ee28df7b/charts/ttc-rb-english-campaign 出于某些目的 https://github.com/Activiti/ttc-docs/blob/c4529b3ddcfb5a6da75eb27f28e2c08c53d5a23f/workshop.md如果您使用的是默认值詹金斯-X https://jenkins.io/projects/jenkins-x/,它为您提供了一个专为特定的 CI/CD 方式而设置的 kubernetes 集群。它包括一个图表博物馆 https://github.com/helm/chartmuseum在该集群中,当您使用 Jenkins-X 的默认管道构建应用程序时,图表将发布到内部图表博物馆。

然而,我们已经还使用了单个存储库 https://github.com/Activiti/activiti-cloud-charts。如果您使用托管图表,这是一种自然的方法github页面存储库 https://github.com/technosophos/tscharts因为如果源与托管位置位于同一位置,则可以更轻松地构建图表包并发布它们。但我认为这没有必要——如果你设置 CI 来这样做,你应该能够将打包的图表添加到 docs 目录并重新索引存储库 https://github.com/technosophos/tscharts。这意味着每个项目的 CI 都需要对 helm repo 项目进行提交。

3 如果使用 vanilla k8s 配置映射来配置 git 存储库的部署,您遇到了哪些问题? IE。你什么时候开始需要掌舵?

与 1 一样,如果您需要能够在部署时更改配置(例如设置特定于集群的 url)或进行分发以允许其他人创建覆盖默认值的新包,那么您确实获得了价值。能够将某些配置外部化为部署时参数也可能有所帮助,这样特定的参数就不必存在于 git 中(例如,您可能想使用某些密码来执行此操作)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Kubernetes 配置:在代码存储库上与在 helm 图表存储库上 的相关文章

随机推荐

  • 什么时候TextureView的“消费者端”关闭?

    Camera2 API 的 Google 官方示例之一 https github com googlesamples android Camera2Basic患有相同BufferQueue has been abandoned proble
  • 调整 JTable 中的一个单元格而不是整行

    我遇到了一个小问题 正在努力解决它 基本上发生的事情是我有一个 JTable 它由我从 API 调用获得的数组填充 我目前所拥有的是 如果设备显示为在线 它将变为绿色 如果离线 则变为浅灰色 问题是它影响整个 ROW 而不仅仅是状态 CEL
  • 是否可以在android程序中使用com.sun.net.httpserver包?

    我想在 Android 中创建一个 HTTP 服务器 我想在这个程序中使用 com sun net httpserver 您认为 可以在Android程序中使用这个包吗 我写了一个服务来做到这一点 我的程序如下 import android
  • 可重复读取和第二次丢失更新问题

    使用可重复读隔离级别 仍然有可能丢失更新 第二个丢失更新问题 例如 在隔离级别设置为RR的场景中 1 事务t1从r1行读取数据 2 事务t2从r1行读取相同的数据 3 t1修改 1中读取的数据并将数据提交给r1 4 t2修改 2中读取的数据
  • 从 jquery 调用 json web 服务时出错

    我在谷歌上搜索了同样的问题 但似乎找不到任何帮助 如有任何帮助 我们将不胜感激 我用 C 创建了一个 webservice asmx WebMethod ScriptMethod public ListObj GetList string
  • 如何使 leftBarButtonItem 看起来像 backBarButtonItem?

    默认的解决方案不合适 更改之前的 ViewController 标题 我需要创建自己的函数来控制按钮的触摸 制作 leftBarButtonItem 并隐藏 backBarButtonItem leftBarButtonItem 看起来不像
  • Win32 消息框不出现

    我遇到了一个奇怪的问题 我正在 VC 2008 中制作一个 Win32 应用程序 制作一个类来封装大部分工作 以便在调用时轻松重复MessageBox 消息框已创建 我认为 但除非我按 Alt 键 否则不会显示 到底发生了什么 我运行程序
  • 添加%20而不是空格

    我想这是一个小问题 但我不得不在这里问 因为我的项目不够了 当我将字符串传递给另一个控制器中的函数时 它将空格更改为 20 符号 我猜控制器认为字符串作为 url 传递并对其进行编码 但我不知道如何删除它 或者如果可能的话不要让它将空格更改
  • 如何使用 .aspx 文件检查服务器上运行的 ASP .NET MVC 版本?

    例如 对于 NET 版本 我用以下方法解决 The NET version is 但是 ASP NET MVC 版本又如何呢 提前致谢 typeof Controller Assembly GetName Version
  • 为什么 getchar() 在 scanf() 之后不等我按 Enter 键?

    我正在学习 C 我正在使用 getchar 来停止命令窗口 这样我就可以看到正在进行的练习 但它不起作用 这是一个示例 include
  • 修改函数内的列表

    假设我有带有列表参数的函数 并且在其主体内我想通过将数组的元素复制到列表来修改传递的列表 def function1 list arg a function2 function2 returns an array of numbers li
  • 重叠图像与图像贴图相互遮挡

    信息 图像具有大的透明部分 因此每个图像都必须重叠才能创建所需的效果 具体来说 每个图像的可点击部分都是奇怪的梯形形状 意味着相互挤压 图像的图像映射的大部分与其他附近 梯形 图像的透明部分重叠 我不认为 z 索引的任何改变能解决这个问题
  • Git 标签发布版本?

    预发布版本可以通过紧跟在补丁版本后面附加破折号和一系列点分隔的标识符来表示 示例 1 0 0 alpha 1 0 0 alpha 1 1 0 0 0 3 7 1 0 0 x 7 z 92 semver org http semver org
  • 仅提交存储库根目录上的属性更改,而不是文件

    我有一个 SVN 存储库 其中包含未提交的文件更改 根文件夹上的 svn externals 属性也发生了变化 如何提交属性更改 而不提交对文件本身的更改 为了仅提交在命令行上指定的显式路径 请使用 depth empty选项例如在具有新修
  • Django 按两个字段对项目进行排序,但如果它们为零则忽略它们

    我有以下模型 为了解决这个问题而大大简化 class Product models Model price models DecimalField max digits 8 decimal places 2 sale price model
  • WindowBuilder 无法显示 GUI。无法加载组件 javax.swing.JFrame 的 *.wbp-component.xml 描述

    我使用的是 Eclipse 2021 9 版本 并且已经安装了 windowbuilder 当我单击设计器选项卡时会发生此错误 有谁能够帮助我 我遇到了同样的问题 我刚刚更新了 WindowBuilder Nightly Build 1 9
  • 如何在SASS中将整数转换为十六进制

    代替类似的东西地图数据结构 http chriseppstein github ioChris Eppstein 提到 SASS 正在进行的工作 我正在尝试实现类似的目标 将字符串映射到相应的十六进制值 该值将用于指定 CSS 的 unic
  • 如何在 Spring Boot 2.0 中注册自定义环境后处理器?

    我按照这个中的确切步骤进行操作文档 https docs spring io spring boot docs 1 5 x SNAPSHOT reference htmlsingle boot features application ev
  • IE8 中的 Jquery 问题

    Jquery 在 Safari 和 Firefox 中运行良好 在 IE8 中 使用开发人员工具 我收到错误 无法获取位置属性 无效参数 jquery 1 3 2 js 第 12 行字符 12949 通过调试 脚本突出显示字符 J G K
  • Kubernetes 配置:在代码存储库上与在 helm 图表存储库上

    Helm 被宣传为 管理 k8s 上应用程序部署的方式 我们的微服务具有代码存储库和可部署的 1 对 1 映射 我发现将 k8s 配置映射与代码一起使用要方便得多 以便它们一起发展 例如为功能标志添加新的环境变量时 然而 我们维护的是一个