Profilo AWS Fargate - Amazon EKS

Profilo AWS Fargate

Prima di poter programmare i pod su Fargate nel cluster, è necessario definire almeno un profilo Fargate che specifichi i pod utilizzati da Fargate al momento dell'avvio.

Il profilo Fargate consente a un amministratore di dichiarare quali pod vengono eseguiti su Fargate. Questa dichiarazione viene eseguita attraverso i selettori del profilo. Ogni profilo può contenere fino a cinque selettori che contengono uno spazio dei nomi ed etichette opzionali. È necessario definire uno spazio dei nomi per ogni selettore. Il campo etichetta è costituito da più coppie chiave-valore opzionali. I pod che corrispondono a un selettore (abbinando uno spazio dei nomi per il selettore e tutte le etichette specificate nel selettore) sono programmati su Fargate. Se un selettore dello spazio dei nomi è definito senza etichette, Amazon EKS tenterà di pianificare tutti i pod che vengono eseguiti in tale spazio dei nomi su Fargate utilizzando il profilo. Se un pod da programmare corrisponde a uno dei selettori nel profilo Fargate, il pod viene programmato su Fargate.

Se un pod corrisponde a più profili Fargate, Amazon EKS seleziona una delle corrispondenze in modo casuale. In questo caso, è possibile specificare quale profilo deve utilizzare un pod aggiungendo la seguente etichetta Kubernetes alle specifiche del pod: eks.amazonaws.com/fargate-profile: fargate_profile_name. Tuttavia, il pod deve comunque corrispondere a un selettore in quel profilo per essere pianificato su Fargate. Le regole di affinità/anti-affinità Kubernetes non vengono prese in considerazione e non sono necessarie con i pod Amazon EKS Fargate.

Quando si crea un profilo Fargate, è necessario specificare un ruolo di esecuzione del pod per i componenti Amazon EKS che vengono eseguiti su infrastruttura Fargate utilizzando il profilo. Questo ruolo viene aggiunto al Controllo degli accessi basato sul ruolo (RBAC) di Kubernetes del cluster per l'autorizzazione in modo che kubelet in esecuzione sull’infrastruttura Fargate possa registrarsi con il cluster Amazon EKS e apparire nel cluster come nodo. Il ruolo di esecuzione del pod fornisce anche le autorizzazioni IAM per l'infrastruttura Fargate per consentire l'accesso in lettura ai repository di immagini di Amazon ECR. Per ulteriori informazioni, consulta Ruolo IAM per l'esecuzione del pod Amazon EKS.

I profili di Fargate sono immutabili. Tuttavia, è possibile creare un nuovo profilo aggiornato per sostituire un profilo esistente e quindi eliminare l'originale al termine della creazione del profilo aggiornato.

Nota

Tutti i pod che sono in esecuzione utilizzando un profilo Fargate verranno arrestati e messi in sospeso quando il profilo viene eliminato.

Se tutti i profili in un cluster sono nello stato DELETING, è necessario attendere che tale profilo Fargate finisca l'eliminazione prima di poter creare altri profili in tale cluster.

Amazon EKS e Fargate cercano di implementare i pod su ciascuna delle sottoreti definite nel profilo Fargate, ma la distribuzione potrebbe essere irregolare. Se è necessario disporre di un’implementazione uniforme, ad esempio per la distribuzione di due repliche senza tempi di inattività, è necessario utilizzare due profili Fargate. Ogni profilo deve avere una sola sottorete.

Componenti del profilo Fargate

