2016-11-08 3 views
0

Ich habe derzeit eine Testumgebung mit ~ 16 Diensten, die auf 4 Mikroinstanzen verteilt sind. Instanzen werden von einer Autoscaling-Gruppe (ASG) verwaltet. Wenn ich das AMI meiner Cluster-Instanzen aktualisieren muss, mache ich zur Zeit Folgendes:So ersetzen Sie ECS-Clusterinstanzen ohne Ausfallzeiten oder reduzierte Redundanz?

  1. Erstellen Sie eine neue Startkonfiguration, bearbeiten Sie ASG mit der neuen Startkonfiguration.
  2. Trennen Sie alle Instanzen mit Ersatzoption von der ASG, und warten Sie, bis die neuen Instanzen in der Clusterinstanzliste aufgeführt sind.
  3. MANUALLY die alten Instanzen aus dem ECS-Cluster finden und deregistrieren (sehr schwierig)
  4. nun die Dienste getötet von ECS aufgrund Deregistrierung der Instanzen :(
  5. Warten Sie 3 Minuten, bis die Dienste auf die neuen Instanzen neu gestartet werden
  6. MANUALLY die EC2-Instanzen in der EC2-Instanz Liste finden und beenden sie (sehr sehr vorsichtig, nicht die neuen zu beenden).

Mit diesem Ansatz habe ich etwa 3 Minuten Ausfallzeit und ich zittere aus der Idee, dies in der Produktionsumgebung zu tun .. Gibt es einen Weg, t zu tun Dies ist ohne Ausfallzeiten möglich, aber die Gesamtanzahl der Instanzen bleibt gleich (also ohne 200% Skalierungseinstellungen usw.).

Antwort

0

Sie können die Startkonfiguration mit dem neuen AMI aktualisieren und dann der ASG zuweisen. Stellen Sie sicher, dass die folgend in dem Benutzerdatenabschnitt enthält:

echo ECS_CLUSTER=your_cluster_name >> /etc/ecs/ecs.config 

Dann beenden eine Instanz zu einem Zeitpunkt, und warten, bis die neuen und automatisch vor dem Beenden der nächsten registriert ist.

Dies könnte auch skriptfähig sein, um automatisiert zu werden.

+0

Ja, ich habe das in meiner Konfig. Ihre Lösung erfordert jedoch, dass mindestens zwei Dienste ausgeführt werden und Sie für einige Zeit in reduzierter Redundanz/Skalierung arbeiten. – Pepster

Verwandte Themen