Aiutaci a migliorare questa pagina
Vuoi contribuire a questa guida per l'utente? Scorri fino alla fine di questa pagina e seleziona Modifica questa pagina su GitHub. I tuoi contributi contribuiranno a rendere la nostra guida utente migliore per tutti.
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à.
Crea sistemi autogestiti Microsoft Windows nodi
Questo argomento descrive come avviare gruppi di Auto Scaling di Windows nodi che si registrano nel tuo EKS cluster Amazon. Dopo che i nodi si sono uniti al cluster, puoi eseguire la distribuzione Kubernetes applicazioni destinate a loro.
Importante
EKSI nodi Amazon sono EC2 istanze Amazon standard e vengono fatturati in base ai normali prezzi delle EC2 istanze Amazon. Per ulteriori informazioni, consulta i EC2prezzi di Amazon
. Puoi avviare nodi Windows in cluster EKS estesi Amazon su AWS Outposts, ma non puoi avviarli in cluster AWS locali su Outposts. Per ulteriori informazioni, consulta Implementa Amazon in EKS locale con AWS Outposts.
Attiva Windows supporto per il tuo cluster. Ti consigliamo di esaminare le considerazioni importanti prima di avviare un Windows gruppo di nodi. Per ulteriori informazioni, consulta Attiva Windows supporto.
Puoi avviare la gestione automatica Windows nodi con eksctl
o. AWS Management Console
- eksctl
-
Per avviare la gestione automatica Windows nodi che utilizzano
eksctl
Questa procedura presuppone che
eksctl
sia installato e che la versioneeksctl
sia almeno0.191.0
. È possibile verificare la tua versione con il seguente comando.eksctl version
Per istruzioni sull'installazione o sull'aggiornamento di
eksctl
, consulta la sezione Installationnella documentazione di eksctl
.Nota
Questa procedura funziona solo per i cluster creati con
eksctl
.-
(Facoltativo) Se la CNIpolicy gestita di Amazon EKS _ IAM _Policy (se hai un
IPv4
cluster) o la
(che hai creato tu stesso se hai unAmazonEKS_CNI_IPv6_Policy
IPv6
cluster) è allegata al tuoRuolo IAM del nodo Amazon EKS, ti consigliamo di assegnarla a un IAM ruolo da associare al Kubernetesaws-node
account di servizio invece. Per ulteriori informazioni, consulta Configura il VPC CNI plug-in Amazon da utilizzare IRSA. -
In questa procedura si presuppone la disponibilità di un cluster. Se non disponi già di un EKS cluster Amazon e di un gruppo di nodi Amazon Linux per aggiungere un Windows gruppo di nodi a, ti consigliamo di seguire la Inizia a usare Amazon EKS — eksctl guida. La guida fornisce una guida completa su come creare un EKS cluster Amazon con nodi Amazon Linux.
Crea il tuo gruppo di nodi con il comando seguente.
Sostituiscilo con Regione AWS quello in cui si trova il cluster. Sostituisciregion-code
con il nome del cluster. Il nome può contenere solo caratteri alfanumerici (con distinzione tra lettere maiuscole e minuscole) e trattini. Deve iniziare con un carattere alfanumerico e non può contenere più di 100 caratteri. Il nome deve essere univoco all'interno del Regione AWS e in Account AWS cui si sta creando il cluster. Sostituiscimy-cluster
con un nome per il gruppo di nodi. Il nome del gruppo di nodi non può contenere più di 63 caratteri. Deve iniziare con una lettera o un numero, ma può anche includere trattini e caratteri di sottolineatura. In Kubernetes versioneng-windows
1.24
o successiva, puoi sostituirla
con2019
2022
to use Windows Server 2022. Sostituisci il resto di
con i valori in tuo possesso.example values
Importante
Per distribuire un gruppo di nodi su o su sottoreti AWS Local AWS Outposts Zone, non passare le sottoreti AWS Outposts Wavelength o Local Zone quando crei il cluster. AWS Wavelength Crea il gruppo di nodi con un file di configurazione, specificando le sottoreti AWS Outposts Wavelength o Local Zone. Per ulteriori informazioni, vedere Creazione di un gruppo di nodi da un file di configurazione
e lo Schema del file config nella documentazione su eksctl
.eksctl create nodegroup \ --region
region-code
\ --clustermy-cluster
\ --nameng-windows
\ --node-typet2.large
\ --nodes3
\ --nodes-min1
\ --nodes-max4
\ --managed=false \ --node-ami-familyWindowsServer2019FullContainer
Nota
-
Se i nodi non riescono a unirsi al cluster, consultare Impossibile aggiungere i nodi al cluster nella Guida alla risoluzione dei problemi.
-
Per vedere le opzioni disponibili per i comandi
eksctl
, inserire il comando seguente.eksctl
command
-help
Di seguito viene riportato un output di esempio: Durante la creazione dei nodi vengono generate diverse righe. Una delle ultime righe di output è simile alla seguente riga di esempio.
[✔] created 1 nodegroup(s) in cluster "
my-cluster
" -
-
(Facoltativo) Implementate un'applicazione di esempio per testare il cluster e Windows nodi.
Ti consigliamo di bloccare Pod accesso a IMDS se sono vere le seguenti condizioni:
Hai intenzione di assegnare IAM ruoli a tutti i tuoi Kubernetes account di servizio in modo che Pods dispongono solo delle autorizzazioni minime di cui hanno bisogno.
No Pods nel cluster richiedono l'accesso al servizio di metadati dell'EC2istanza Amazon (IMDS) per altri motivi, come il recupero della corrente. Regione AWS
Per ulteriori informazioni, consulta Limita l'accesso al profilo dell'istanza assegnato al nodo (worker)
.
-
- AWS Management Console
-
Prerequisiti
-
Un EKS cluster Amazon esistente e un Linux gruppo di nodi. Se non disponi di tali risorse, ti consigliamo di seguire una delle nostre guide Inizia a usare Amazon EKS per crearle. Le guide descrivono come creare un EKS cluster Amazon con Linux nodi.
-
Un gruppo esistente VPC e di sicurezza che soddisfa i requisiti per un EKS cluster Amazon. Per ulteriori informazioni, consulta Visualizza i requisiti EKS di rete Amazon per VPC e le sottoreti e Visualizza i requisiti EKS dei gruppi di sicurezza Amazon per i cluster. La Inizia a usare Amazon EKS guida crea un file VPC che soddisfa i requisiti. In alternativa, è possibile anche seguire Crea un Amazon VPC per il tuo EKS cluster Amazon per crearne uno nuovo manualmente.
-
Un EKS cluster Amazon esistente che utilizza un gruppo di sicurezza VPC e che soddisfa i requisiti di un EKS cluster Amazon. Per ulteriori informazioni, consulta Crea un EKS cluster Amazon. Se hai delle sottoreti nel luogo in Regione AWS cui hai AWS Outposts AWS Wavelength, o le AWS Local Zones sono abilitate, tali sottoreti non devono essere state passate al momento della creazione del cluster.
Fase 1: Avviare la gestione automatica Windows nodi che utilizzano il AWS Management Console
-
Attendi che lo stato del cluster risulti
ACTIVE
. Se i nodi vengono avviati prima che il cluster sia attivo, la registrazione al cluster non riesce e sarà necessario riavviarli. -
Apri la AWS CloudFormation console in https://console.aws.amazon.com/cloudformation
-
Seleziona Crea stack.
-
Per Specificare il modello, seleziona Amazon S3 URL.
-
Copia quanto segue URL e incollalo in Amazon S3 URL.
https://s3.us-west-2.amazonaws.com/amazon-eks/cloudformation/2023-02-09/amazon-eks-windows-nodegroup.yaml
-
Seleziona due volte Next (Avanti).
-
Nella pagina Quick create stack (Creazione rapida pila), inserire i seguenti parametri di conseguenza:
-
Nome stack: scegli il nome per lo stack di AWS CloudFormation . Ad esempio, è possibile chiamarlo
.my-cluster
-nodes -
ClusterName: inserisci il nome che hai usato per creare il tuo EKS cluster Amazon.
Importante
Il nome deve corrispondere esattamente a quello presente nel Fase 1: Crea il tuo EKS cluster Amazon. In caso contrario, i nodi non possono aggiungersi al cluster.
-
ClusterControlPlaneSecurityGroup: Scegli il gruppo di sicurezza dall' AWS CloudFormation output che hai generato quando hai creato il tuo VPC.
Nella procedura seguente viene illustrato un metodo per recuperare il gruppo applicabile.
Apri la EKS console Amazon a https://console.aws.amazon.com/eks/home#/clusters
. -
Scegli il nome del cluster.
-
Scegli la scheda Reti.
-
Usa il valore dei gruppi di sicurezza aggiuntivi come riferimento quando selezioni dall'elenco a discesa. ClusterControlPlaneSecurityGroup
-
NodeGroupName: inserisci un nome per il tuo gruppo di nodi. Questo nome può essere utilizzato in seguito per identificare il gruppo di nodi con dimensionamento automatico creato per i tuoi nodi. Il nome del gruppo di nodi non può contenere più di 63 caratteri. Deve iniziare con una lettera o un numero, ma può anche includere trattini e caratteri di sottolineatura.
-
NodeAutoScalingGroupMinSize: Inserisci il numero minimo di nodi su cui il gruppo Auto Scaling del nodo può scalare.
-
NodeAutoScalingGroupDesiredCapacity: Inserisci il numero di nodi desiderato su cui scalare quando viene creato lo stack.
-
NodeAutoScalingGroupMaxSize: Inserisci il numero massimo di nodi su cui il gruppo Auto Scaling del nodo può scalare orizzontalmente.
-
NodeInstanceType: scegli un tipo di istanza per i tuoi nodi. Per ulteriori informazioni, consulta Scegli un tipo di istanza Amazon EC2 node ottimale.
Nota
I tipi di istanza supportati per la versione più recente di Amazon VPC CNI plugin for Kubernetes
sono elencati in vpc_ip_resource_limit.go su GitHub. Potrebbe essere necessario aggiornare la CNI versione per utilizzare i tipi di istanza supportati più recenti. Per ulteriori informazioni, consulta Assegna IPs a Pods con Amazon VPC CNI. -
NodeImageIdSSMParam: precompilato con il parametro Amazon EC2 Systems Manager dell'attuale opzione Amazon optimized consigliata EKS Windows ID principaleAMI. Per utilizzare la versione completa di Windows, sostituire
conCore
Full
. -
NodeImageId: (Facoltativo) Se utilizzi il tuo account personalizzato AMI (anziché quello EKS ottimizzato per AmazonAMI), inserisci un AMI ID del nodo per il tuo Regione AWS. Se specifichi un valore per questo campo, questo sostituisce tutti i valori presenti nel NodeImageIdSSMParamcampo.
-
NodeVolumeSize: Specificate la dimensione del volume root per i nodi, in GiB.
-
KeyName: inserisci il nome di una coppia di EC2 SSH chiavi Amazon che puoi usare per connetterti ai tuoi nodi dopo il lancio. SSH Se non disponi già di una coppia di EC2 chiavi Amazon, puoi crearne una in AWS Management Console. Per ulteriori informazioni, consulta le coppie di EC2 chiavi Amazon nella Amazon EC2 User Guide.
Nota
Se non fornisci una key pair qui, lo AWS CloudFormation stack non viene creato.
-
BootstrapArguments: Specificate eventuali argomenti opzionali da passare allo script di bootstrap del nodo, come ad esempio l'utilizzo di
kubelet
argomenti aggiuntivi.-KubeletExtraArgs
-
D isableIMDSv 1: Per impostazione predefinita, ogni nodo supporta Instance Metadata Service versione 1 (IMDSv1) e. IMDSv2 È possibile disabilitareIMDSv1. Per prevenire nodi futuri e Pods nel gruppo di nodi da utilizzareMDSv1, imposta D isableIMDSv 1 su true. Per ulteriori informazioni suIMDS, vedere Configurazione del servizio di metadati dell'istanza.
-
VpcId: Seleziona l'ID per VPCquello che hai creato.
-
NodeSecurityGroups: Seleziona il gruppo di sicurezza creato per il tuo Linux gruppo di nodi quando hai creato il tuo VPC. Se le ricette di Linux ai nodi sono associati più di un gruppo di sicurezza, specificali tutti. Questo per, ad esempio, se Linux il gruppo di nodi è stato creato con
eksctl
. -
Sottoreti: scegliere le sottoreti create. Se lo hai creato VPC utilizzando la procedura descritta inCrea un Amazon VPC per il tuo EKS cluster Amazon, specifica solo le sottoreti private all'interno delle quali VPC i nodi possono essere avviati.
Importante
-
Se una qualsiasi delle sottoreti è pubblica, devi abilitare l'impostazione di assegnazione automatica degli indirizzi IP pubblici. Se l'impostazione non è abilitata per la sottorete pubblica, ai nodi distribuiti in quella sottorete pubblica non verrà assegnato un indirizzo IP pubblico e non saranno in grado di comunicare con il cluster o altri servizi. AWS Se la sottorete è stata distribuita prima del 26 marzo 2020 utilizzando uno dei EKS AWS CloudFormation VPCmodelli Amazon o utilizzando
eksctl
, l'assegnazione automatica degli indirizzi IP pubblici è disabilitata per le sottoreti pubbliche. Per informazioni su come abilitare l'assegnazione di indirizzi IP pubblici per una sottorete, consulta Modifica dell'attributo di assegnazione degli indirizziIPv4
pubblici per la sottorete. Se il nodo viene distribuito in una sottorete privata, è in grado di comunicare con il cluster e altri servizi tramite un gateway. AWS NAT -
Se le sottoreti non hanno accesso a Internet, leggi con attenzione le considerazioni e le aggiuntive descritte in Implementa cluster privati con accesso limitato a Internet.
-
Se si AWS Outposts selezionano le sottoreti Wavelength o Local Zone, le sottoreti non devono essere state passate al momento della creazione del cluster.
-
-
-
Riconosci che lo stack potrebbe creare IAM risorse, quindi scegli Crea stack.
-
Al termine della creazione dello stack, selezionalo nella console e scegli Output.
-
Registra il NodeInstanceRoleper il gruppo di nodi che è stato creato. Ne hai bisogno quando configuri Amazon EKS Windows nodi.
Fase 2: abilitazione dell'aggiunta di nodi al cluster
-
Verifica se disponi già di una
ConfigMap
peraws-auth
.kubectl describe configmap -n kube-system aws-auth
-
Se ti viene mostrata una
ConfigMap
peraws-auth
, aggiornala se necessario.-
Apri
ConfigMap
per la modifica.kubectl edit -n kube-system configmap/aws-auth
-
Aggiungi nuove voci
mapRoles
, se necessario. Impostaterolearn
i NodeInstanceRolevalori sui valori registrati nelle procedure precedenti.[...] data: mapRoles: |
- rolearn:
[...]<ARN of linux instance role (not instance profile)>
username: system:node:{{EC2PrivateDNSName}} groups: - system:bootstrappers - system:nodes - rolearn:<ARN of windows instance role (not instance profile)>
username: system:node:{{EC2PrivateDNSName}} groups: - system:bootstrappers - system:nodes - eks:kube-proxy-windows -
Salva il file ed esci dall'editor di testo.
-
-
Se hai ricevuto un messaggio di errore che indica "
Error from server (NotFound): configmaps "aws-auth" not found
", applica loConfigMap
di stock.-
Scarica la mappa di configurazione.
curl -O https://s3.us-west-2.amazonaws.com/amazon-eks/cloudformation/2020-10-29/aws-auth-cm-windows.yaml
-
Nel
file, impostate iaws-auth-cm-windows.yaml
rolearn
valori NodeInstanceRolesui valori applicabili registrati nelle procedure precedenti. Per eseguire questa operazione, utilizza un editor di testo o sostituisci i
tramite il comando seguente:example values
sed -i.bak -e 's|<ARN of linux instance role (not instance profile)>|
my-node-linux-instance-role
|' \ -e 's|<ARN of windows instance role (not instance profile)>|my-node-windows-instance-role
|' aws-auth-cm-windows.yamlImportante
-
Non modificare altre righe in questo file.
-
Non utilizzate lo stesso IAM ruolo per entrambi Windows e Linux nodi.
-
-
Applica la configurazione. L'esecuzione di questo comando potrebbe richiedere alcuni minuti.
kubectl apply -f aws-auth-cm-windows.yaml
-
-
Guarda lo stato dei nodi e attendi che raggiungano lo stato
Ready
.kubectl get nodes --watch
Inserisci
Ctrl
+C
per tornare a un prompt dello shell (interprete di comandi).Nota
Se ricevi qualsiasi altro errore di tipo di risorsa o autorizzazione, consulta la sezione Accesso negato o non autorizzato (kubectl) nell'argomento relativo alla risoluzione dei problemi.
Se i nodi non riescono a unirsi al cluster, Impossibile aggiungere i nodi al cluster consulta il capitolo Risoluzione dei problemi.
Fase 3: operazioni aggiuntive
-
(Facoltativo) Implementa un'applicazione di esempio per testare il cluster e Windows nodi.
-
(Facoltativo) Se la CNIpolicy gestita di Amazon EKS _ IAM _Policy (se hai un
IPv4
cluster) o la
(che hai creato tu stesso se hai unAmazonEKS_CNI_IPv6_Policy
IPv6
cluster) è allegata al tuoRuolo IAM del nodo Amazon EKS, ti consigliamo di assegnarla a un IAM ruolo da associare al Kubernetesaws-node
account di servizio invece. Per ulteriori informazioni, consulta Configura il VPC CNI plug-in Amazon da utilizzare IRSA. Ti consigliamo di bloccare Pod accesso a IMDS se sono vere le seguenti condizioni:
Hai intenzione di assegnare IAM ruoli a tutti i tuoi Kubernetes account di servizio in modo che Pods dispongono solo delle autorizzazioni minime di cui hanno bisogno.
No Pods nel cluster richiedono l'accesso al servizio di metadati dell'EC2istanza Amazon (IMDS) per altri motivi, come il recupero della corrente. Regione AWS
Per ulteriori informazioni, consulta Limita l'accesso al profilo dell'istanza assegnato al nodo (worker)
.
-