Definisci quali pod utilizzano AWS Fargate durante l’avvio - Amazon EKS

Contribuisci a migliorare questa pagina

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à.

Per contribuire a questa guida per l'utente, scegli il GitHub link Modifica questa pagina nel riquadro destro di ogni pagina.

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à.

Definisci quali pod utilizzano AWS Fargate durante l’avvio

Prima di programmare i pod su Fargate nel cluster, devi definire almeno un profilo Fargate che specifichi i pod utilizzati da Fargate al momento dell’avvio.

Come amministratore, puoi utilizzare il profilo Fargate per dichiarare quali pod vengono eseguiti su Fargate. Puoi farlo attraverso i selettori del profilo. Puoi aggiungere fino a cinque selettori a ogni profilo. Ogni selettore deve contenere uno spazio dei nomi. Il selettore può includere anche etichette. Il campo etichetta è costituito da più coppie chiave-valore facoltative. I pod che corrispondono ai selettori sono programmati su Fargate. I pod vengono abbinati utilizzando uno spazio dei nomi e le etichette specificate nel selettore. Se un selettore di namespace è definito senza etichette, Amazon EKS tenterà di pianificare tutti i pod che vengono eseguiti in tale namespace su Fargate utilizzando il profilo. Se un pod da programmare corrisponde a uno dei selettori nel profilo Fargate, allora quel pod viene programmato su Fargate.

Se un pod corrisponde a più profili Fargate, puoi specificare quale profilo viene utilizzato dal pod aggiungendo la seguente etichetta Kubernetes alla specifica del pod: eks.amazonaws.com/fargate-profile: my-fargate-profile. Il pod deve corrispondere a un selettore in quel profilo per essere pianificato su Fargate. Le regole di affinità/anti-affinità Kubernetes non si applicano e non sono necessarie con i pod Fargate di Amazon EKS.

Quando crei un profilo Fargate, devi specificare il ruolo di esecuzione di un pod. Questo ruolo di esecuzione è per i componenti Amazon EKS che vengono eseguiti su infrastruttura Fargate utilizzando il profilo. Viene aggiunto al controllo di accesso basato sul ruolo (RBAC) del cluster di Kubernetes 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. 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 di esecuzione del pod di Amazon EKS.

I profili Fargate non possono essere modificati. Tuttavia, è possibile creare un nuovo profilo aggiornato per sostituire un profilo esistente e quindi eliminare l’originale.

Nota

Qualsiasi pod in esecuzione utilizzando un profilo Fargate viene arrestato e messo 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.

Nota

Attualmente, Fargate non supporta topologySpreadConstraints di Kubernetes.

Amazon EKS e Fargate cercano di implementare i pod su ciascuna delle sottoreti definite nel profilo Fargate. Tuttavia, potresti ritrovarti con una diffusione irregolare. Se devi avere una diffusione uniforme, usa due profili Fargate. Anche la diffusione è importante in scenari in cui desideri implementare due repliche e non vuoi tempi di inattività. È consigliabile che ogni profilo abbia una sola sottorete.

Componenti del profilo Fargate

Un profilo Fargate contiene i componenti elencati di seguito.

Ruolo di esecuzione del pod

Quando il cluster crea pod su AWS Fargate, il kubelet in esecuzione sull’infrastruttura di Fargate deve effettuare chiamate ad API AWS per tuo conto. Ad esempio, deve effettuare chiamate per estrarre le immagini del container da Amazon ECR. Il ruolo di esecuzione del pod Amazon EKS fornisce le autorizzazioni IAM per eseguire questa operazione.

Quando crei un profilo Fargate, devi specificare il ruolo di esecuzione di un pod da utilizzare col tuo pod. Questo ruolo viene aggiunto al controllo di accesso basato sul ruolo (RBAC) del cluster di Kubernetes 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 di esecuzione del pod di 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. È possibile specificare fino a cinque selettori in un profilo Fargate. I selettori hanno le seguenti componenti:

  • Spazio dei nomi: specifica uno spazio dei nomi per un selettore. Il selettore corrisponde solo ai pod che vengono creati in questo namespace. Tuttavia, è 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.

Wildcard del profilo di Fargate

Oltre ai caratteri consentiti da Kubernetes, puoi utilizzare * e ? nei criteri di selezione per namespace, chiavi di etichette e valori di etichette:

  • * rappresenta nessuno, uno o più caratteri. Ad esempio, prod* può rappresentare prod e prod-metrics.

  • ? rappresenta un singolo carattere (ad esempio, value? può rappresentare valuea). Tuttavia, non può rappresentare value e value-a, perché ? può rappresentare solo un carattere.