I seguenti componenti sono contenuti in un profilo Fargate.

  • Ruolo di esecuzione del pod – Quando il cluster crea pod su AWS Fargate, il kubelet che è in esecuzione sull'infrastruttura di Fargate deve effettuare chiamate ad API AWS per conto dell'utente. Ciò accade, ad esempio, quando serve estrarre le immagini container da Amazon ECR. Il ruolo di esecuzione del pod Amazon EKS fornisce le autorizzazioni IAM per eseguire questa operazione.

    Quando si crea un profilo Fargate, è necessario specificare un ruolo di esecuzione del pod da utilizzare con i pod. Questo ruolo viene aggiunto al controllo di accesso basato sul ruolo (RBAC) di Kubernetes del cluster per l'autorizzazione. Ciò consente a kubelet in esecuzione sull’infrastruttura Fargate di registrarsi con il cluster Amazon EKS in modo che possa essere visualizzato nel cluster come nodo. Per ulteriori informazioni, consulta . Ruolo IAM per l'esecuzione del pod Amazon EKS.

  • Sottoreti – Gli ID delle sottoreti per avviare i pod che utilizzano questo profilo. A questo momento, ai pod in esecuzione su Fargate non vengono assegnati indirizzi IP pubblici. Di conseguenza, in virtù di questo parametro, sono accettate solo le sottoreti private (senza routing diretto a un Gateway Internet).

  • Selettori – I selettori da abbinare ai pod per utilizzare questo profilo Fargate. Ogni selettore deve avere uno spazio dei nomi associato. Facoltativamente, è anche possibile specificare le etichette per uno spazio dei nomi. È possibile specificare fino a cinque selettori in un profilo Fargate. Un pod deve corrispondere solo a un selettore per essere eseguito utilizzando il profilo Fargate.

  • Spazio dei nomi – Specifica uno spazio dei nomi per un selettore. Il selettore corrisponde solo ai pod creati in questo spazio dei nomi, ma è possibile creare più selettori per rivolgersi a più spazi dei nomi.

  • Etichette: è possibile specificare facoltativamente le etichette Kubernetes che corrispondono al selettore. Il selettore corrisponde solo ai pod che hanno tutte le etichette specificate nel selettore.

Creazione di un profilo Fargate

Questo argomento consente di creare un profilo Fargate. AWS Fargate con Amazon EKS è disponibile in tutte le regioni Amazon EKS ad eccezione di Cina (Pechino), Cina (Ningxia), AWS GovCloud (Stati Uniti orientali) e AWS GovCloud (Stati Uniti occidentali). È inoltre necessario aver creato un ruolo di esecuzione del pod da utilizzare per il profilo Fargate. Per ulteriori informazioni, consulta . Ruolo IAM per l'esecuzione del pod Amazon EKS. I pod in esecuzione su Fargate sono supportati solo su sottoreti private (con un accesso NAT gateway ai servizi AWS, ma senza una route diretta a un Gateway Internet), pertanto il VPC del cluster deve disporre di sottoreti private disponibili. È possibile creare un profilo con eksctl o il AWS Management Console. Seleziona la scheda con il nome dello strumento con cui vuoi creare il profilo Fargate.

Questa procedura richiede eksctl versione 0.84.0 o versione successiva. Puoi verificare la versione con il seguente comando:

eksctl version

Per ulteriori informazioni sull'installazione o l'aggiornamento di eksctl, consulta Installazione o aggiornamento di eksctl.

eksctl

Per creare un profilo Fargate con eksctl

Crea il tuo profilo Fargate con il seguente comando eksctl, sostituendo ogni example-value con i valori in tuo possesso. È necessario specificare uno spazio dei nomi. Tuttavia, l'opzione --labels non è obbligatoria.

eksctl create fargateprofile \ --cluster my-cluster \ --name fargate_profile_name \ --namespace kubernetes_namespace \ --labels key=value
AWS Management Console

