Mir wurde ein Kubernetes-Cluster ohne Konfigurationsdateien übergeben, der nicht mit Helm eingerichtet war. Der Autor sagte, sie hätten einfach alles über die Befehlszeile erstellt. Es ist ein kleiner/neuer Cluster für einen einzelnen API-Server mit einem Nginx-Ingress-Controller. Ich kenne mich gut genug mit Kubernetes aus, um damit zurechtzukommen, und konnte einen neuen Webserver hinzufügen, aber jetzt muss ich tiefer einsteigen und vorhandene Konfigurationen aktualisieren. Insbesondere möchte ich Prometheus-Metriken auf dem Nginx-Controller aktivieren, aber ich möchte nichts kaputt machen.
Gibt es eine Standardmethode, um die vorhandenen Konfigurationen (Bereitstellungen, Dienste usw.) aus dem Cluster abzurufen, Änderungen vorzunehmen und diese anzuwenden? Oder gibt es eine Möglichkeit, Aktualisierungen in einzelne Teile der vorhandenen Konfiguration einzufügen, ohne eine neue YAML-Datei erstellen zu müssen?
Ich verstehe, dass ich die aktuelle Konfiguration mit etwas wie Folgendem abrufen kann:
kubectl get services -n nginx -o yaml
Diese Ausgabe enthält zusätzliche Felder wie „CreationTimestamp“, „UID“ usw., die ich vermutlich entfernen muss. Oder kann ich die Ausgabe einfach so wie sie ist in einer YAML-Datei speichern, meine Änderungen vornehmen, um Prometheus zu aktivieren, und dann die Konfiguration wieder auf den Controller anwenden? Werden die von Kube erstellten Felder ignoriert? Gibt es einen anderen Ansatz, den ich in Betracht ziehen sollte?
Zweitens: Sollte ich diese Konfigurationen in einem Repository speichern, oder ist das einfach die Art, wie das gemacht wird?
Antwort1
Sieht so aus, als hätten Sie fast alles, was Sie brauchen. Es gibt nur ein paar Kleinigkeiten zu beachten:
kubectl -n <ns> get <CRD> -o yaml
gibt Ihnen eine Ausgabe mit einigen schreibgeschützten Bezeichnern, die Sie nicht neu definieren können, auch wenn sie ihre Werte behalten. Daher sind diese nicht dafür geeignet, sie als einfache Dateien zu behalten.- verwenden
kubectl edit instead
- Was die Frage betrifft, ob Sie diese in jedem beliebigen VCS beibehalten oder einfach spontan Änderungen vornehmen sollten, liegt die Entscheidung ganz bei Ihnen. Jeder Versuch, darüber zu diskutieren, wird wahrscheinlich einen Skandal auslösen.