Questi caratteri jolly possono essere usati in qualsiasi posizione e in combinazione (ad esempio, prod*, *dev, e frontend*?). Altri caratteri jolly e forme di corrispondenza del modello, come le espressioni regolari, non sono supportati.

Se sono presenti più profili corrispondenti per il namespace e le etichette nelle specifiche del pod, Fargate seleziona il profilo in base all’ordinamento alfanumerico e al nome del profilo. Ad esempio, se entrambi i profili A (con il nome beta-workload) e il profilo B (con il nome prod-workload) hanno dei selettori corrispondenti per i pod da avviare, Fargate sceglie il profilo A (beta-workload) per i pod. I pod hanno etichette con il profilo A sui pod (ad esempio, eks.amazonaws.com/fargate-profile=beta-workload).

Se desideri eseguire la migrazione dei pod Fargate esistenti su nuovi profili che utilizzano caratteri jolly, puoi farlo in due modi:

  • Crea un nuovo profilo con i selettori corrispondenti, quindi elimina i vecchi profili. I pod etichettati con vecchi profili vengono riprogrammati con nuovi profili corrispondenti.

  • Se desideri eseguire la migrazione dei carichi di lavoro ma non hai la certezza di quali siano le etichette Fargate su ogni pod Fargate, puoi utilizzare il seguente metodo. Crea un nuovo profilo con un nome che ordina in ordine alfanumerico per primo tra i profili dello stesso cluster. Quindi, ricicla i pod Fargate che devono essere migrati a nuovi profili.

Creazione di un profilo Fargate

Questa sezione descrive come creare un profilo Fargate. Devi inoltre aver creato un ruolo di esecuzione del pod da utilizzare per il profilo Fargate. Per ulteriori informazioni, consulta Ruolo IAM di esecuzione del pod di 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. In questo modo il VPC del cluster deve avere sottoreti private disponibili.

Puoi creare un profilo con ciò che segue:

eksctl

Creazione di un profilo Fargate con eksctl

Crea il tuo profilo Fargate con il seguente comando eksctl, sostituendo ogni valore di esempio con i valori in tuo possesso. Devi specificare un namespace. Tuttavia, l’opzione --labels non è obbligatoria.

eksctl create fargateprofile \ --cluster my-cluster \ --name my-fargate-profile \ --namespace my-kubernetes-namespace \ --labels key=value

È possibile utilizzare determinati caratteri jolly per my-kubernetes-namespace e etichette key=value. Per ulteriori informazioni, consulta Wildcard del profilo di Fargate.

Console di gestione AWS

Creazione di un profilo Fargate con Console di gestione AWS

  1. Aprire la Console Amazon EKS.

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

  3. Scegli la scheda Calcolo.

  4. Nella sezione Profili Fargate, scegli Aggiungi profilo Fargate.

  5. Nella pagina Configure Fargate profile (Configura profilo Fargate), procedere come segue:

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

    2. Per il ruolo di esecuzione del pod, scegli 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 vedi alcun ruolo nell’elenco, è necessario crearne uno. Per ulteriori informazioni, consulta Ruolo IAM di esecuzione del pod di Amazon EKS.

    3. Modifica le sottoreti selezionate in base alle esigenze.

      Nota

      Solo le sottoreti private sono supportate per i pod in esecuzione su Fargate.

    4. In Tag, puoi facoltativamente aggiungere tag al tuo profilo Fargate. Questi tag non si propagano ad altre risorse associate al profilo, ad esempio i suoi pod.

    5. Scegli Next (Successivo).

  6. Nella pagina Configura selezione pod, procedi come segue:

    1. In Namespace, inserisci uno spazio dei nomi che corrisponda ai pod.

      • È possibile utilizzare spazi dei nomi specifici da abbinare, ad esempio kube-system o default.

      • È possibile utilizzare determinati caratteri jolly (ad esempio, prod-*) per abbinare più spazi dei nomi (ad esempio, prod-deployment e prod-test). Per ulteriori informazioni, consulta Wildcard del profilo di Fargate.

    2. (Facoltativo) Aggiungere etichette Kubernetes al selettore. In particolare, aggiungile al selettore a cui devono corrispondere i pod nel namespace specificato.

      • Puoi aggiungere l’etichetta infrastructure: fargate al selettore in modo che solo i pod nel namespace specificato che hanno anche l’etichetta Kubernetes infrastructure: fargate corrispondano al selettore.

      • È possibile utilizzare determinati caratteri jolly (ad esempio, key?: value?) per abbinare più spazi dei nomi (ad esempio, keya: valuea e keyb: valueb). Per ulteriori informazioni, consulta Wildcard del profilo di Fargate.

    3. Scegli Next (Successivo).

  7. Nella pagina Rivedi e crea, controlla le informazioni relative al profilo Fargate e scegli Crea.