Automatisierte Aufgaben- und Image-Bereinigung - Amazon Elastic Container Service

Automatisierte Aufgaben- und Image-Bereinigung

Jedes Mal, wenn eine Aufgabe auf einer Container-Instance platziert wird, prüft der Amazon ECS-Container-Agent, ob die Images, auf die in der Aufgabe verwiesen wird, die neuesten Abbilder des im Repository spezifizierten Tag sind. Wenn dies nicht der Fall ist, gestattet das Standardverhalten dem Agenten, die Abbilder aus den jeweiligen Repositorys abrufen. Wenn Sie die Abbilder in Aufgaben und Services häufig aktualisieren, kann sich der Container-Instance-Speicher schnell mit Docker-Images füllen, die Sie nicht mehr benötigen. Beispielsweise verwenden Sie vielleicht eine Pipeline für fortlaufende Integration und fortlaufende Bereitstellung (Continous Integration and continous deployment (CI/CD)).

Anmerkung

Das Verhalten des Amazon ECS-Agenten beim Abrufen von Images kann mit dem Parameter ECS_IMAGE_PULL_BEHAVIOR angepasst werden. Weitere Informationen finden Sie unter Konfiguration des Amazon ECS-Container-Agenten.

Ebenso können Container, die zu gestoppten Aufgaben gehören, mit ihren Protokollinformationen, Datenvolumen und anderen Artefakten Container-Instance-Speicherplatz einnehmen. Diese Artefakte eignen sich für das Debugging von Containern, die unerwarteterweise gestoppt wurden. Doch der Großteil dieses Speichers kann nach einem gewissen Zeitraum problemlos freigemacht werden.

Standardmäßig bereinigt der Amazon ECS-Container-Agent automatisch gestoppte Aufgaben und Docker-Images, die nicht von Aufgaben auf Ihren Container-Instances verwendet werden.

Anmerkung

Die Funktion der automatischen Image-Bereinigung erfordert mindestens die Amazon ECS-Container-Agenten-Version 1.13.0. Die neueste Version für Ihren Agent finden Sie unter Überprüfen des Amazon ECS-Container-Agenten.

Einstellbare Parameter

Mit den folgenden Agentenkonfigurationsvariablen können Sie Ihre automatische Aufgaben- und Abbildbereinigung an Ihre Bedürfnisse anpassen. Weitere Informationen zum Einrichten dieser Variablen auf Ihren Container-Instances finden Sie unter Konfiguration des Amazon ECS-Container-Agenten.

ECS_ENGINE_TASK_CLEANUP_WAIT_DURATION

Diese Variable gibt die Zeit an, die gewartet wird, bevor Container, die zu gestoppten Aufgaben gehören, entfernt werden. Der Abbild-Bereinigungsvorgang kann kein Abbild löschen, wenn noch ein Container darauf verweist. Wenn ein Abbild keine Referenzen zu Containern (entweder gestoppt oder noch in Ausführung) mehr hat, kann dieses Abbild ein Kandidat für die Bereinigung werden. Standardmäßig ist dieser Parameter auf 3 Stunden eingestellt. Sie können diesen Zeitraum jedoch auf bis zu 1 Minute verkürzen, wenn dies für Ihre Anwendung erforderlich ist.

ECS_DISABLE_IMAGE_CLEANUP

Wenn Sie diese Variable auf true einstellen, ist die automatische Abbild-Bereinigung auf Ihrer Container-Instance deaktiviert und es werden keine Abbilder automatisch entfernt.

ECS_IMAGE_CLEANUP_INTERVAL

Diese Variable gibt an, wie häufig der automatische Abbild-Bereinigungsvorgang prüft, ob zu löschende Abbilder vorhanden sind. Die Standardeinstellung ist 30 Minuten. Sie können diesen Zeitraum jedoch auch bis zu 10 Minuten verkürzen, wenn die Abbilder häufiger gelöscht werden sollen.

ECS_IMAGE_MINIMUM_CLEANUP_AGE

Über diese Variable wird festgelegt, wie viel Zeit mindestens zwischen dem Abrufen eines Abbilds und dem Löschen vergehen muss. So wird verhindert, dass gerade erst abgerufene Abbilder gelöscht werden. Die Standardeinstellung ist 1 Stunde.

ECS_NUM_IMAGES_DELETE_PER_CYCLE

Diese Variable gibt an, wie viele Abbilder bei einem einzigen Bereinigungszyklus entfernt werden. Der Standardwert ist 5 und der Minimumwert beträgt 1.

Bereinigungsworkflow

Wenn der Amazon ECS-Container-Agent ausgeführt wird und die automatische Image-Bereinigung nicht deaktiviert ist, prüft der Agent mit einer Häufigkeit, die durch die Variable ECS_IMAGE_CLEANUP_INTERVAL angegeben wird, ob Docker-Images vorhanden sind, auf die nicht von laufenden oder gestoppten Containern verwiesen wird. Werden ungenutzte Abbilder gefunden und diese sind älter als die durch die Variable ECS_IMAGE_MINIMUM_CLEANUP_AGE angegebene Mindestbereinigungszeit, entfernt der Agent die maximale Anzahl an Abbildern, die durch die Variable ECS_NUM_IMAGES_DELETE_PER_CYCLE festgelegt ist. Das Abbild, dessen Referenz am längsten her ist, wird als erstes gelöscht. Nach dem Entfernen der Abbilder wartet der Agent das nächste Intervall ab und wiederholt dann den Vorgang.