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à.
Personalizzazione di nodi gestiti con un modello di avvio
Per ottenere il massimo livello di personalizzazione, è possibile implementare i nodi gestiti utilizzando il proprio modello di avvio. L'utilizzo di un modello di avvio consente funzionalità come le seguenti:
-
Fornisci argomenti di bootstrap all'implementazione di un nodo, come ad esempio argomenti
kubelet
aggiuntivi. -
Assegna indirizzi IP ai Pods da un blocco CIDR diverso rispetto all'indirizzo IP assegnato al nodo.
-
Implementa la tua AMI personalizzata sui nodi.
-
Implementa il tuo CNI personalizzato sui nodi.
Quando fornisci il tuo modello di avvio alla prima creazione di un gruppo di nodi gestito, in seguito avrai anche una maggiore flessibilità. Dopo aver implementato un gruppo di nodi gestiti con un modello di avvio personalizzato, potrai aggiornarlo in maniera iterativa con una versione diversa dello stesso modello. Quando si aggiorna il gruppo di nodi a una versione diversa del modello di avvio, tutti i nodi del gruppo vengono riciclati in modo da corrispondere alla nuova configurazione della versione del modello di avvio specificata.
I gruppi di nodi gestiti vengono sempre implementati con un modello di avvio da utilizzare con il gruppo di dimensionamento automatico Amazon EC2. Quando non viene fornito un modello di avvio, l'API Amazon EKS ne crea automaticamente uno con i valori predefiniti nel tuo account. Tuttavia, consigliamo di non modificare i modelli di avvio generati automaticamente. Inoltre, i gruppi di nodi esistenti che non utilizzano un modello di avvio personalizzato non possono essere aggiornati direttamente. A tale scopo, sarà invece necessario creare un nuovo gruppo di nodi con un modello di avvio personalizzato.
Informazioni di base sulla configurazione del modello di avvio
Puoi creare un modello di lancio di Amazon EC2 Auto Scaling con AWS CLI, o un AWS Management Console SDK. AWS Per ulteriori informazioni, consulta Creazione di un modello di avvio per un gruppo con scalabilità automatica nella Guida per l'utente di Dimensionamento automatico Amazon EC2. Alcune impostazioni di un modello di avvio sono simili a quelle utilizzate per la configurazione dei nodi gestiti. Quando si implementa o si aggiorna un gruppo di nodi con un modello di avvio, è necessario specificare alcune impostazioni nella configurazione del gruppo di nodi o nel modello di avvio. Non specificare un'impostazione in entrambe le posizioni. Se un'impostazione è settata dove non dovrebbe, operazioni come la creazione o l'aggiornamento di un gruppo di nodi non riescono.
Nella tabella seguente sono elencate le impostazioni vietate in un modello di avvio. Elenca inoltre impostazioni simili, se disponibili, che sono necessarie per la configurazione del gruppo di nodi gestiti. Le impostazioni elencate sono quelle visualizzate nella console. Potrebbero avere nomi simili ma diversi nell'SDK and. AWS CLI
Modello di avvio – Vietato | Configurazione del gruppo di nodi Amazon EKS |
---|---|
Sottorete in Interfacce di rete (Aggiungi interfaccia di rete) | Sottoreti in Configurazione di rete del gruppo di nodi nella pagina Specifica reti |
Profilo dell'istanza IAM in Dettagli avanzati | Ruolo IAM del nodo in Configurazione del gruppo di nodi nella pagina Configura gruppo di nodi |
Comportamento di arresto e Interrompi - Iberna comportamento in Dettagli avanzati. Mantieni default Non include nell'impostazione del modello di avvio nel modello di avvio per entrambe le impostazioni. | Nessun equivalente. Amazon EKS deve controllare il ciclo di vita dell'istanza, non il gruppo Auto Scaling. |
Nella tabella seguente sono elencate le impostazioni vietate nella configurazione di un gruppo di nodi gestiti. Elenca inoltre impostazioni simili, se disponibili, richieste in un modello di avvio. Le impostazioni elencate sono quelle visualizzate nella console. Potrebbero avere nomi simili in AWS CLI and SDK.
Configurazione del gruppo di nodi Amazon EKS – Vietata | Modello di avvio |
---|---|
(Solo se è stata specificata un'AMI personalizzata in un modello di avvio) Tipo di AMI in Configurazione di calcolo del gruppo di nodi sulla pagina Imposta configurazione di calcolo e dimensionamento: la console mostra il messaggio Specificato nel modello di lancio e l'ID AMI specificato. Se nel modello di avvio non è stato specificato Application and OS Images (Amazon Machine Image) (Applicazione e immagini OS [Amazon Machine Image]), è possibile selezionare un'AMI nella configurazione del gruppo di nodi. |
Application and OS Images (Amazon Machine Image) (Applicazione e immagini OS [Amazon Machine Image]) in Launch template contents (Contenuti del modello di avvio): è necessario specificare un ID se soddisfi uno dei seguenti requisiti:
|
Dimensioni del disco in Configurazione di calcolo del gruppo di nodi nella pagina Imposta configurazione di calcolo e dimensionamento: la console mostra il messaggio Specificato nel modello di lancio. | Dimensioni in Archiviazione (volumi) (Aggiungi nuovo volume). È necessario specificarlo nel modello di avvio. |
Coppia di chiavi SSH in Configurazione del gruppo di nodi nella pagina Specifica reti: la console mostra la chiave specificata nel modello di avvio o mostra il messaggio Non specificato nel modello di lancio. | Nome della coppia di chiavi in Coppia di chiavi (login). |
Non è possibile specificare gruppi di sicurezza di origine a cui è consentito l'accesso remoto quando si utilizza un modello di avvio. | Gruppi di sicurezza in Impostazioni di rete per l'istanza o Gruppi di sicurezza in Interfacce di rete (Aggiungi interfaccia di rete), ma non entrambi. Per ulteriori informazioni, consulta Utilizzo di gruppi di sicurezza personalizzati. |
Nota
-
Se si esegue l'implementazione di un gruppo di nodi utilizzando un modello di avvio, specificare uno o nessun Tipo di istanza in Contenuti del modello di avvio in un modello di avvio. In alternativa, è possibile specificare 0-20 tipi di istanza per Tipi di istanza nella pagina Impostare la configurazione di calcolo e dimensionamento della console. In alternativa, è possibile farlo utilizzando altri strumenti che utilizzano l'API Amazon EKS. Se si specifica un tipo di istanza in un modello di avvio e si utilizza tale modello di avvio per implementare il gruppo di nodi, non è possibile specificare alcun tipo di istanza nella console o utilizzare altri strumenti che sfruttino l'API Amazon EKS. Se non si specifica un tipo di istanza in un modello di avvio nella console o in altri strumenti che utilizzano l'API Amazon EKS, il tipo di istanza
t3.medium
verrà utilizzato. Se il gruppo di nodi utilizza il tipo di capacità Spot, è consigliabile specificare più tipi di istanza utilizzando la console. Per ulteriori informazioni, consulta Tipi di capacità del gruppo di nodi gestiti. -
Se i container che si implementano nel gruppo di nodi utilizzano Instance Metadata Service versione 2, assicurarsi di impostare il Limite hop di risposta metadati a
2
nel modello di avvio. Per ulteriori informazioni, consultare Metadati dell'istanza e dati utente nella Guida per l'utente di Amazon EC2 per le istanze Linux. Se si esegue l'implementazione di un gruppo di nodi gestiti senza utilizzare un modello di avvio personalizzato, questo valore viene impostato automaticamente per il gruppo di nodi nel modello di avvio predefinito.
Assegnazione di tag a istanze Amazon EC2
É possibile utilizzare il parametro TagSpecification
di un modello di avvio per specificare quali tag applicare alle istanze Amazon EC2 nel gruppo di nodi. L'entità IAM che chiama le API CreateNodegroup
o UpdateNodegroupVersion
devono disporre delle autorizzazioni per ec2:RunInstances
e ec2:CreateTags
, e i tag devono essere aggiunti al modello di avvio.
Utilizzo di gruppi di sicurezza personalizzati
É possibile utilizzare un modello di avvio per specificare i gruppi di sicurezza Amazon EC2 da applicare alle istanze del gruppo di nodi. Questo può essere nel parametro gruppi di sicurezza a livello di istanza o come parte dei parametri di configurazione dell'interfaccia di rete. Non è possibile avviare un'istanza da un modello di avvio che specifica sia il livello di istanza sia l'interfaccia di rete dei gruppi di sicurezza. Considerare le seguenti condizioni che si applicano all'utilizzo di gruppi di sicurezza personalizzati con gruppi di nodi gestiti:
-
Amazon EKS consente solo modelli di avvio con una singola specifica di interfaccia di rete.
-
Per impostazione predefinita, Amazon EKS applica il Gruppo di sicurezza del cluster alle istanze nel gruppo di nodi, per facilitare la comunicazione tra i nodi e il piano di controllo. Se si specificano gruppi di sicurezza personalizzati nel modello di avvio utilizzando entrambe le opzioni menzionate in precedenza, Amazon EKS non aggiunge il gruppo di sicurezza del cluster. Pertanto, è necessario assicurarsi che le regole in entrata e in uscita dei gruppi di sicurezza abilitino la comunicazione con l'endpoint del cluster. Se le regole del gruppo di sicurezza non sono corrette, i nodi (worker) non possono aggiungersi al cluster. Per ulteriori informazioni sulle regole del gruppo di sicurezza, consultare Considerazioni e requisiti relativi al gruppo di sicurezza Amazon EKS.
-
Se è necessario l'accesso SSH alle istanze nel gruppo di nodi, includere un gruppo di sicurezza che consenta tale accesso.
Dati utente Amazon EC2
Il modello di avvio include una sezione per i dati utente personalizzati. È possibile specificare le impostazioni di configurazione per il gruppo di nodi in questa sezione senza creare manualmente singole AMI personalizzate. Per ulteriori informazioni sulle impostazioni disponibili per Bottlerocket, consulta Utilizzo dei dati utente
É possibile fornire i dati utente Amazon EC2 nel tuo modello di avvio utilizzando cloud-init
durante l'avvio delle istanze. Per ulteriori informazioni, consultare la documentazione cloud-init
I dati utente di Amazon EC2 nei modelli di avvio utilizzati con i gruppi di nodi gestiti devono essere nel formato Archivio MIME in più partikubelet
. Questa operazione viene eseguita come parte dei dati utente uniti da Amazon EKS. Certi parametri kubelet
, come l'impostazione delle etichette sui nodi, possono essere configurati direttamente tramite l'API dei gruppi di nodi gestiti.
Nota
Per ulteriori informazioni sulle personalizzazioni kubelet
avanzate, tra cui l'avvio manuale o il passaggio a parametri di configurazione personalizzati, vedere Specifica di un'AMI. Amazon EKS non unisce i dati utente se un ID AMI viene specificato in un modello di avvio.
I seguenti dettagli forniscono ulteriori informazioni sulla sezione dei dati utente.
Specifica di un'AMI
Se si dispone di uno dei seguenti requisiti, specificare un ID AMI nel campo ImageId
del modello di avvio. Selezionare il requisito di cui si dispone per ulteriori informazioni.
Il termine "bootstrapping" indica l'aggiunta di comandi che possono essere eseguiti all'avvio di un'istanza. Ad esempio, il bootstrap consente di utilizzare argomenti kubelet
bootstrap.sh
utilizzando eksctl
senza specificare un modello di avvio. Oppure è possibile farlo specificando le informazioni nella sezione dati utente di un modello di avvio.
Il termine "bootstrapping" indica l'aggiunta di comandi che possono essere eseguiti all'avvio di un'istanza. È possibile passare gli argomenti allo script Start-EKSBootstrap.ps1
utilizzando eksctl
senza specificare un modello di avvio. Oppure è possibile farlo specificando le informazioni nella sezione dati utente di un modello di avvio.
Per specificare un ID AMI Windows personalizzato, fai le seguenti considerazioni:
-
Devi utilizzare un modello di avvio e fornire i comandi bootstrap richiesti nella sezione dei dati utente. Per recuperare l'ID Windows desiderato, puoi utilizzare la tabella in AMI Windows ottimizzate per Amazon EKS.
-
Esistono vari limiti e condizioni. Ad esempio, devi aggiungere
eks:kube-proxy-windows
alla tua mappa di configurazione AWS IAM Authenticator. Per ulteriori informazioni, consulta Limiti e condizioni quando si specifica un ID AMI.
Specifica le seguenti informazioni nella sezione dati utente del modello di avvio. Sostituisci ogni
con i valori in tuo possesso. Gli argomenti example value
-APIServerEndpoint
, -Base64ClusterCA
e -DNSClusterIP
sono facoltativi, ma grazie alla loro definizione lo script Start-EKSBootstrap.ps1
può evitare di effettuare una chiamata a describeCluster
.
-
L'unico argomento richiesto è il nome del cluster (
).my-cluster
-
Per recuperare il valore
per il cluster, esegui il comando seguente.certificate-authority
aws eks describe-cluster --query "cluster.certificateAuthority.data" --output text --name
my-cluster
--regionregion-code
-
Per recuperare il valore
per il cluster, esegui il comando seguente.api-server-endpoint
aws eks describe-cluster --query "cluster.endpoint" --output text --name
my-cluster
--regionregion-code
-
Il valore per
--dns-cluster-ip
è il tuo servizio CIDR con.10
alla fine. Per recuperare il valore
per il cluster, esegui il comando seguente. Ad esempio, se il valore restituito èservice-cidr
ipv4 10.100.0.0/16
, il tuo valore è
.10.100.0.10
aws eks describe-cluster --query "cluster.kubernetesNetworkConfig.serviceIpv4Cidr" --output text --name
my-cluster
--regionregion-code
-
Per ulteriori argomenti, consulta.Parametri di configurazione dello script di bootstrap.
Nota
Se utilizzi il servizio personalizzato CIDR, devi specificarlo utilizzando il parametro
-ServiceCIDR
. In caso contrario, la risoluzione DNS per i Pods nel cluster fallirà.
<powershell> [string]$EKSBootstrapScriptFile = "$env:ProgramFiles\Amazon\EKS\Start-EKSBootstrap.ps1" & $EKSBootstrapScriptFile -EKSClusterName
my-cluster
` -Base64ClusterCAcertificate-authority
` -APIServerEndpointapi-server-endpoint
` -DNSClusterIPservice-cidr.10
</powershell>
Per ulteriori informazioni, consultare Amazon Machine Images (AMI) nella Guida per l'utente di Amazon EC2 per le istanze Linux. La specifica di build dell'AMI Amazon EKS contiene risorse e script di configurazione per creare un'AMI Amazon EKS personalizzata basata su Amazon Linux. Per ulteriori informazioni, consulta Specifica della build AMI di Amazon EKS
Importante
Quando si specifica una AMI, Amazon EKS non unisce alcun dato utente. É l'utente, piuttosto, ad essere responsabile della fornitura dei comandi bootstrap
richiesti per unire i nodi al cluster. Se i nodi non riescono a unirsi al cluster, le operazioni CreateNodegroup
e UpdateNodegroupVersion
di Amazon EKS non vengono eseguite con successo.
Limiti e condizioni quando si specifica un ID AMI
Di seguito sono riportati i limiti e le condizioni per la specifica di un ID AMI con gruppi di nodi gestiti:
-
È necessario creare un nuovo gruppo di nodi per passare dalla specifica o meno di un ID AMI in un modello di avvio.
-
Non si riceve una notifica nella console quando è disponibile una versione AMI più recente. Per aggiornare il gruppo di nodi a una versione AMI più recente, devi creare una nuova versione del modello di avvio con un ID AMI aggiornato. Quindi, è necessario aggiornare il gruppo di nodi con la nuova versione del modello di avvio.
-
I seguenti campi non possono essere impostati nell'API se si specifica un ID AMI:
-
amiType
-
releaseVersion
-
version
-
-
Se si specifica un ID AMI, qualsiasi set di
taints
nell'API viene applicato in modo asincrono. Per applicare i taint prima che un nodo si unisca al cluster, è necessario passare i taint akubelet
utilizzando il flag della riga di comando--register-with-taints
. Per ulteriori informazioni, consultakubelet
nella documentazione Kubernetes. -
Quando specifichi un ID AMI personalizzato per i gruppi di nodi Windows gestiti, aggiungilo
eks:kube-proxy-windows
alla mappa di configurazione di AWS IAM Authenticator. Questa API è necessaria per il funzionamento di DNS.-
Apri la mappa di configurazione di AWS IAM Authenticator per modificarla.
kubectl edit -n kube-system cm aws-auth
-
Aggiungi questa voce all'elenco
groups
sotto ognirolearn
associato ai nodi Windows. La tua mappa di configurazione dovrebbe avere un aspetto simile aaws-auth-cm-windows.yaml
. - eks:kube-proxy-windows
-
Salva il file ed esci dall'editor di testo.
-