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à.
Implementazione dei nodi Windows su cluster EKS
Informazioni su come abilitare e gestire il supporto Windows per i cluster Amazon EKS per l’esecuzione di container Windows insieme a container Linux.
Considerazioni
Prima di implementare i nodi di Windows, tenere conto delle seguenti considerazioni.
-
La modalità automatica EKS non supporta i nodi Windows
-
Puoi utilizzare la rete host sui nodi Windows utilizzando i Pod
HostProcess. Per ulteriori informazioni, consulta Creare un Windows HostProcessPod nella documentazionedi Kubernetes. -
I cluster Amazon EKS devono contenere uno o più nodi Linux o Fargate per eseguire i pod del sistema core che funzionano solo su Linux, come CoreDNS.
-
I log degli eventi
kubeletekube-proxysono reindirizzati al log degli eventiEKS Windowse sono impostati su un limite di 200 MB. -
Non è possibile utilizzare Assegna gruppi di sicurezza a singoli pod con i pod in esecuzione su nodi Windows.
-
Non è possibile utilizzare reti personalizzate con nodi Windows.
-
Non è possibile utilizzare
IPv6con nodi Windows. -
I nodi di Windows supportano un'interfaccia di rete elastica per nodo. Per impostazione predefinita, il numero di pod che è possibile eseguire per ogni nodo Windows è uguale al numero di indirizzi IP (meno uno) disponibili per interfaccia di rete elastica relativa al tipo di istanza del nodo. Per ulteriori informazioni, consulta Indirizzi IP per interfaccia di rete per tipo di istanza nella Amazon EC2 User Guide.
-
In un cluster Amazon EKS, un singolo servizio con un bilanciatore del carico può supportare fino a 1024 pod back-end. Ogni pod ha il proprio indirizzo IP univoco. Il limite precedente di 64 pod non è più valido, dopo un aggiornamento di Windows Server
a partire da Build del sistema operativo 17763.2746 . -
I container Windows non sono supportati per i pod Amazon EKS su Fargate.
-
Non è possibile utilizzare Amazon EKS Hybrid Nodes con Windows come sistema operativo per l’host.
-
Non è possibile recuperare i log dal pod
vpc-resource-controller. In precedenza era possibile quando si implementava il controller sul piano dati. -
Esiste un periodo di raffreddamento prima che un indirizzo
IPv4venga assegnato a un nuovo pod. In questo modo, si impedisce che il traffico vada verso un pod precedente con lo stesso indirizzoIPv4a causa della mancata validità delle regolekube-proxy. -
L'origine del controller è gestita su GitHub. Per contribuire o segnalare problemi al controller, visita il progetto
su GitHub. -
Quando specifichi un ID AMI personalizzato per i gruppi di nodi gestiti da Windows, aggiungilo
eks:kube-proxy-windowsalla mappa di configurazione di AWS IAM Authenticator. Per ulteriori informazioni, consulta Limiti e condizioni quando si specifica un ID AMI. -
Se la conservazione IPv4 degli indirizzi disponibili è fondamentale per la sottorete, consultate la EKS Best Practices Guide - Windows Networking IP Address Management per una guida
. -
Considerazioni relative a voci di accesso EKS
-
Le voci di accesso da utilizzare con i nodi Windows richiedono il tipo di
EC2_WINDOWS. Per ulteriori informazioni, consulta Creare voci di accesso.Per creare una voce di accesso per un nodo Windows:
aws eks create-access-entry --cluster-name my-cluster --principal-arn arn:aws: iam::111122223333:role/<role-name> --type EC2_Windows
-
Prerequisiti
-
Un cluster esistente.
-
Il tuo cluster deve avere almeno un nodo Linux (ne consigliamo almeno due) o un pod Fargate per eseguire CoreDNS. Se si abilita il supporto Windows legacy, è necessario utilizzare un nodo Linux (non è possibile utilizzare un pod Fargate) per eseguire CoreDNS.
-
Un ruolo IAM del cluster Amazon EKS esistente.
Abilitazione del supporto Windows
-
Se non disponi di nodi Amazon Linux nel cluster e utilizzi gruppi di sicurezza per i pod, vai al passaggio successivo. Altrimenti, conferma che la policy gestita di
AmazonEKSVPCResourceControllerè collegata al tuo ruolo del cluster. SostituiscieksClusterRolecon il nome del ruolo del cluster.aws iam list-attached-role-policies --role-name eksClusterRoleDi seguito viene riportato un output di esempio:
{ "AttachedPolicies": [ { "PolicyName": "AmazonEKSClusterPolicy", "PolicyArn": "arn:aws: iam::aws:policy/AmazonEKSClusterPolicy" }, { "PolicyName": "AmazonEKSVPCResourceController", "PolicyArn": "arn:aws: iam::aws:policy/AmazonEKSVPCResourceController" } ] }Se la policy è collegata, come nell'output precedente, salta il passaggio successivo.
-
Collega la policy gestita di Amazon EKSVPCResource Controller al tuo ruolo IAM del cluster Amazon EKS. Sostituisci
eksClusterRolecon il nome del ruolo del cluster.aws iam attach-role-policy \ --role-name eksClusterRole \ --policy-arn arn:aws: iam::aws:policy/AmazonEKSVPCResourceController -
Aggiorna il VPC CNI ConfigMap per abilitare Windows IPAM. Nota, se il VPC CNI è installato sul tuo cluster utilizzando un grafico Helm o come componente aggiuntivo Amazon EKS, potresti non essere in grado di modificare direttamente il. ConfigMap Per informazioni sulla configurazione dei componenti aggiuntivi Amazon EKS, consulta Determina i campi che puoi personalizzare per i componenti aggiuntivi Amazon EKS.
-
Crea un file denominato
vpc-resource-controller-configmap.yamlcon i seguenti contenuti.apiVersion: v1 kind: ConfigMap metadata: name: amazon-vpc-cni namespace: kube-system data: enable-windows-ipam: "true" -
Applica la
ConfigMapal cluster.kubectl apply -f vpc-resource-controller-configmap.yaml
-
-
Se il cluster ha la modalità di autenticazione impostata per abilitare configmap
aws-auth:-
Verifica che
aws-authConfigMapcontenga una mappatura per il ruolo di istanza del nodo Windows per includere il gruppo di autorizzazionieks:kube-proxy-windowsRBAC. Puoi eseguire la verifica eseguendo il comando seguente.kubectl get configmap aws-auth -n kube-system -o yamlDi seguito viene riportato un output di esempio.
apiVersion: v1 kind: ConfigMap metadata: name: aws-auth namespace: kube-system data: mapRoles: | - groups: - system:bootstrappers - system:nodes - eks:kube-proxy-windows # This group is required for Windows DNS resolution to work rolearn: arn:aws: iam::111122223333:role/eksNodeRole username: system:node:{{EC2PrivateDNSName}} [...]Dovresti vedere
eks:kube-proxy-windowselencato nei gruppi. Se il gruppo non è specificato, devi aggiornareConfigMapo crearla per includere il gruppo richiesto. Per ulteriori informazioni suaws-authConfigMap, consulta Applica la aws-authConfigMap al cluster.
-
-
Se il cluster ha la modalità di autenticazione impostata per disabilitare configmap
aws-auth, è possibile utilizzare le voci di accesso EKS. La creazione di un nuovo ruolo del nodo da utilizzare con le istanze Windows ed EKS creerà automaticamente una voce di accesso di tipoEC2_WINDOWS.
Implementazione di pods Windows
Quando si implementano i pod nel cluster, è necessario specificare il sistema operativo utilizzato se si esegue una combinazione di tipi di nodi.
Per i pod Linux, utilizzare il seguente testo del selettore dei nodi nei manifesti.
nodeSelector: kubernetes.io/os: linux kubernetes.io/arch: amd64
Per i pod Windows, utilizzare il seguente testo del selettore dei nodi nei manifesti.
nodeSelector: kubernetes.io/os: windows kubernetes.io/arch: amd64
È possibile implementare un'applicazione di esempio per vedere i selettori dei nodi in uso.
Supporto di maggiore densità di pod sui nodi di Windows
Su Amazon EKS a ciascun pod è assegnato un indirizzo IPv4 dal tuo VPC. Per questo motivo, il numero di pod che è possibile distribuire su un nodo è vincolato agli indirizzi IP disponibili, anche se ci sono risorse sufficienti per eseguire più pod sul nodo. Poiché un nodo di Windows supporta una sola interfaccia di rete elastica, per impostazione predefinita, il numero massimo di indirizzi IP disponibili su un nodo di Windows è pari a:
Number of private IPv4 addresses for each interface on the node - 1
Un indirizzo IP è utilizzato come indirizzo IP principale dell’interfaccia di rete, quindi non può essere assegnato ai pod.
È possibile abilitare una maggiore densità di pod sui nodi Windows abilitando la delega del prefisso IP. Questa funzionalità consente di assegnare un prefisso/28 IPv4 all'interfaccia di rete principale, anziché assegnare indirizzi IPv4 secondari. L'assegnazione di un prefisso IP aumenta il numero massimo di indirizzi IPv4 disponibili sul nodo:
(Number of private IPv4 addresses assigned to the interface attached to the node - 1) * 16
Con questo numero di indirizzi IP disponibili di gran lunga maggiore, gli indirizzi IP disponibili non dovrebbero limitare la capacità di scalare il numero di pod sui tuoi nodi. Per ulteriori informazioni, consulta Assegnazione di più indirizzi IP ai nodi Amazon EKS con prefissi.