Per creare un profilo Fargate per un cluster con la AWS Management Console

  1. Aprire la console Amazon EKS all'indirizzo https://console.aws.amazon.com/eks/home#/clusters.

  2. Scegliere il cluster per cui creare un profilo Fargate.

  3. Scegliere la scheda Configuration (Configurazione).

  4. Scegliere la scheda Compute (Calcolo).

  5. In Fargate Profiles (Profili Fargate), scegli Add Fargate Profile (Aggiungi profilo Fargate).

  6. Nella pagina Configure Fargate Profile (Configura profilo Fargate), effettua le seguenti operazioni:

    1. Per Nome, inserire un nome univoco per il profilo Fargate, ad esempio my-profile.

    2. Per il Ruolo di esecuzione del pod, scegliere il ruolo di esecuzione del pod da utilizzare con il profilo Fargate. Vengono visualizzati solo i ruoli IAM con il principale del servizio eks-fargate-pods.amazonaws.com. Se non è presente alcun ruolo nell'elenco, è necessario crearne uno. Per ulteriori informazioni, consulta . Ruolo IAM per l'esecuzione del pod Amazon EKS.

    3. Seleziona l'elenco a discesa Subnets (Sottoreti) e deseleziona qualsiasi sottorete il cui nome contenga Public. Solo le sottoreti private sono supportate per i pod in esecuzione su Fargate.

    4. Per i Tag, puoi opzionalmente taggare il tuo profilo Fargate. Questi tag non si propagano ad altre risorse associate al profilo, ad esempio i suoi pod.

    5. Seleziona Next (Successivo).

  7. Nella pagina Configure pod selection (Configura selezione pod), procedere come segue:

    1. Per Namespace (Spazio dei nomi), immettere uno spazio dei nomi che corrisponda ai pod, ad esempio kube-system o default.

    2. (Facoltativo) Aggiungere etichette Kubernetes al selettore. In particolare, aggiungerle al selettore con cui i pod nello spazio dei nomi specificato devono corrispondere. Ad esempio, è possibile aggiungere l'etichetta infrastructure: fargate al selettore in modo che solo i pod nello spazio dei nomi specificato che hanno anche l'etichetta Kubernetes infrastructure: fargate corrispondano al selettore.

    3. Seleziona Next (Successivo).

  8. Nella pagina Verifica e Crea controlla le informazioni relative al profilo Fargate e scegliere Crea.

Eliminazione di un profilo Fargate

Questo argomento ti aiuta ad eliminare un profilo Fargate.

Quando elimini un profilo Fargate, tutti i pod che sono stati programmati su Fargate con quel profilo vengono eliminati. Se questi pod corrispondono a un altro profilo Fargate, vengono allora programmati su Fargate con quel profilo. Se non corrispondono più a nessun profilo Fargate, non saranno programmati su Fargate e potrebbero rimanere in sospeso.

Solo un profilo Fargate alla volta, in un cluster, può essere nello stato DELETING. Devi attendere il completamento dell'eliminazione di un profilo Fargate prima di poter eliminare altri profili nel cluster.

È possibile eliminare un profilo con eksctl, la AWS Management Console o la AWS CLI. Selezionare la scheda con il nome dello strumento che si desidera utilizzare per cancellare il profilo.

eksctl

Eliminazione di un profilo Fargate con eksctl

Utilizzare il comando seguente per eliminare un profilo da un cluster. Sostituisci ogni example-value con i valori in tuo possesso.

eksctl delete fargateprofile --name my-profile --cluster my-cluster
AWS Management Console

Per eliminare un profilo Fargate da un cluster con la AWS Management Console

  1. Aprire la console Amazon EKS all'indirizzo https://console.aws.amazon.com/eks/home#/clusters.

  2. Nel pannello di navigazione a sinistra, scegli Clusters (Cluster) Amazon EKS. Nell'elenco dei cluster, scegli il cluster da cui desideri eliminare il profilo Fargate.

  3. Selezionare la scheda Configuration (Configurazione), quindi scegliere la scheda Compute (Calcolo).

  4. Scegli il profilo Fargate da eliminare e quindi scegli Delete (Elimina).

  5. Nella pagina Delete Fargate Profile (Elimina profilo Fargate), digita il nome del profilo e scegli Delete (Elimina).

AWS CLI

Eliminazione di un profilo Fargate con AWS CLI

Utilizzare il comando seguente per eliminare un profilo da un cluster. Sostituisci ogni example-value con i valori in tuo possesso.

aws eks delete-fargate-profile --fargate-profile-name my-profile --cluster-name my-cluster