kubernetes更新容器配置文件

时间:2017-03-08 07:19:41

标签: kubernetes

有没有办法在运行时更新容器(或者更准确地说是特定应用程序的所有正在运行的容器)配置文件?

让我们说我有一个配置文件,我的应用程序每次需要访问一些配置值时都会读取,我决定在应用程序运行时更改该值,以便下次读取值时它将更新值。
从查看kubernetes文档感觉应该有一些kubectl命令允许它,但我无法找到它。
另外我猜我可以通过滚动更新这些容器来实现类似的结果,对吗?

1 个答案:

答案 0 :(得分:1)

您需要查看confmapssecrets

许多应用程序需要通过配置文件,命令行参数和环境变量的某种组合进行配置。这些配置工件应与图像内容分离,以保持容器化应用程序的可移植性。

您可以使用confmap存储让我们说nginx配置,然后编辑配置图,编辑将在正在运行的容器上生效。 (在nginx情况下,您需要重新加载nginx服务,以便新配置生效。)

示例Yaml:

kind: ConfigMap
apiVersion: v1
metadata:
  creationTimestamp: 2016-02-18T19:14:38Z
  name: example-config
  namespace: default
data:
  example.property.1: hello
  example.property.2: world
  example.property.file: |-
    property.1=value-1
    property.2=value-2
    property.3=value-3

从exitsting配置文件创建configmap

kubectl create configmap <confmap name> --from-file=path/to/config.conf

要修改configmap

kubectl edit configmap <confmap name>

Secrets与configmaps类似,它们仅用于安全数据,如私钥,密码等。