View a markdown version of this page

Erstellen eines Docker-fähige Flotte mit dem AWS CLI - AWS Deadline Cloud

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Erstellen eines Docker-fähige Flotte mit dem AWS CLI

Die Warteschlangenrolle benötigt die Erlaubnis, sich bei Amazon ECR zu authentifizieren und das von der Docker Warteschlangenumgebung ausgewählte Bild abzurufen. Die Flottenrollenberechtigung ist für die standardmäßige Warteschlangenumgebung optional. Fügen Sie sie hinzu, wenn Host-Konfigurationsaktionen oder Tools auf Worker-Ebene Bilder außerhalb einer Warteschlangensitzung abrufen.

Voraussetzungen

Bevor Sie beginnen, konfigurieren Sie die Option AWS CLI mit der Berechtigung, Deadline Cloud-Flotten zu erstellen, und fügen Sie Richtlinien an die Rollen Warteschlange und Flotte an. Sie benötigen außerdem eine bestehende Farm, Warteschlange, Warteschlangenrolle, Flottenrolle und Container-Image in einem privaten Amazon ECR-Repository.

Erstellen Sie die Flotte

Um eine zu erstellen Docker-fähige Flotte
  1. Legen Sie Ihre Farm-, Warteschlangen- und Rollenwerte fest.

    FARM_ID=farm-0123456789abcdef0123456789abcdef QUEUE_ID=queue-0123456789abcdef0123456789abcdef FLEET_ROLE_ARN=arn:aws:iam::123456789012:role/DeadlineFleetRole MAX_WORKERS=10 QUEUE_ROLE_ARN=$(aws deadline get-queue \ --farm-id "$FARM_ID" \ --queue-id "$QUEUE_ID" \ --query roleArn \ --output text) QUEUE_ROLE_NAME=${QUEUE_ROLE_ARN##*/} FLEET_ROLE_NAME=${FLEET_ROLE_ARN##*/} ECR_READ_ONLY_POLICY=arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly
  2. Hängen Sie die Amazon ECR Read-Only-Richtlinie an die Warteschlangenrolle an. Die Docker Standard-Warteschlangenumgebung verwendet Warteschlangenanmeldedaten, um das Image zu authentifizieren und abzurufen.

    aws iam attach-role-policy \ --role-name "$QUEUE_ROLE_NAME" \ --policy-arn "$ECR_READ_ONLY_POLICY"
  3. (Optional) Fügen Sie der Flottenrolle dieselbe Richtlinie hinzu, wenn Host-Konfigurationsaktionen oder Tools auf Worker-Ebene Images außerhalb der Warteschlangensitzung abrufen müssen.

    aws iam attach-role-policy \ --role-name "$FLEET_ROLE_NAME" \ --policy-arn "$ECR_READ_ONLY_POLICY"
  4. Erstellen Sie eine Datei docker-fleet-configuration.json mit dem Namen der folgenden Flottenkonfiguration:

    { "serviceManagedEc2": { "instanceCapabilities": { "vCpuCount": { "min": 4, "max": 16 }, "memoryMiB": { "min": 8192, "max": 65536 }, "osFamily": "linux", "cpuArchitectureType": "x86_64", "softwareAddOns": [ { "name": "docker" } ] }, "instanceMarketOptions": { "type": "spot" } } }
  5. Erstellen Sie die vom Service verwaltete Flotte und speichern Sie ihre Flotten-ID.

    FLEET_ID=$(aws deadline create-fleet \ --farm-id "$FARM_ID" \ --display-name "Docker fleet" \ --role-arn "$FLEET_ROLE_ARN" \ --min-worker-count 0 \ --max-worker-count "$MAX_WORKERS" \ --configuration file://docker-fleet-configuration.json \ --query fleetId \ --output text) echo "$FLEET_ID"
  6. Ordnen Sie die Warteschlange der Flotte zu.

    aws deadline create-queue-fleet-association \ --farm-id "$FARM_ID" \ --queue-id "$QUEUE_ID" \ --fleet-id "$FLEET_ID"

Überprüfen Sie die Flotten- und Rollenberechtigungen

Um die Container-Unterstützung zu überprüfen
  1. Stellen Sie sicher, dass die Flottenkonfiguration das Docker Software-Add-on enthält.

    aws deadline get-fleet \ --farm-id "$FARM_ID" \ --fleet-id "$FLEET_ID" \ --query 'configuration.serviceManagedEc2.instanceCapabilities.softwareAddOns'

    Vergewissern Sie sich, dass die Antwort Folgendes enthält"name": "docker".

  2. Stellen Sie sicher, dass für die Warteschlangenrolle die Amazon ECR-Richtlinie „Nur Lesen“ gilt.

    aws iam list-attached-role-policies \ --role-name "$QUEUE_ROLE_NAME" \ --query 'AttachedPolicies[?PolicyName==`AmazonEC2ContainerRegistryReadOnly`]'
  3. Wenn Sie die Richtlinie an die Flottenrolle angehängt haben, wiederholen Sie den Befehl mit. --role-name "$FLEET_ROLE_NAME"

Die Flotte bietet RootlessDocker, aber die Warteschlange benötigt immer noch eine Docker Warteschlangenumgebung, die ein Bild identifiziert. Einzelheiten zur Konfiguration der Warteschlange finden Sie unter. Container-Unterstützung für servicemanagierte Flotten