2016-11-01 1 views
1

Das env Element in spec.containers einen Pod hinzugefügt K8 Armaturenbrett mit bearbeiten nicht gerettet werden. Weiß jemand, was das Problem ist?Kubernetes Einsätze: Bearbeiten des ‚spec‘ ein YAML-Datei des pod nicht

Gibt es eine andere Möglichkeit, Umgebungsvariablen zu Pods/Containern hinzuzufügen?

Ich bekomme diese Fehlermeldung, wenn durch Editieren der Datei mit Nano das gleiche zu tun:

# pods "EXAMPLE" was not valid: 
# * spec: Forbidden: pod updates may not change fields other than `containers[*].image` or `spec.activeDeadlineSeconds` 

Dank.

Antwort

3

Nicht alle Felder können aktualisiert werden. Diese Tatsache wird manchmal in dem kubectl explain Ausgang für das Objekt erwähnt (und den Fehler bekam man Listen die Felder, die geändert werden können, so dass die andere wahrscheinlich nicht kann) .:

$ kubectl explain pod.spec.containers.env 
RESOURCE: env <[]Object> 

DESCRIPTION: 
    List of environment variables to set in the container. Cannot be updated. 

    EnvVar represents an environment variable present in a Container. 

Wenn Sie Ihre Pods mit einem Deployment object einsetzen, Dann können Sie die Umgebungsvariablen in ändern, die Objekt mit kubectl edit seit der Bereitstellung aktualisierten Versionen der Pod (s) ausrollen, die die Variable Änderungen und töten die älteren Pods, die nicht haben. Offensichtlich ändert diese Methode nicht den Pod an Ort und Stelle, aber es ist eine Möglichkeit, um zu bekommen, was Sie brauchen.

Eine weitere Option für Sie könnte ConfigMaps sein. Wenn Sie die Volume-Plugin-Methode für das Mounten der ConfigMap und verwenden, ist Ihre Anwendung so geschrieben, dass sie Änderungen am Volume erkennt und sich mit neuen Einstellungen bei Änderung neu lädt. Dies könnte eine Option sein (oder zumindest andere Ideen geben) Arbeite für dich).

Verwandte Themen