如何在没有原始配置的情况下安全地更新现有的 Kubernetes 服务器

如何在没有原始配置的情况下安全地更新现有的 Kubernetes 服务器

我拿到了一个没有配置文件的 Kubernetes 集群,也没有使用 helm 进行设置。作者说他们只是从命令行创建了所有内容。这是一个带有 nginx 入口控制器的单个 API 服务器的小型/新集群。我对 Kubernetes 了解得足够多,可以熟悉它,并能够添加新的 Web 服务器,但现在我需要更深入地了解并更新现有配置。具体来说,我想在 nginx 控制器上启用 prometheus 指标,但我不想破坏任何东西。

是否有标准方法可以从集群中检索现有配置(部署、服务等)、进行修改并应用它们?或者是否有一种方法可以修补现有配置的各个部分,而无需创建新的 yaml 文件?

我知道我可以通过如下方式获取当前配置:

kubectl get services -n nginx -o yaml

该输出具有其他字段,例如 creationTimestamp、uid 等,我想我需要删除它们。或者我是否可以将输出原封不动地保存到 yaml 文件中,进行修改以启用 prometheus,然后将配置应用回控制器?它会忽略 kube 创建的字段吗?我是否应该考虑其他方法?

其次,我应该将这些配置存储在存储库中吗,或者这只是完成事情的方式?

答案1

似乎您已经拥有了所需的一切;仅需考虑一些小问题:

  • kubectl -n <ns> get <CRD> -o yaml将为您提供带有一些只读标识符的输出,即使它们保留其值,您也无法重新定义它们,因此这些不适合将它们保存为纯文本文件。
  • 使用kubectl edit instead
  • 至于您是否应该将它们保存在任何您想要的 VCS 中,或者您是否应该只是即时进行修改 - 这完全由您决定;任何讨论这个问题的尝试都可能会引起争端。

相关内容