我拿到了一个没有配置文件的 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 中,或者您是否应该只是即时进行修改 - 这完全由您决定;任何讨论这个问题的尝试都可能会引起争端。