gpt4 book ai didi

kubernetes - 管理 kubernetes list 更改的正确方法是什么?

转载 作者:行者123 更新时间:2023-12-02 02:45:20 26 4
gpt4 key购买 nike

我已经使用 terraform 一段时间了,我真的很喜欢它。我也设置了Atlantis这样我的团队就可以有一个“GitOps”流程。这是我目前的流程:

  • 从 Terraform 文件中添加或删除资源
  • 将更改推送到 GitHub 并创建拉取请求
  • 亚特兰蒂斯发现变化并创建地形计划
  • 当 PR 获得批准时,Atlantis 会应用更改

  • 我最近发现自己需要使用 Amazon EKS 设置一些托管的 Kubernetes 集群。虽然 Terraform 能够创建大部分基本基础设施,但在设置一些 k8s 资源(不支持网关或入口,不支持 alpha/beta 功能等)时,它就不足了。因此,我一直依靠使用 kubectl 的手动方法:
  • 将资源添加到现有文件或创建新文件
  • 将一行添加到对新文件运行适当命令(kubectl apply 或 create)的 makefile
  • 如果我使用的是 Helm chart ,请添加一行 helm template然后 kubectl apply (我真的不喜欢使用分蘖,而且 helm3 无论如何都在摆脱它)
  • 如果我想删除一个资源,我会用 kubectl delete 手动删除。

  • 这个过程感觉远不如我们在 Terraform 中所做的那么干净。有几个关键问题:
  • 没有真正的试运行。使用 kubectl --dry-runkubectl diff并没有真正起作用,它只是一个客户端差异。服务器端差异函数目前处于 alpha
  • 没有状态文件。如果我从 list 中删除内容,我必须记住还要手动从集群中删除它。
  • 没有明确的方法来实现 gitops。我看过 Weaveworks Flux但这似乎更适合部署应用程序。
  • makefile 变得越来越复杂。感觉这不是可扩展的。

  • 我应该承认我对 Kubernetes 还很陌生,所以可能会忽略一些明显的东西。

    有没有办法让我在 Kubernetes 宇宙中实现类似于我在 Terraform 中所拥有的过程?

    最佳答案

    这更像是一个意见问题,所以我会回答一个意见。如果您喜欢管理配置,可以尝试以下一些工具:

  • 如果你想使用现有的 YAML 文件(配置)并使用更高级别的东西,你可以尝试 kustomize .
  • 如果您想使用 Jsonnet 管理 Kubernetes 配置你应该看看Ksonnet .请记住,将来将不支持 Ksonnet。

  • 如果你只想自动做一个 helm update以自动化的方式,那里还没有工具。此时您必须构建一些东西来协调一切。例如,我们最终创建了一个内部工具来执行此操作。

    关于kubernetes - 管理 kubernetes list 更改的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55565697/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com