Implementa ECS i servizi Amazon utilizzando un controller di terze parti - Amazon Elastic Container Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Implementa ECS i servizi Amazon utilizzando un controller di terze parti

Il tipo di distribuzione esterna consente di utilizzare qualsiasi controller di distribuzione di terze parti per il pieno controllo del processo di distribuzione di un ECS servizio Amazon. I dettagli del servizio sono gestiti dalle API azioni di gestione del servizio (CreateServiceUpdateService, eDeleteService) o dalle API azioni di gestione dei set di attività (CreateTaskSetUpdateTaskSet,UpdateServicePrimaryTaskSet, eDeleteTaskSet). Ogni API azione gestisce un sottoinsieme dei parametri di definizione del servizio.

L'UpdateServiceAPIazione aggiorna i parametri di conteggio e periodo di tolleranza del controllo dello stato desiderati per un servizio. Se è necessario aggiornare il tipo di avvio, la versione della piattaforma, i dettagli del load balancer, la configurazione di rete o la definizione di attività, occorre creare un nuovo set di attività.

L'UpdateTaskSetAPIazione aggiorna solo il parametro di scala per un set di attività.

L'UpdateServicePrimaryTaskSetAPIazione modifica quale set di attività in un servizio è il set di attività principale. Quando si richiama l'DescribeServicesAPIazione, restituisce tutti i campi specificati per un set di attività primario. Se viene aggiornato il set di attività principale per un servizio, quando viene definito il nuovo set principale eventuali valori del parametro esistenti sul nuovo ma diversi da quelli impostati sul precedente set di attività in un servizio verranno aggiornati ai nuovi valori. Se non viene definito un set di attività principale per un servizio, i relativi campi nella descrizione del servizio sono nulli.

Considerazioni sull'implementazione esterna

Quando utilizzi il tipo di distribuzione esterna, tieni conto di quanto segue:

  • I tipi di load balancer supportati sono un Application Load Balancer o un Network Load Balancer.

  • Il tipo di avvio Fargate oppure i tipi di controller di implementazione EXTERNAL non supportano la strategia di pianificazione DAEMON.

Flusso di lavoro dell'implementazione esterna

Di seguito è riportato il flusso di lavoro di base per la gestione di una distribuzione esterna su AmazonECS.

