Konfiguration des Amazon ECS-Container-Agenten
Der Amazon ECS-Container-Agent unterstützt eine Reihe von Konfigurationsoptionen, von denen die meisten durch Umgebungsvariablen eingerichtet werden sollten. Die folgenden Umgebungsvariablen sind verfügbar, und alle sind optional.
Wenn Ihre Container-Instance mit einer Linux-Variante des Amazon ECS-optimierten AMI gestartet wurde, können Sie diese Umgebungsvariablen in der Datei /etc/ecs/ecs.config
setzen und dann den Agenten neu starten. Sie können diese Konfigurationsvariablen auch beim Starten mit Amazon EC2-Benutzerdaten in ihre Container-Instances schreiben. Weitere Informationen finden Sie unter Bootstrapping von Container-Instances mit Amazon EC2-Benutzerdaten.
Wenn Ihre Container-Instance mit einer Windows-Variante des Amazon-ECS-optimierten AMI gestartet wurde, können Sie diese Umgebungsvariablen mit dem PowerShell-Befehl SetEnvironmentVariable festlegen und dann den Agenten neu starten. Weitere Informationen finden Sie unter Ausführen von Befehlen auf Ihrer Windows-Instance beim Launch im Benutzerhandbuch zu Amazon EC2 für Windows-Instances und Bootstrapping von Windows Container-Instances mit Amazon EC2-Benutzerdaten.
Wenn Sie den Amazon ECS-Container-Agenten manuell starten (bei AMIs, die nicht Amazon ECS-optimiert sind), können Sie diese Umgebungsvariablen in dem Befehl docker run verwenden, den Sie benutzen, um den Agent zu starten. Verwenden Sie diese Variablen mit der Syntax --env=
. Bei sensiblen Informationen, beispielsweise Authentifizierungs-Anmeldeinformationen für private Repositorys, sollten Sie die Agent-Umgebungsvariablen in einer Datei speichern und sie alle auf einmal mit der Option VARIABLE_NAME
=VARIABLE_VALUE
--env-file
weitergeben.path_to_env_file
Verfügbare Parameter
Im Folgenden sind die verfügbaren Konfigurationsparameter für Amazon ECS-Container-Agenten aufgeführt. Es gibt nicht dokumentierte Variablen, die der Agent intern verwendet, und die möglicherweise sichtbar, aber nicht für die Nutzung durch den Kunden bestimmt sind. Weitere Informationen finden Sie auf GitHub unter Amazon ECS Container Agent
ECS_CLUSTER
-
Beispielwerte:
MyCluster
Standardwert unter Linux:
default
Standardwert unter Windows:
default
Der Cluster, bei dem sich dieser Agent anmelden soll. Wenn dieser Wert nicht definiert ist, wird der
default
-Cluster ausgewählt. Wenn keindefault
-Cluster vorhanden ist, versucht der Amazon ECS-Container-Agent, ihn zu erstellen. Wenn ein Nicht-default
-Cluster angegeben, aber nicht vorhanden ist, schlägt die Registrierung fehl. ECS_RESERVED_PORTS
-
Beispielwerte:
[22, 80, 5000, 8080]
Standardwert unter Linux:
[22, 2375, 2376, 51678, 51679, 51680]
Standardwert unter Windows:
[53, 135, 139, 445, 2375, 2376, 3389, 5985, 51678, 51679]
Ein Gruppe von Ports, die für die Planung bei dieser Container-Instance als nicht verfügbar gekennzeichnet werden sollten.
ECS_RESERVED_PORTS_UDP
-
Beispielwerte:
[53, 123]
Standardwert unter Linux:
[]
Standardwert unter Windows:
[]
Ein Gruppe von UDP, die für die Planung bei dieser Container-Instance als nicht verfügbar gekennzeichnet werden sollten.
ECS_ENGINE_AUTH_TYPE
-
Beispielwerte:
dockercfg | docker
Standardwert unter Linux: Null
Standardwert unter Windows: Null
Für die Authentifizierung bei privaten Registrierungen erforderlich. Dies ist der Authentifizierungsdatentyp in
ECS_ENGINE_AUTH_DATA
. Weitere Informationen finden Sie unter Authentifizierungsformate. ECS_ENGINE_AUTH_DATA
-
Beispielwerte:
-
ECS_ENGINE_AUTH_TYPE=dockercfg
:{"https://index.docker.io/v1/":{"auth":"
zq212MzEXAMPLE7o6T25Dk0i
","email":"email@example.com
"}} -
ECS_ENGINE_AUTH_TYPE=docker
:{"https://index.docker.io/v1/":{"username":"
my_name
","password":"my_password
","email":"email@example.com
"}}
Standardwert unter Linux: Null
Standardwert unter Windows: Null
Für die Authentifizierung bei privaten Registrierungen erforderlich. Wenn
ECS_ENGINE_AUTH_TYPE=dockercfg
gilt, dann sollte der Wert fürECS_ENGINE_AUTH_DATA
der Inhalt einer Docker-Konfigurationsdatei sein (~/.dockercfg
oder~/.docker/config.json
), die durch das Ausführen von docker login erstellt wurde. WennECS_ENGINE_AUTH_TYPE=docker
gilt, dann sollte der WertECS_ENGINE_AUTH_DATA
eine JSON-Darstellung des Registrierungsservers für die Authentifizierung sein, sowie die von dieser Registrierung angeforderten Authentifizierungsparameter (z. B. Benutzername, Passwort und die E-Mail-Adresse für das jeweilige Konto). Weitere Informationen finden Sie unter Authentifizierungsformate. -
AWS_DEFAULT_REGION
-
Beispielwerte:
us-east-1
Standardwert unter Linux: Wird aus den Metadaten der Amazon-EC2-Instance übernommen.
Standardwert unter Windows: Wird aus den Metadaten der Amazon-EC2-Instance übernommen.
Die Region, die in API-Anfragen verwendet werden soll, sowie um auf den richtigen Backend-Host zu schließen.
AWS_ACCESS_KEY_ID
-
Beispielwerte:
AKIAIOSFODNN7EXAMPLE
Standardwert unter Linux: Wird aus den Metadaten der Amazon-EC2-Instance übernommen.
Standardwert unter Windows: Wird aus den Metadaten der Amazon-EC2-Instance übernommen.
Der -Zugriffsschlüssel, der vom Agenten für alle Aufrufe verwendet wird.
AWS_SECRET_ACCESS_KEY
-
Beispielwerte:
wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Standardwert unter Linux: Wird aus den Metadaten der Amazon-EC2-Instance übernommen.
Standardwert unter Windows: Wird aus den Metadaten der Amazon-EC2-Instance übernommen.
Der Geheimschlüssel, der vom Agenten für alle Aufrufe verwendet wird.
AWS_SESSION_TOKEN
-
Standardwert unter Linux: Wird aus den Metadaten der Amazon-EC2-Instance übernommen.
Standardwert unter Windows: Wird aus den Metadaten der Amazon-EC2-Instance übernommen.
Das für temporäre Anmeldeinformationen verwendete Sitzungs-Token.
DOCKER_HOST
-
Beispielwerte:
unix:///var/run/docker.sock
Standardwert unter Linux:
unix:///var/run/docker.sock
Standardwert unter Windows:
npipe:////./pipe/docker_engine
Dienst zum Erstellen einer Verbindung mit dem Docker-Daemon; verhält sich ähnlich wie die Umgebungsvariable, die vom Docker-Client verwendet wird.
ECS_LOGFILE
-
Beispielwerte:
/ecs-agent.log
Standardwert unter Linux: Null
Standardwert unter Windows: Null
Bestimmt den Speicherort, an dem Agenten-Protokolle geschrieben werden sollen. Wenn Sie den Agenten über
ecs-init
ausführen, was die Standardmethode bei Verwendung des Amazon ECS-optimierten AMI ist, ist der Pfad im Container/log
undecs-init
mountet dies an/var/log/ecs/
auf dem Host. ECS_LOGLEVEL
-
Beispielwerte:
crit
,error
,warn
,info
,debug
Standardwert unter Linux:
info
Standardwert unter Windows:
info
Die zu protokollierende Detailebene.
ECS_LOGLEVEL_ON_INSTANCE
-
Beispielwerte:
none
,crit
,error
,warn
,info
,debug
Standardwert unter Linux:
none
, wennECS_LOG_DRIVER
explizit auf einen nicht leeren Wert gesetzt wird, andernfalls der gleiche Wert wieECS_LOGLEVEL
Standardwert unter Windows:
none
, wennECS_LOG_DRIVER
explizit auf einen nicht leeren Wert gesetzt wird, andernfalls der gleiche Wert wieECS_LOGLEVEL
Kann verwendet werden, um
ECS_LOGLEVEL
zu überschreiben und um eine Detailebene festzulegen, die in der On-Instance-Protokolldatei protokolliert werden soll, unabhängig von der Ebene, die im Protokollierungstreiber protokolliert wird. Wenn ein Protokollierungstreiber explizit festgelegt ist, werden On-Instance-Protokolle standardmäßig deaktiviert, können aber mit dieser Variablen wieder aktiviert werden. ECS_CHECKPOINT
-
Beispielwerte:
true
|false
Standardwert unter Linux: Wenn für
ECS_DATADIR
explizit ein nicht leerer Wert angegeben ist, wirdECS_CHECKPOINT
auftrue
gesetzt, andernfalls auffalse
.Standardwert unter Windows: Wenn für
ECS_DATADIR
explizit ein nicht leerer Wert angegeben ist, wirdECS_CHECKPOINT
auftrue
gesetzt, andernfalls auffalse
.Gibt an, ob der Prüfpunktstatus an dem mit
ECS_DATADIR
spezifizierten Ort gespeichert werden soll. ECS_DATADIR
-
Beispielwerte:
/data
Standardwert unter Linux:
/data/
Standardwert unter Windows:
C:\ProgramData\Amazon\ECS\data
Der Name des persistenten Datenverzeichnisses in dem Container, in dem der Amazon ECS-Container-Agent ausgeführt wird. Das Verzeichnis dient dazu, Daten über den Cluster und den Agent-Zustand zu speichern.
ECS_UPDATES_ENABLED
-
Beispielwerte:
true
|false
Standardwert unter Linux:
false
Standardwert unter Windows:
false
Gibt an, ob das Programm für Amazon ECS-Agent-Updates beendet werden soll, wenn diese angefragt werden.
ECS_DISABLE_METRICS
-
Beispielwerte:
true
|false
Standardwert unter Linux:
false
Standardwert unter Windows:
true
Ob die CloudWatch Metriken für Amazon ECS deaktiviert werden sollen oder nicht. Ist dieser Wert auf
true
gesetzt, werden keine CloudWatch-Metriken erfasst. ECS_POLL_METRICS
-
Beispielwerte:
true
|false
Standardwert unter Linux:
false
(siehe Beschreibung)Standardwert unter Windows:
false
(weitere Informationen in der folgenden Beschreibung)Gibt an, ob bei der Erfassung von CloudWatch-Metriken für Aufgaben abgefragt oder gestreamt werden soll.
In Agent-Versionen vor
1.40.0
war der Standardwertfalse
. In Agent-Versionen1.40.0
bis1.42.0
ist der Standardwerttrue
. In Agent-Versionen1.43.0
und später ist der Standardwertfalse
.Wichtig Wenn Sie
ECS_POLL_METRICS
auf „false“ festlegen, führt dies zu einer hohen CPU-Auslastung durch den Agent bei einer Verwendung von „dockerd“ und „containerd“, wenn Ihre Amazon-EC2-Instance mehrere Container hostet. ECS_POLLING_METRICS_WAIT_DURATION
-
Beispielwerte:
30s
Standardwert unter Linux:
15s
Standardwert unter Windows:
15s
Gibt an, wie lange mit der Abfrage neuer CloudWatch-Metriken für eine Aufgabe gewartet wird. Wird nur verwendet, wenn
ECS_POLL_METRICS
true
ist. ECS_RESERVED_MEMORY
-
Beispielwerte: 32
Standardwert unter Linux: 0
Standardwert unter Windows: 0
Die Arbeitsspeichermenge (in MiB), die aus dem Pool entfernt werden soll, der mit Ihren Aufgaben verknüpft ist. So wird dieser Arbeitsspeicher für kritische Systemprozesse reserviert, einschließlich des Docker-Daemon- und des Amazon ECS-Container-Agenten. Wenn Sie beispielsweise
ECS_RESERVED_MEMORY=256
angeben, registriert der Agent den gesamten Arbeitsspeicher bis auf 256 MiB für diese Instance und 256 MiB an Systemarbeitsspeicher können nicht für Amazon-ECS-Aufgaben zugeordnet werden. Weitere Informationen finden Sie unter Container-InstanceSpeicherverwaltung. ECS_AVAILABLE_LOGGING_DRIVERS
-
Beispielwerte:
["awslogs","fluentd","gelf","json-file","journald","splunk","logentries","syslog"]
Standardwert unter Linux:
["json-file","none"]
Standardwert unter Windows:
["json-file","none"]
Anmerkung Wenn Sie ECS-init verwenden, lauten die Standardwerte
["json-file","syslog","awslogs","none"]
.Die für die Container-Instance verfügbaren Protokolltreiber. Der auf einer Container-Instance ausgeführte Amazon ECS-Container-Agent muss die für die Instance verfügbaren Protokolltreiber mit der Umgebungsvariablen
ECS_AVAILABLE_LOGGING_DRIVERS
registrieren, bevor in der Instance platzierte Container die Protokollkonfigurationsoptionen für diese Treiber in Aufgaben verwenden können. Weitere Informationen zur Verwendung desawslogs
-Protokolltreibers finden Sie unter Verwenden des awslogs-Protokolltreibers. Weitere Informationen über die verschiedenen für Ihre Docker-Version verfügbaren Protokolltreiber und wie sie konfiguriert werden finden Sie unter Configure logging driversin der Docker-Dokumentation. ECS_DISABLE_PRIVILEGED
-
Beispielwerte:
true
|false
Standardwert unter Linux:
false
Standardwert unter Windows:
false
Gibt an, ob das Starten privilegierter Container in der Container-Instance deaktiviert ist. Ist dieser Wert auf
true
gesetzt, werden keine privilegierten Container zugelassen. ECS_SELINUX_CAPABLE
-
Beispielwerte:
true
|false
Standardwert unter Linux:
false
Standardwert unter Windows:
false
Gibt an, ob SELinux für die Container-Instance verfügbar ist.
ECS_APPARMOR_CAPABLE
-
Beispielwerte:
true
|false
Standardwert unter Linux:
false
Standardwert unter Windows:
false
Gibt an, ob AppArmor für die Container-Instance verfügbar ist.
ECS_ENGINE_TASK_CLEANUP_WAIT_DURATION
-
Beispielwerte:
1h
(Gültige Zeiteinheiten sind „ns“, „us“ (oder „µs“), „ms“, „s“, „m“ und „h“.)Standardwert unter Linux:
3h
Standardwert unter Windows:
3h
Die Zeit, die gewartet werden soll, ab dem Zeitpunkt, an dem eine Aufgabe gestoppt wird, bis zu dem Zeitpunkt, zu dem der Docker-Container entfernt wird. Da hierbei die Docker-Containerdaten entfernt werden, beachten Sie Folgendes: Wenn dieser Wert zu niedrig eingestellt ist, können Sie möglicherweise Ihre gestoppten Container nicht untersuchen oder die Protokolle nicht anzeigen, bevor sie entfernt werden. Die Mindestdauer ist
1m
; alle Werte unter 1 Minute werden ignoriert. ECS_CONTAINER_STOP_TIMEOUT
-
Beispielwerte:
10m
(Gültige Zeiteinheiten sind „ns“, „us“ (oder „µs“), „ms“, „s“, „m“ und „h“.)Standardwert unter Linux:
30s
Standardwert unter Windows:
30s
Die Zeit, die gewartet werden soll, ab dem Zeitpunkt, an dem eine Aufgabe gestoppt wird, bis zu dem Zeitpunkt, an dem ihre Container zwangsweise beendet werden, wenn Sie sich nicht auf normale Art selbstständig beenden.
ECS_CONTAINER_START_TIMEOUT
-
Beispielwerte:
10m
(Gültige Zeiteinheiten sind „ns“, „us“ (oder „µs“), „ms“, „s“, „m“ und „h“.)Standardwert unter Linux:
3m
Standardwert unter Windows:
8m
Die Zeit, die gewartet werden soll, bis das Starten eines Containers aufgegeben wird.
HTTP_PROXY
-
Beispielwerte:
10.0.0.131:3128
Standardwert unter Linux: Null
Standardwert unter Windows: Null
Der Hostname (oder die IP-Adresse) und die Portnummer eines HTTP-Proxys, die verwendet werden, damit der Amazon ECS-Agent eine Internetverbindung aufbauen kann. Dieser Proxy wird beispielsweise verwendet, wenn Ihre Container-Instances keinen externen Netzwerkzugriff über ein Amazon VPC-Internet-Gateway, NAT-Gateway oder eine Instance haben. Wenn diese Variable gesetzt ist, müssen Sie auch die Variable
NO_PROXY
setzen, um Amazon-EC2-Instance-Metadaten und Docker-Daemon-Datenverkehr vom Proxy zu filtern. Weitere Informationen finden Sie unter HTTP-Proxykonfiguration. NO_PROXY
-
Beispielwerte:
-
Linux:
169.254.169.254,169.254.170.2,/var/run/docker.sock
-
Windows:
169.254.169.254,169.254.170.2,\\.\pipe\docker_engine
Standardwert unter Linux: Null
Standardwert unter Windows: Null
Der HTTP-Datenverkehr sollte nicht an den angegebenen
HTTP_PROXY
weitergeleitet werden. Sie müssen169.254.169.254,/var/run/docker.sock
spezifizieren, um Amazon-EC2-Instance-Metadaten und Docker-Daemon-Datenverkehr vom Proxy zu filtern. Weitere Informationen finden Sie unter HTTP-Proxykonfiguration. -
ECS_ENABLE_TASK_IAM_ROLE
-
Beispielwerte:
true
|false
Standardwert unter Linux:
false
Standardwert unter Windows:
false
Anmerkung Wenn Sie
ecs init
verwenden, lautet der Standardwerttrue
.Gibt an, ob IAM-Rollen für Aufgaben auf der Container-Instance für Aufgaben-Container mit den Netzwerkmodi
bridge
oderdefault
aktiviert werden sollen. Weitere Informationen finden Sie unter IAM-Rollen für Aufgaben. ECS_ENABLE_TASK_IAM_ROLE_NETWORK_HOST
-
Beispielwerte:
true
|false
Standardwert unter Linux:
false
Standardwert unter Windows:
false
Anmerkung Wenn Sie
ecs init
verwenden, lautet der Standardwerttrue
.Gibt an, ob IAM-Rollen für Aufgaben auf der Container-Instance für Aufgaben-Container mit dem Netzwerkmodus
host
aktiviert werden sollen. Diese Variable wird nur von den Agenten-Versionen 1.12.0 oder höher unterstützt. Weitere Informationen finden Sie unter IAM-Rollen für Aufgaben. ECS_DISABLE_IMAGE_CLEANUP
-
Beispielwerte:
true
Standardwert unter Linux:
false
Standardwert unter Windows:
false
Gibt an, ob die automatische Image-Bereinigung für den Amazon ECS-Agent deaktiviert werden soll. Weitere Informationen finden Sie unter Automatisierte Aufgaben- und Image-Bereinigung.
ECS_IMAGE_CLEANUP_INTERVAL
-
Beispielwerte:
30m
Standardwert unter Linux:
30m
Standardwert unter Windows:
30m
Das Zeitintervall zwischen den Zyklen für die automatische Image-Bereinigung. Werte unter 10 Minuten werden ignoriert.
ECS_IMAGE_MINIMUM_CLEANUP_AGE
-
Beispielwerte:
30m
Standardwert unter Linux:
1h
Standardwert unter Windows:
1h
Das minimale Zeitintervall zwischen dem Zeitpunkt der Pull-Übertragung eines Abbilds und dem Zeitpunkt, zu dem es für die automatische Image-Bereinigung in Betracht kommt.
NON_ECS_IMAGE_MINIMUM_CLEANUP_AGE
-
Beispielwerte:
30m
Standardwert unter Linux:
1h
Standardwert unter Windows:
1h
Das minimale Zeitintervall zwischen dem Zeitpunkt, zu dem ein Nicht-Amazon ECS-Image erstellt wird, und dem Zeitpunkt, zu dem es für die automatische Image-Bereinigung in Betracht kommt.
ECS_NUM_IMAGES_DELETE_PER_CYCLE
-
Beispielwerte:
5
Standardwert unter Linux:
5
Standardwert unter Windows:
5
Die maximale Anzahl an Image, die in einem einzelnen Zyklus der automatischen Abbildbereinigung gelöscht werden. Werte unter 1 werden ignoriert.
ECS_IMAGE_PULL_BEHAVIOR
-
Beispielwerte:
default
|always
|once
|prefer-cached
Standardwert unter Linux:
default
Standardwert unter Windows:
default
Das Verhalten Ihrer Container-Instances beim Abrufen von Images. Folgende Werte sind möglich.
-
default
: Das Image wird remote abgerufen. Wenn das Abrufen fehlschlägt, verwendet der Container das in der Instance zwischengespeicherte Image. -
always
: Das Image wird immer remote abgerufen. Wenn das Abrufen des Image fehlschlägt, schlägt die Aufgabe fehl. Diese Option gewährleistet, dass immer die neueste Version des Image abgerufen wird. Zwischengespeicherte Images werden ignoriert und von der automatischen Bereinigungsfunktion entfernt. -
Wenn
once
festgelegt ist, wird das Image nur dann remote abgerufen, wenn es noch nicht von einer vorherigen Aufgabe in derselben Container-Instance abgerufen oder das zwischengespeicherte Image von der automatischen Bereinigungsfunktion entfernt wurde. Andernfalls wird das zwischengespeicherte Image in der Instance verwendet. Dadurch wird sichergestellt, dass keine unnötigen Image-Abrufversuche durchgeführt werden. -
Wenn
prefer-cached
angegeben ist, wird das Image remote abgerufen, wenn es keine zwischengespeicherte Version gibt. Andernfalls wird das zwischengespeicherte Image in der Instance verwendet. Die automatische Image-Bereinigung wird für den Container deaktiviert, um sicherzustellen, dass das zwischengespeicherte Abbild nicht entfernt wird.
-
ECS_IMAGE_PULL_INACTIVITY_TIMEOUT
-
Beispielwerte:
1m
Standardwert unter Linux:
1m
Standardwert unter Windows:
3m
Gibt an, wie lange gewartet wird, nachdem Docker die vollständige Wartezeit zur die Extraktion eines Containers abgerufen hat. Nützlich zum Optimieren von großen Windows-Containern.
ECS_INSTANCE_ATTRIBUTES
-
Beispielwerte:
{"custom_attribute": "custom_attribute_value"}
Standardwert unter Linux: Null
Standardwert unter Windows: Null
Eine Liste benutzerdefinierter Attribute im JSON-Format zur Anwendung auf Ihre Container-Instances. Wird dieses Attribut bei der Instance-Registrierung verwendet, werden die benutzerdefinierten Attribute hinzugefügt. Diese müssen dann nicht manuell über die AWS Management Console eingegeben werden.
Anmerkung Hinzugefügte Attribute werden nicht für bereits registrierte Container-Instances verwendet. Weitere Informationen zum Hinzufügen benutzerdefinierter Attribute für bereits registrierte Container-Instances finden Sie unter Hinzufügen eines Attributs.
Weitere Informationen über die Verwendung benutzerdefinierter Attribute finden Sie unter Attribute.
Ein ungültiger JSON-Wert für diese Variable bewirkt, dass der Agent mit einem Code von
5
beendet wird. In den Agentenprotokollen wird eine Nachricht angezeigt. Der JSON-Wert ist möglicherweise gültig, aber es wurde ein Problem bei der Validierung des Attributs festgestellt (z. B. wenn der Wert zu lang ist oder ungültige Zeichen enthält). In diesem Fall erfolgt die Registrierung der Container-Instance, aber der Agent wird mit dem Code5
beendet, und in die Agentenprotokolle wird eine Mitteilung geschrieben. Informationen zum Auffinden der Agentenprotokolle finden Sie unter Amazon ECS-Container-Agenten-Protokoll. ECS_ENABLE_TASK_ENI
-
Beispielwerte:
true
|false
Standardwert unter Linux:
false
Standardwert unter Windows:
false
Legt fest, ob die Aufgabenvernetzung für Aufgaben aktiviert wird, die mit einer eigenen Netzwerkschnittstelle gestartet werden sollen.
ECS_CNI_PLUGINS_PATH
-
Beispielwerte:
/ecs/cni
Standardwert unter Linux:
/amazon-ecs-cni-plugins
Der Standardwert unter Windows: Nicht zutreffend
Der Pfad, in dem sich die cni-Binärdatei in Linux befindet.
ECS_AWSVPC_BLOCK_IMDS
-
Beispielwerte:
true
|false
Standardwert unter Linux:
false
Standardwert unter Windows:
false
Ob der Zugriff auf Instance-Metadaten für Aufgaben blockiert werden soll, die mit dem Netzwerkmodus
awsvpc
gestartet wurden. ECS_AWSVPC_ADDITIONAL_LOCAL_ROUTES
-
Beispielwerte:
["10.0.15.0/24"]
Standardwert unter Linux:
[]
Standardwert unter Windows:
[]
Im Netzwerkmodus
awsvpc
wird der Datenverkehr an diese Präfixe über die Host-Brücke statt über die Elastic-Network-Schnittstelle geleitet. ECS_ENABLE_CONTAINER_METADATA
-
Beispielwerte:
true
|false
Standardwert unter Linux:
false
Standardwert unter Windows:
false
Bei
true
erstellt der Agent eine Datei, die die Metadaten des Containers beschreibt. Die Datei kann mithilfe der Containerumgebungsvariable$ECS_CONTAINER_METADATA_FILE
gefunden und verwendet werden. ECS_HOST_DATA_DIR
-
Beispielwerte:
/var/lib/ecs
Standardwert unter Linux:
/var/lib/ecs
Der Standardwert unter Windows: Nicht zutreffend
Das Quellverzeichnis auf dem Host, von dem
ECS_DATADIR
gemountet ist. Wir verwenden dies, um den Quell-Mountingpfad für Containermetadatendateien zu ermitteln, falls der Amazon ECS-Agent als Container ausgeführt wird. Wir verwenden diesen Wert nicht in Windows, da der Amazon ECS-Agent nicht als Container ausgeführt wird. ECS_ENABLE_TASK_CPU_MEM_LIMIT
-
Beispielwerte:
true
|false
Standardwert unter Linux:
true
Standardwert unter Windows:
false
Legt fest, ob CPU- und Speicherlimits auf Aufgabenebene aktiviert werden sollen.
ECS_CGROUP_PATH
-
Beispielwerte:
/sys/fs/cgroup
Standardwert unter Linux:
/sys/fs/cgroup
Der Standardwert unter Windows: Nicht zutreffend
Der cgroup-Stammpfad, der vom Amazon ECS-Agenten erwartet wird. Hierbei handelt es sich um den Pfad, der über den Agenten-Mount zugänglich ist.
ECS_ENABLE_CPU_UNBOUNDED_WINDOWS_WORKAROUND
-
Beispielwerte:
true
|false
Der Standardwert unter Linux: Nicht zutreffend
Standardwert unter Windows:
false
Bei der Einstellung
true
lässt Amazon ECS die Ausführung von CPU-unbegrenzten Aufgaben (CPU =0
) zusammen mit CPU-begrenzten Aufgaben in Windows zu. ECS_TASK_METADATA_RPS_LIMIT
-
Beispielwerte:
100,150
Standardwert unter Linux:
40,60
Standardwert unter Windows:
40,60
Durch Kommas getrennte ganzzahlige Werte für konstante und Burst-Drosselungslimits für Endpunkte der Aufgabenmetadaten.
ECS_SHARED_VOLUME_MATCH_FULL_CONFIG
-
Beispielwerte:
true
|false
Standardwert unter Linux:
false
Standardwert unter Windows:
false
Wenn
dockerVolumeConfiguration
in einer Aufgabendefinition festgelegt und das Flagautoprovision
verwendet wurde, vergleicht der Amazon ECS-Containeragent die Details des Docker-Volumes mit den Details der vorhandenen Docker-Volumes. WennECS_SHARED_VOLUME_MATCH_FULL_CONFIG
auftrue
festgelegt ist, vergleicht der Containeragent die vollständige Konfiguration des Volumes (name
,driverOpts
undlabels
), um zu prüfen, dass die Volumes identisch sind. Wenn der Wert auffalse
gesetzt ist, verwendet der Containeragent das Standardverhalten von Docker, bei dem nur der Parametername
des Volumes überprüft wird. Wenn ein Volume von mehreren Container-Instances gemeinsam genutzt wird, muss dieser Wertfalse
sein. Weitere Informationen finden Sie unter Docker-Volumes. ECS_CONTAINER_INSTANCE_PROPAGATE_TAGS_FROM
-
Beispielwerte:
ec2_instance
Standardwert unter Linux: keiner
Standardwert unter Windows: keiner
Wenn
ec2_instance
angegeben ist, werden bestehende Tags, die in der Container-Instance definiert sind, in Amazon ECS registriert. Die Tags sind mit der OperationListTagsForResource
auffindbar. Die der Container-Instance zugeordnete IAM-Rolle sollte über die Erlaubnis der Aktionec2:DescribeTags
verfügen. Weitere Informationen finden Sie unter Hinzufügen von Tags zu einer Amazon EC2 Container-Instance. ECS_CONTAINER_INSTANCE_TAGS
-
Beispielwerte:
{"
tag_key
": "tag_val
"}Standardwert unter Linux:
{}
Standardwert unter Windows:
{}
Metadaten, die auf Container-Instances angewendet werden, um Ihnen bei der Kategorisierung und Organisation Ihrer Ressourcen zu helfen. Jedes Tag besteht aus einem benutzerdefinierten Schlüssel und einem optionalen Wert. Tag-Schlüssel dürfen eine maximale Zeichenlänge von 128 Zeichen haben. Tag-Werte können eine maximale Länge von 256 Zeichen haben.
Wenn Container-Instance-Tags über den Parameter
ECS_CONTAINER_INSTANCE_PROPAGATE_TAGS_FROM
propagiert werden, werden diese Tags durch die Tags mit der AngabeECS_CONTAINER_INSTANCE_TAGS
überschrieben. Weitere Informationen finden Sie unter Hinzufügen von Tags zu einer Amazon EC2 Container-Instance. ECS_ENABLE_UNTRACKED_IMAGE_CLEANUP
-
Beispielwerte:
true
|false
Standardwert unter Linux:
false
Standardwert unter Windows:
false
Gibt an, ob dem Amazon ECS-Agenten das Löschen von Containern und Images, die nicht Teil von Amazon-ECS-Aufgaben sind, erlaubt wird.
ECS_EXCLUDE_UNTRACKED_IMAGE
-
Beispielwerte:
{"
alpine
":"latest
"}Standardwert unter Linux:
{}
Standardwert unter Windows:
{}
Eine durch Komma getrennte Liste von Images (
imageName:tag
), die vom Amazon ECS-Agenten nicht gelöscht werden sollen, wennECS_ENABLE_UNTRACKED_IMAGE_CLEANUP
true
ist. ECS_DISABLE_DOCKER_HEALTH_CHECK
-
Beispielwerte:
true
|false
Standardwert unter Linux:
false
Standardwert unter Windows:
false
Gibt an, ob die Docker-Container-Zustandsprüfung für den Amazon ECS-Agenten deaktiviert wird.
ECS_NVIDIA_RUNTIME
-
Beispielwerte:
nvidia
Standardwert unter Linux:
nvidia
Standardwert unter Windows:
n/a
Gibt an, welche Laufzeit zur Übergabe von NVIDIA-GPU-Geräten an Container verwendet wird. Dieser Parameter sollte nicht als Umgebungsvariable in einer Aufgabendefinition angegeben werden, wenn die GPU-Ressourcenanforderungen bereits angegeben wurden. Weitere Informationen finden Sie unter Arbeiten mit GPUs auf Amazon ECS.
ECS_ENABLE_SPOT_INSTANCE_DRAINING
-
Beispielwerte:
true
Standardwert unter Linux:
false
Standardwert unter Windows:
false
Gibt an, ob der Spot-Instance-Ausgleich für die Container-Instance aktiviert werden soll. Wenn der Wert „true“ ist und die Container-Instance eine Spot-Unterbrechungsbenachrichtigung erhält, setzt der Agent den Instance-Status auf
DRAINING
. Dadurch werden alle in der Instance ausgeführten Aufgaben, die Teil eines Services sind, ordnungsgemäß heruntergefahren und ersetzt. Es wird empfohlen, diesen Wert auf "true" zu setzen, wenn Spot-Instances verwendet werden. Weitere Informationen finden Sie unter Container-Instance-Ausgleich. ECS_ENABLE_GPU_SUPPORT
-
Beispielwerte:
true
Standardwert unter Linux:
false
Standardwert unter Windows:
n/a
Ob Sie Container-Instances mit GPU-Support verwenden. Dieser Parameter wird für den Agenten festgelegt. Sie müssen auch Ihre Aufgabendefinitionen für GPU konfigurieren. Weitere Informationen finden Sie unter Arbeiten mit GPUs auf Amazon ECS.
ECS_LOG_ROLLOVER_TYPE
-
Beispielwerte:
size
,hourly
Standardwert unter Linux:
hourly
Standardwert unter Windows:
hourly
Bestimmt, ob die Container-Agent-Protokolldatei stündlich oder basierend auf der Größe rotiert wird. Standardmäßig wird die Agent-Protokolldatei stündlich rotiert.
ECS_LOG_OUTPUT_FORMAT
-
Beispielwerte:
logfmt
,json
Standardwert unter Linux:
logfmt
Standardwert unter Windows:
logfmt
Bestimmt das Protokollausgabeformat. Wenn das
json
-Format verwendet wird, wird jede Zeile im Protokoll eine strukturierte JSON-Karte sein. ECS_LOG_MAX_FILE_SIZE_MB
-
Beispielwerte:
10
Standardwert unter Linux:
10
Standardwert unter Windows:
10
Wenn die Variable
ECS_LOG_ROLLOVER_TYPE
aufsize
gesetzt ist, bestimmt diese Variable die maximale Größe (in MB) der Protokolldatei, bevor sie rotiert wird. Wenn der Rollover-Typ aufhourly
festgelegt ist, wird diese Variable ignoriert. ECS_LOG_MAX_ROLL_COUNT
-
Beispielwerte:
24
Standardwert unter Linux:
24
Standardwert unter Windows:
24
Bestimmt die Anzahl der rotierten Protokolldateien, die beibehalten werden sollen. Ältere Protokolldateien werden gelöscht, nachdem diese Grenze erreicht ist.
ECS_ENABLE_AWSLOGS_EXECUTIONROLE_OVERRIDE
-
Beispielwerte:
true
Standardwert unter Linux: siehe Beschreibung unten
Standardwert unter Windows:
false
Gibt an, ob der Protokolltreiber
awslogs
für die Authentifizierung mit der IAM-Aufgabenausführungsrolle aktiviert werden soll. Dieser Parameter musstrue
sein, um den Protokolltreiberawslogs
in einer Aufgabe verwenden zu können, für die auch eine IAM-Aufgabenausführungsrolle angegeben ist. Bei Verwendung des Amazon ECS-optimierten AMI mit Version 1.16.0-1 oder höher desecs-init
-Pakets wird der Standardwert vontrue
verwendet. Bei Verwendung älterer Versionen desecs-init
-Pakets wird der Standardwertfalse
verwendet. ECS_PULL_DEPENDENT_CONTAINERS_UPFRONT
-
Beispielwerte:
true
|false
Standardwert unter Linux:
false
Standardwert unter Windows:
false
Ob Images für Container mit Abhängigkeiten abgerufen werden sollen, bevor der
dependsOn
-Zustand erfüllt wurde. ECS_EXCLUDE_IPV6_PORTBINDING
-
Beispielwerte:
true
|false
Standardwert unter Linux:
true
Standardwert unter Windows:
true
Gibt an, ob der Agent IPv6-Port-Bindungen ausschließen soll, wenn der
default
-Netzwerkmodus verwendet wird. Wenn dieser Wert wahr ist, werden IPv6-Portbindungen gefiltert und Aufgaben-IPv6-Portbindungen nicht in der DescribeTasks-Antwort zurückgegeben. Die Bindungen sind im Metadatenendpunkt der Aufgaben enthalten.Das ist in Agent-Version
1.55.3
und höher verfügbar. ECS_SKIP_LOCALHOST_TRAFFIC_FILTER
-
Beispielwerte:
true
|false
Standardwert unter Linux:
false
Standardwert unter Windows:
false
Standardmäßig fügt der
ecs-init
-Service eine iptable-Regel hinzu, um nicht lokale Pakete auf localhost zu verwerfen, wenn sie nicht Teil einer bestehenden weitergeleiteten Verbindung oder DNAT sind und entfernt die Regel beim Anhalten. WennECS_SKIP_LOCALHOST_TRAFFIC_FILTER
auf „true“ gesetzt ist, wird diese Regel nicht hinzugefügt oder entfernt. ECS_ALLOW_OFFHOST_INTROSPECTION_ACCESS
-
Beispielwerte:
true
|false
Standardwert unter Linux:
false
Standardwert unter Windows:
false
Standardmäßig fügt der
ecs-init
-Service eine iptable-Regel hinzu, um den Zugriff auf den Agenten-Introspektions-Port von außerhalb des Hosts (oder von Containern imawsvpc
-Netzwerkmodus) zu blockieren und entfernt die Regel beim Anhalten. WennECS_ALLOW_OFFHOST_INTROSPECTION_ACCESS
auf „true“ gesetzt ist, wird diese Regel nicht hinzugefügt oder entfernt. ECS_OFFHOST_INTROSPECTION_INTERFACE_NAME
-
Beispielwerte:
eth0
Standardwert unter Linux:
eth0
Standardwert unter Windows:
eth0
Der Name der primären Netzwerkschnittstelle, die zum Blockieren des Port-Zugriffs auf Agenten außerhalb des Hosts verwendet wird. Dieser Wert ist standardmäßig
eth0
. ECS_WARM_POOLS_CHECK
-
Beispielwerte:
true
|false
Standardwert unter Linux:
false
Standardwert unter Windows:
false
Setzen Sie diese Variable nur dann auf
true
, wenn Sie eine Auto-Scaling-Gruppe haben und dieser einen Warm-Pool zuordnen möchten.Wenn dies zutrifft, fragt der Amazon-ECS-Agent die Instance-Metadaten ab, um festzustellen, ob die Instance bereit ist, in den Amazon-ECS-Cluster aufgenommen zu werden. Wenn Ihre Anwendung aufskalieren muss, verschiebt die Auto-Scaling-Gruppe schnell die erforderliche Anzahl vorinitialisierter Instances vom Warm-Pool in den Cluster.
Die Variable ist in Version
1.59.0
und höher des Agenten verfügbar.
Speichern der Container-Instance-Konfiguration in Amazon S3
Die Amazon ECS-Container-Agent-Konfiguration wird mit den oben beschriebenen Umgebungsvariablen kontrolliert. Die Linux-Varianten des Amazon ECS-optimierten AMI suchen nach diesen Variablen in /etc/ecs/ecs.config
, wenn der Containeragent startet, und konfigurieren den Agenten entsprechend. Bestimmte unverfängliche Umgebungsvariablen, beispielsweise ECS_CLUSTER
, können beim Starten durch Amazon EC2-Benutzerdaten an die Container-Instance übergeben und folgenlos in diese Datei geschrieben werden. Andere sensible Informationen, z. B. Ihre AWS-Anmeldeinformationen oder die Variable ECS_ENGINE_AUTH_DATA
, sollten niemals in den Benutzerdaten an eine Instance übergeben oder in die Datei /etc/ecs/ecs.config
geschrieben werden, so dass sie in einer .bash_history
-Datei sichtbar wären.
Das Speichern von Konfigurationsinformationen in einem privaten Amazon S3-Bucket und das Erteilen der schreibgeschützten Zugriffsberechtigung Ihrer IAM-Rolle der Container-Instance ist eine sichere und bequeme Art, die Konfiguration der Container-Instance zur Startzeit zu ermöglichen. Sie können eine Kopie Ihrer ecs.config
-Datei in einem privaten Bucket speichern. Sie können dann Amazon EC2-Benutzerdaten verwenden, um AWS CLI zu installieren und Ihre Konfigurationsinformationen zu /etc/ecs/ecs.config
zu kopieren, wenn die Instance gestartet wird.
So gewähren Sie schreibgeschütztem Amazon S3-Zugriff auf Ihre Container-Instance-Rolle
Öffnen Sie die IAM-Konsole unter https://console.aws.amazon.com/iam/
. -
Wählen Sie im Navigationsbereich Roles (Rollen) die IAM-Rolle aus, die Sie für Ihre Container-Instances verwenden möchten. Diese Rolle hat wahrscheinlich den Titel
ecsInstanceRole
. Weitere Informationen finden Sie unter IAM-Rolle für Amazon ECS-Container-Instance. -
Wählen Sie unter Managed Policies Attach Policy aus.
-
Geben Sie auf der Seite Attach Policy (Richtlinie anfügen) in das Feld Filter den Wert
S3
ein, um die Ergebnisse für die Richtlinie einzugrenzen. -
Aktivieren Sie das Kontrollkästchen links neben der Richtlinie AmazonS3ReadOnlyAccess und wählen Sie Attach Policy aus.
So speichern Sie eine ecs.config
-Datei in Amazon S3
-
Erstellen Sie eine
ecs.config
-Datei mit gültigen Umgebungsvariablen und Werten aus Konfiguration des Amazon ECS-Container-Agenten in folgendem Format. Dieses Beispiel konfiguriert private Registry-Authentifizierung. Weitere Informationen finden Sie unter Private Registrierungsauthentifizierung für Aufgaben.ECS_ENGINE_AUTH_TYPE=dockercfg ECS_ENGINE_AUTH_DATA={"https://index.docker.io/v1/":{"auth":"
zq212MzEXAMPLE7o6T25Dk0i
","email":"email@example.com
"}} -
Um Ihre Konfigurationsdatei zu speichern, erstellen Sie in Amazon S3 einen privaten Bucket. Weitere Informationen finden Sie unter Erstellen eines Buckets im Benutzerhandbuch zu Amazon Simple Storage Service.
-
Laden Sie die Datei
ecs.config
in Ihren S3-Bucket hoch. Anleitungen finden Sie unter Hinzufügen eines Objekts zu einem Bucket im Benutzerhandbuch zu Amazon Simple Storage Service.
So laden Sie eine ecs.config
-Datei beim Start von Amazon S3
-
Führen Sie in diesem Bereich die zuvor genannten Verfahren aus, um schreibgeschützten Amazon S3-Zugriff auf Ihre Container-Instances zu ermöglichen und eine
ecs.config
-Datei in einem privaten S3-Bucket zu speichern. -
Starten Sie neue Container-Instances, indem Sie die Schritte in Starten einer Amazon ECS Linux-Container-Instance befolgen. Verwenden Sie in Schritt 7 das folgende Beispiel-Skript, das die AWS CLI installiert und Ihre Konfigurationsdatei in
/etc/ecs/ecs.config
kopiert.#!/bin/bash yum install -y aws-cli aws s3 cp s3://
your_bucket_name
/ecs.config /etc/ecs/ecs.config