View a markdown version of this page

Creando un Docker-flota habilitada con AWS CLI - AWS Nube de plazos

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
  1. Establece los valores de tu granja, cola y rol.

    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. 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"
  3. (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"
  4. Cree un archivo docker-fleet-configuration.json con 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" } } }
  5. 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"
  6. 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
  1. 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".

  2. 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`]'
  3. 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