Per gestire un ECS servizio Amazon utilizzando un controller di distribuzione esterno
  1. Crea un ECS servizio Amazon. L'unico parametro obbligatorio è il nome del servizio. Durante la creazione di un servizio tramite un controller di distribuzione esterno, è possibile specificare i parametri indicati di seguito. Tutti gli altri, invece, vengono specificati al momento della creazione di un set di attività nel servizio.

    serviceName

    Tipo: stringa

    Campo obbligatorio: sì

    Il nome del servizio. Il nome può contenere un massimo di 255 lettere (maiuscole e minuscole), numeri, trattini e caratteri di sottolineatura. I nomi dei servizi devono essere univoci all'interno di un cluster, ma puoi avere servizi dai nomi simili in più cluster all'interno di una Regione o in più Regioni.

    desiredCount

    Il numero di istanze della definizione di attività per il set specificato, da posizionare e mantenere in esecuzione nel servizio.

    deploymentConfiguration

    I parametri di distribuzione opzionali che determinano quante attività vengono eseguite durante un'implementazione e l'ordine di arresto e di avvio delle attività.

    tags

    Tipo: matrice di oggetti

    Campo obbligatorio: no

    I metadati applicati al servizio per aiutarti a catalogarli e organizzarli. Ogni tag è composto da una chiave e da un valore opzionale, entrambi personalizzabili. Quando un servizio viene eliminato, vengono eliminati anche i tag. Al servizio è possibile applicare un massimo di 50 tag. Per ulteriori informazioni, consulta Etichettare le risorse Amazon ECS.

    key

    Tipo: stringa

    Limitazioni di lunghezza: lunghezza minima pari a 1. La lunghezza massima è 128 caratteri.

    Campo obbligatorio: no

    Una parte di una coppia chiave-valore che costituisce un tag. Una chiave è un'etichetta generale che funge da categoria per più valori di tag specifici.

    value

    Tipo: stringa

    Limitazioni di lunghezza: lunghezza minima di 0. La lunghezza massima è 256 caratteri.

    Campo obbligatorio: no

    La parte facoltativa di una coppia chiave-valore che costituisce un tag. Un valore agisce come descrittore all'interno di una categoria di tag (chiave).

    enableECSManagedTags

    Speciifica se utilizzare i tag ECS gestiti da Amazon per le attività all'interno del servizio. Per ulteriori informazioni, consulta Utilizza i tag per la fatturazione.

    propagateTags

    Tipo: stringa

    Valori validi: TASK_DEFINITION | SERVICE

    Campo obbligatorio: no

    Specifica se copiare i tag dalla definizione di attività o dal servizio nelle attività del servizio. Se non viene specificato alcun valore, i tag non vengono copiati. I tag possono essere copiati solo nelle attività all'interno del servizio durante la creazione del servizio. Per aggiungere tag a un'attività dopo la creazione del servizio o la creazione di un'attività, utilizza l'TagResourceAPIazione.

    schedulingStrategy

    La strategia di pianificazione da utilizzare. I servizi che utilizzano un controller di distribuzione esterno supportano solo la strategia di pianificazione REPLICA.

    placementConstraints

    Serie di oggetti vincolo di posizionamento da utilizzare per le attività del servizio. Puoi specificare un massimo di 10 vincoli per attività (questo limite include i vincoli nella definizione di attività e quelli specificati in fase di runtime). Se utilizzi il tipo di avvio Fargate, i vincoli di posizionamento dei processi non sono supportati.

    placementStrategy

    Gli oggetti strategia di posizionamento da utilizzare per le attività del servizio. Puoi specificare un massimo di quattro regole di strategia per ogni servizio.

    Di seguito è illustrato un esempio di definizione per la creazione di un servizio che utilizza un controller di distribuzione esterno.

    { "cluster": "", "serviceName": "", "desiredCount": 0, "role": "", "deploymentConfiguration": { "maximumPercent": 0, "minimumHealthyPercent": 0 }, "placementConstraints": [ { "type": "distinctInstance", "expression": "" } ], "placementStrategy": [ { "type": "binpack", "field": "" } ], "schedulingStrategy": "REPLICA", "deploymentController": { "type": "EXTERNAL" }, "tags": [ { "key": "", "value": "" } ], "enableECSManagedTags": true, "propagateTags": "TASK_DEFINITION" }
  2. Creare un set di attività iniziali. Il set di attività contiene i seguenti i dettagli sul servizio:

    taskDefinition

    La definizione delle attività nel set da utilizzare.

    launchType

    Tipo: stringa

    Valori validi: EC2 | FARGATE | EXTERNAL

    Campo obbligatorio: no

    Il tipo di avvio con cui eseguire il servizio. Se non viene specificato un tipo di avvio, per impostazione predefinita viene utilizzato il capacityProviderStrategy di default. Per ulteriori informazioni, consulta Tipi di ECS lancio di Amazon.

    Se viene specificato un launchType, il parametro capacityProviderStrategy deve essere omesso.

    platformVersion

    Tipo: string

    Campo obbligatorio: no

    La versione della piattaforma su cui sono in esecuzione le attività nel servizio. Viene specificata una versione della piattaforma solo per le attività con tipo di avvio Fargate. Se non è specificata, la versione più recente (LATEST) viene utilizzata di default.

    AWS Le versioni della piattaforma Fargate vengono utilizzate per fare riferimento a un ambiente di runtime specifico per l'infrastruttura di attività Fargate. Quando specifichi la versione della piattaforma LATEST durante l'esecuzione di un'attività o la creazione di un servizio, ottieni la versione di piattaforma più aggiornata disponibile per le tue attività. Quando incrementi il servizio, tali attività riceveranno la versione della piattaforma specificata nell'implementazione corrente del servizio. Per ulteriori informazioni, consulta Versioni della piattaforma Fargate per Amazon ECS.

    Nota

    Le versioni della piattaforma non sono specificate per le attività che utilizzano il tipo di EC2 avvio.

    loadBalancers

    Un oggetto che rappresenta il load balancer da utilizzare con il tuo servizio. Quando si utilizza un controller di implementazione esterno, sono supportati solo Application Load Balancer e il Network Load Balancer. Se si utilizza un Application Load Balancer, è consentito un solo gruppo di destinazione di Application Load Balancer per ogni set di processi.

    Il frammento di codice seguente mostra un oggetto loadBalancer di esempio da utilizzare.

    "loadBalancers": [ { "targetGroupArn": "", "containerName": "", "containerPort": 0 } ]
    Nota

    Quando si specifica un oggetto loadBalancer, è necessario specificare targetGroupArn e omettere i parametri loadBalancerName.

    networkConfiguration

    La configurazione di rete per il servizio. Questo parametro è obbligatorio per le definizioni di attività che utilizzano la modalità di rete awsvpc per ricevere la propria interfaccia di rete elastica e non è supportato per altre modalità. Per ulteriori informazioni sulla rete per il tipo di lancio Fargate, vedere. Opzioni di ECS task networking di Amazon per il tipo di lancio Fargate

    serviceRegistries

    I dettagli dei registri del servizio di individuazione da assegnare a questo servizio. Per ulteriori informazioni, consulta Usa Service Discovery per connettere ECS i servizi Amazon con DNS i nomi.

    scale

    Percentuale a virgola mobile del numero desiderato di attività da posizionare e mantenere in esecuzione nel seti di attività. Il valore è specificato come percentuale totale del conteggio desiderato (desiredCount) di un servizio. Come valori sono accettati i numeri da 0 a 100.

    Di seguito è riportato un JSON esempio di creazione di un set di attività per un controller di distribuzione esterno.

    { "service": "", "cluster": "", "externalId": "", "taskDefinition": "", "networkConfiguration": { "awsvpcConfiguration": { "subnets": [ "" ], "securityGroups": [ "" ], "assignPublicIp": "DISABLED" } }, "loadBalancers": [ { "targetGroupArn": "", "containerName": "", "containerPort": 0 } ], "serviceRegistries": [ { "registryArn": "", "port": 0, "containerName": "", "containerPort": 0 } ], "launchType": "EC2", "capacityProviderStrategy": [ { "capacityProvider": "", "weight": 0, "base": 0 } ], "platformVersion": "", "scale": { "value": null, "unit": "PERCENT" }, "clientToken": "" }
  3. Quando sono necessarie modifiche al servizio, utilizza l'UpdateServiceCreateTaskSetAPIazione o a seconda dei parametri che stai aggiornando. UpdateTaskSet Se è stato creato un set di attività, utilizzare il parametro scale per ogni set di attività in un servizio, per determinare il numero di attività da mantenere in esecuzione nel servizio. Ad esempio, se si dispone di un servizio che contiene un tasksetA e si crea un tasksetB, è consigliabile testare la validità del tasksetB prima di trasferire a esso il traffico di produzione. È possibile impostare il parametro scale per entrambi i set di attività su 100e, una volta pronti a spostare tutto il traffico di produzione nel tasksetB, è possibile aggiornare scale per tasksetA su 0 per ridurlo.