2017-03-08 3 views
0

Gibt es eine Möglichkeit, einen Container (oder genauer gesagt alle laufenden Container einer bestimmten Anwendung) Konfigurationsdatei zu aktualisieren, während es läuft?

Sagen wir, dass ich eine Konfigurationsdatei habe, die meine Anwendung jedes Mal liest, wenn sie auf einige Konfigurationswerte zugreifen muss, und ich habe beschlossen, diesen Wert während der Ausführung der Anwendung zu ändern, damit das nächste Mal der Wert gelesen wird sei der aktualisierte Wert.
Aus dem Blick auf die Kubernetes-Dokumentation Es fühlt sich an, als ob es einen kubectl-Befehl geben sollte, der es erlaubt, aber ich konnte es nicht finden.
Auch ich denke, dass ich ähnliche Ergebnisse erzielen kann, indem ich ein rollendes Update für diese Container mache, oder?Kubernetes Update-Container Konfigurationsdatei

Antwort

1

Sie müssen sich confmaps und secrets ansehen.

Viele Anwendungen erfordern eine Konfiguration über eine Kombination von Konfigurationsdateien, Befehlszeilenargumenten und Umgebungsvariablen. Diese Konfigurationsartefakte sollten vom Bildinhalt entkoppelt sein, um containerisierte Anwendungen tragbar zu halten.

Sie können confmap verwenden, um zu speichern, sagen wir nginx config, dann bearbeiten Sie die Confmap, und die Änderungen werden auf den laufenden Containern ausgeführt. (In nginx Fall müssen Sie den nginx Dienst neu zu laden, um die neue Konfiguration wirksam wird.)

Beispiel 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 

So erstellen configmap aus exitsting Konfigurationsdatei:

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

zu bearbeiten configmap:

kubectl edit configmap <confmap name> 

Secrets sind configmaps ähnlich, sie werden nur für sichere Daten verwendet, wie private Schlüssel, Passwort usw.