Was wird mit K8S als bewährte Methode für die Verwaltung mehrerer Umgebungen (QS, Staging, Produktion, Entwicklung usw.) angesehen?
Angenommen, ein Team arbeitet an einem Produkt, für das einige APIs zusammen mit einer Front-End-Anwendung bereitgestellt werden müssen. Normalerweise erfordert dies mindestens 2 Umgebungen:
- Staging: Für Iterationen / Tests und Validierungen vor der Freigabe an den Client
- Produktion: Dies ist die Umgebung, auf die der Kunde Zugriff hat. Sollte stabile und gut getestete Funktionen enthalten.
Angenommen, das Team verwendet Kubernetes. Was wäre eine gute Vorgehensweise, um diese Umgebungen zu hosten? Bisher haben wir zwei Optionen in Betracht gezogen:
- Verwenden Sie für jede Umgebung einen K8s-Cluster
- Verwenden Sie nur einen K8s-Cluster und bewahren Sie diese in verschiedenen Namespaces auf.
(1) Scheint die sicherste Option zu sein, da sie das Risiko potenzieller menschlicher Fehler und Maschinenausfälle minimiert, die die Produktionsumgebung gefährden könnten. Dies ist jedoch mit den Kosten für mehr Master-Maschinen und auch mit den Kosten für mehr Infrastrukturmanagement verbunden.
(2) Sieht so aus, als würde dies das Infrastruktur- und Bereitstellungsmanagement vereinfachen, da es einen einzigen Cluster gibt, wirft jedoch einige Fragen auf:
- Wie stellt man sicher, dass ein menschlicher Fehler die Produktionsumgebung beeinflusst?
- Wie kann sichergestellt werden, dass eine hohe Last in der Staging-Umgebung keinen Leistungsverlust in der Produktionsumgebung verursacht?
Es könnte noch andere Bedenken geben, daher wende ich mich an die K8-Community auf StackOverflow, um besser zu verstehen, wie Menschen mit solchen Herausforderungen umgehen.