【问题标题】:Storing and updating config files for my applications with kubernetes使用 kubernetes 为我的应用程序存储和更新配置文件
【发布时间】:2017-03-25 17:36:21
【问题描述】:

我的应用程序使用了一个配置文件。如何推送更新?应该如何存储它们以方便更新?数量?

应用程序的管道是 Git -> CI -> deb repo -> docker 注册表。所以对它的更新只是告诉 kubernetes 选择一个新的镜像。

如何处理配置文件?也许是同一个链,然后启动一个带有 NFS 的容器?此外,必须通过 SIGHUP 通知应用程序有关参数更改的信息。如何添加那个钩子?

【问题讨论】:

  • 您能否详细说明您要解决的问题?每个映像版本的配置是静态的还是动态的?你检查etcdzookeeper 手表了吗?
  • 配置独立于应用程序的版本。不明白etcdzookeeper 做了什么。它们与文件系统中的配置文件有什么关系?

标签: docker kubernetes


【解决方案1】:

您可以使用 kubernetes configMaps 进行配置。不要在容器镜像中烘焙配置。

您可以将配置公开为环境变量,也可以在 pod 内挂载为 volumes

ConfigMap 也可以从文件中生成。

在您的情况下,您似乎正在从特定位置的配置文件中读取,因此您可以使用configMap,然后将此 configMap 安装在您的应用程序将读取的相同位置,因此您不需要在您的应用中进行任何更改。

当您需要更新配置时,只需更新 configMap,然后出现的新 pod 将开始读取配置。我不知道如何在运行的 pod 中更新配置,我尝试的是先放大再缩小。

configMaps:https://kubernetes.io/docs/user-guide/configmap/

HTH

【讨论】:

  • 如果您无法在运行的 pod 中更新配置,对我来说真的没有意义。唯一的附加价值是传递环境变量(我不需要这些),因为容器自己不能这样做。
  • 如果你想在运行的 pod 中更新配置,这意味着你的容器不是完全无状态的,这不是你的应用在 k8s 容器中的样子。我建议您将应用设置为无状态,这样您就可以放心地重启 Pod 多次。
  • 为什么 k8s 告诉我我的应用应该是什么?我的应用程序有很重的部分,重启或中断连接的成本太高(它是一个多媒体服务器)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-16
  • 2021-11-06
  • 2019-03-05
  • 1970-01-01
  • 1970-01-01
  • 2013-07-05
相关资源
最近更新 更多