Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Creando un Docker-flota habilitada con AWS CLI
El rol de cola requiere permiso para autenticarse en Amazon ECR y extraer la imagen seleccionada por el Docker entorno de cola. El permiso del rol de flota es opcional para el entorno de colas predeterminado. Añádalo cuando las acciones de configuración del host o las herramientas del lado de los trabajadores extraigan imágenes fuera de una sesión de cola.
Requisitos previos
Antes de empezar, configúrelo AWS CLI con permiso para crear flotas de Deadline Cloud y adjuntar políticas a las funciones de cola y flota. También necesita una granja, cola, función de cola, función de flota e imagen de contenedor existentes en un repositorio privado de Amazon ECR.
Cree la flota
Para crear un Docker-flota habilitada
-
Establece los valores de tu granja, cola y rol.
FARM_ID=farm-0123456789abcdef0123456789abcdefQUEUE_ID=queue-0123456789abcdef0123456789abcdefFLEET_ROLE_ARN=arn:aws:iam::123456789012:role/DeadlineFleetRoleMAX_WORKERS=10QUEUE_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 -
Adjunte la política de solo lectura de Amazon ECR a la función de cola. El entorno de Docker colas predeterminado utiliza las credenciales de cola para autenticar y extraer la imagen.
aws iam attach-role-policy \ --role-name "$QUEUE_ROLE_NAME" \ --policy-arn "$ECR_READ_ONLY_POLICY" -
(Opcional) Adjunte la misma política a la función de flota cuando las acciones de configuración del anfitrión o las herramientas del lado de los trabajadores deban extraer imágenes fuera de la sesión de cola.
aws iam attach-role-policy \ --role-name "$FLEET_ROLE_NAME" \ --policy-arn "$ECR_READ_ONLY_POLICY" -
Cree un archivo
docker-fleet-configuration.jsoncon el nombre de la siguiente configuración de flota:{ "serviceManagedEc2": { "instanceCapabilities": { "vCpuCount": { "min": 4, "max": 16 }, "memoryMiB": { "min": 8192, "max": 65536 }, "osFamily": "linux", "cpuArchitectureType": "x86_64", "softwareAddOns": [ { "name": "docker" } ] }, "instanceMarketOptions": { "type": "spot" } } } -
Cree la flota gestionada por el servicio y guarde su ID de flota.
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" -
Asocia la cola a la flota.
aws deadline create-queue-fleet-association \ --farm-id "$FARM_ID" \ --queue-id "$QUEUE_ID" \ --fleet-id "$FLEET_ID"
Verifica los permisos de la flota y el rol
Para verificar el soporte de contenedores
-
Compruebe que la configuración de la flota incluye el complemento Docker de software.
aws deadline get-fleet \ --farm-id "$FARM_ID" \ --fleet-id "$FLEET_ID" \ --query 'configuration.serviceManagedEc2.instanceCapabilities.softwareAddOns'Confirme que la respuesta contiene
"name": "docker". -
Compruebe que el rol de cola tenga la política de solo lectura de Amazon ECR.
aws iam list-attached-role-policies \ --role-name "$QUEUE_ROLE_NAME" \ --query 'AttachedPolicies[?PolicyName==`AmazonEC2ContainerRegistryReadOnly`]' -
Si ha asociado la política a la función de flota, repita el comando con.
--role-name "$FLEET_ROLE_NAME"
La flota funciona sin arraigoDocker, pero la cola sigue necesitando un entorno de Docker cola que identifique una imagen. Para obtener detalles sobre la configuración de las colas, consulte. Soporte de contenedores para flotas gestionadas por servicios