Ich bin der gleichen Cluster für 2 Namespaces teilenInszenierung und Produktion. Die einzigen Unterschiede zwischen den beiden Namensräume sind: (! Getrennte Persistenz zwischen Inszenierung und Produktion, natürlich)Staging und Produktion auf Kubernetes
- Volumes auf bestimmte Hülsen für die relative
- Ein paar Web-URLs montiert Adressierung
- Ein paar IPs zu Datenbanken für anspruchsvolle Persistenz verwendet
ich es geschafft haben, (2) zu adressieren und (3) wie folgt, um so eine einzige YAML Datei für alle ReplicationControllers aufrechtzuerhalten:
- Verwenden ConfigMaps lokal zu einem Namensraum eine beliebige Konfiguration zu definieren, die über Umgebungsvariablen in das übergeben wird Schoten
- Verwenden Dienstleistungen mit Endpoints einem DNS-Eintrag, der auf verschiedenen internen IPs
Aber ich bin nicht in der Lage, eine zufriedenstellende Art und Weise zu finden, eine Referenz für ein gcePersistentDisk ‚s pdName zu haben - Ich scheine einen ConfigMap, daher stumped ein wenig zu verwenden, kann nicht. Was wäre der geeignete Weg, um dies zu tun? Die beste Alternative scheint zu sein, 2 separate YAML Dateien mit verschiedenen Strings zu pflegen, aber das hat einen Code-Geruch, da es DRY verletzt.
Auch jeder konstruktiver Kommentar zu dem Rest meines Setup wie oben hoch :-)
geschätzt erwähnt
+1 Habe 'PersistentVolumeClaim' beim Lesen der Dokumente komplett verpasst! Gibt es eine Möglichkeit, eine Datei in 'kubectl create' zu pipen? Auf diese Weise können wir einfache String-Ersetzungen über einen "Top-Level" -Befehl ausführen, anstatt durch diese Hoops zu springen. – Angad
'sed ... | kubectl create -f-sollte funktionieren. – jayme
Ich denke "Schnurrbart" läuft in CLI ist ideal, vorausgesetzt, Sie können Ihre shtuff in eine nette JSON-Datei :-) https://www.npmjs.com/package/mustache – Angad