Contribuisci a migliorare questa pagina
Per contribuire a questa guida per l’utente, seleziona il link Edit this page on GitHub che si trova nel riquadro destro di ogni pagina.
Configurare componenti aggiuntivi per nodi ibridi
Questa pagina descrive le considerazioni sull’esecuzione di componenti aggiuntivi AWS e componenti aggiuntivi della community su Amazon EKS Hybrid Nodes. Per ulteriori informazioni sui componenti aggiuntivi di Amazon EKS e sui processi per la creazione, l’aggiornamento e la rimozione di componenti aggiuntivi dal cluster, consulta Componenti aggiuntivi Amazon EKS. Salvo diversa indicazione in questa pagina, i processi per la creazione, l’aggiornamento e la rimozione dei componenti aggiuntivi Amazon EKS sono gli stessi per i cluster Amazon EKS con nodi ibridi e per i cluster Amazon EKS con nodi in esecuzione nel cloud AWS. Solo i componenti aggiuntivi inclusi in questa pagina sono stati convalidati per la compatibilità con Amazon EKS Hybrid Nodes.
I seguenti componenti aggiuntivi AWS sono compatibili con Amazon EKS Hybrid Nodes.
| Componente aggiuntivo AWS | Versioni dei componenti aggiuntivi compatibili |
|---|---|
|
kube-proxy |
v1.25.14-eksbuild.2 e versioni successive |
|
CoreDNS |
v1.9.3-eksbuild.7 e versioni successive |
|
AWS Distro for OpenTelemetry (ADOT) |
v0.102.1-eksbuild.2 e versioni successive |
|
Agente Osservabilità di CloudWatch |
v2.2.1-eksbuild.1 e versioni successive |
|
Agente EKS Pod Identity |
|
|
Agente di monitoraggio del nodo |
v1.2.0-eksbuild.1 e versioni successive |
|
Controller snapshot CSI |
v8.1.0-eksbuild.1 e versioni successive |
|
AWS Private CA Connector per Kubernetes |
v1.6.0-eksbuild.1 e versioni successive |
I seguenti componenti aggiuntivi della community sono compatibili con Amazon EKS Hybrid Nodes. Per ulteriori informazioni sui componenti aggiuntivi della community, consultaComponenti aggiuntivi della community.
| Componente aggiuntivo | Versioni dei componenti aggiuntivi compatibili |
|---|---|
|
Kubernetes Metrics Server |
v0.7.2-eksbuild.1 e versioni successive |
|
cert-manager |
v1.17.2-eksbuild.1 e versioni successive |
|
Prometheus Node Exporter |
v1.9.1-eksbuild.2 e versioni successive |
|
kube-state-metrics |
v2.15.0-eksbuild.4 e versioni successive |
|
DNS esterno |
v0.19.0-eksbuild.1 e versioni successive |
Oltre ai componenti aggiuntivi Amazon EKS indicati nelle tabelle precedenti, il Collettore Amazon Managed Service for Prometheus e il AWSLoad Balancer Controller per l’ingresso delle applicazioni (HTTP) e il bilanciamento del carico (TCP/UDP) sono compatibili con i nodi ibridi.
Sono presenti componenti aggiuntivi AWS e componenti aggiuntivi della community che non sono compatibili con Amazon EKS Hybrid Nodes. Le versioni più recenti di questi componenti aggiuntivi prevedono una regola di antiaffinità per l’etichetta predefinita eks.amazonaws.com/compute-type: hybrid applicata ai nodi ibridi. Ciò impedisce loro di funzionare su nodi ibridi quando vengono distribuiti nei cluster. Se disponi di cluster con nodi ibridi e nodi in esecuzione nel Cloud AWS, puoi distribuire questi componenti aggiuntivi nel cluster sui nodi in esecuzione nel Cloud AWS. Amazon VPC CNI non è compatibile con i nodi ibridi, e Cilium e Calico sono supportati come Container Networking Interfaces (CNI) per Amazon EKS Hybrid Nodes. Per ulteriori informazioni, consulta Configurazione della CNI per nodi ibridi.
Componenti aggiuntivi AWS
Le sezioni seguenti descrivono le differenze tra l’esecuzione di componenti aggiuntivi AWS compatibili su nodi ibridi rispetto ad altri tipi di elaborazione Amazon EKS.
kube-proxy e CoreDNS
EKS installa kube-proxy e CoreDNS come componenti aggiuntivi autogestiti per impostazione predefinita quando crei un cluster EKS con API AWS e SDK AWS, anche dalla AWS CLI. É possibile sovrascrivere questi componenti aggiuntivi con i componenti aggiuntivi Amazon EKS dopo la creazione del cluster. Fai riferimento alla documentazione EKS per i dettagli su Gestisci kube-proxy nei cluster Amazon EKS e Gestione di CoreDNS per DNS nei cluster Amazon EKS. Se stai eseguendo un cluster in modalità mista con nodi ibridi e nodi nel cloud AWS, AWS consiglia di avere almeno una replica CoreDNS sui nodi ibridi e almeno una replica CoreDNS sui nodi nel cloud AWS. Per i passaggi di configurazione, consulta la sezione Configurazione delle repliche CoreDNS.
Agente Osservabilità di CloudWatch
L’operatore dell’Agente Osservabilità CloudWatch utilizza i webhook
Le metriche a livello di nodo non sono disponibili per i nodi ibridi perché CloudWatch Container Insights dipende dalla disponibilità del servizio di metadati di istanza (IMDS) per le metriche a livello di nodo. Per i nodi ibridi sono disponibili metriche a livello di cluster, carico di lavoro, pod e container.
Dopo aver installato il componente aggiuntivo seguendo i passaggi descritti in Install the CloudWatch agent with the Amazon CloudWatch Observability, il manifesto del componente aggiuntivo deve essere aggiornato prima che l’agente possa essere eseguito correttamente sui nodi ibridi. Modifica la risorsa amazoncloudwatchagents sul cluster per aggiungere la variabile di ambiente RUN_WITH_IRSA come mostrato di seguito.
kubectl edit amazoncloudwatchagents -n amazon-cloudwatch cloudwatch-agent
apiVersion: v1 items: - apiVersion: cloudwatch.aws.amazon.com/v1alpha1 kind: AmazonCloudWatchAgent metadata: ... name: cloudwatch-agent namespace: amazon-cloudwatch ... spec: ... env: - name: RUN_WITH_IRSA # <-- Add this value: "True" # <-- Add this - name: K8S_NODE_NAME valueFrom: fieldRef: fieldPath: spec.nodeName ...
Raccoglitore gestito di Amazon Managed Prometheus per nodi ibridi
Un servizio gestito da Amazon per Prometheus (AMP) è costituito da uno scraper che rileva e raccoglie i parametri da un cluster Amazon EKS. AMP gestisce lo scraper per te, eliminando la necessità di gestire personalmente istanze, agenti o scraper.
Puoi utilizzare i raccoglitori gestiti AMP senza alcuna configurazione aggiuntiva specifica per i nodi ibridi. Tuttavia, gli endpoint metrici per le applicazioni sui nodi ibridi devono essere raggiungibili dal VPC, compresi i percorsi dal VPC ai CIDR della rete pod remoti e le porte aperte nel firewall on-premises. Inoltre, il cluster deve disporre di un accesso privato agli endpoint del cluster.
Segui i passaggi in Using an AWS managed collector nella Guida per l’utente del servizio gestito da Amazon per Prometheus.
AWS Distro for OpenTelemetry (ADOT)
Puoi utilizzare il componente aggiuntivo AWS Distro for OpenTelemetry (ADOT) per raccogliere metriche, log e dati di tracciamento dalle tue applicazioni in esecuzione su nodi ibridi. ADOT utilizza i webhook
Segui i passaggi in Getting Started with AWS Distro for OpenTelemetry using EKS Add-Ons
Controller del bilanciatore del carico AWS
È possibile utilizzare l’AWS Controller del bilanciatore del carico e l’Application Load Balancer (ALB) o il Network Load Balancer (NLB) con il tipo di destinazione ip per i carichi di lavoro sui nodi ibridi. Le destinazioni IP utilizzate con ALB o NLB devono essere instradabili da AWS. Il controller Bilanciatore del carico AWS utilizza anche i webhook
Per installare il Controller del bilanciatore del carico AWS, segui i passaggi indicati in AWS Application Load Balancer o Network Load Balancer di AWS.
Per l’accesso con ALB, è necessario specificare le annotazioni riportate di seguito. Per ulteriori informazioni, consulta Instradare il traffico di applicazioni e HTTP con Application Load Balancer.
alb.ingress.kubernetes.io/target-type: ip
Per il bilanciamento del carico con NLB, è necessario specificare le annotazioni riportate di seguito. Per ulteriori informazioni, consulta Esecuzione del routing del traffico TCP e UDP con Network Load Balancer.
service.beta.kubernetes.io/aws-load-balancer-type: "external" service.beta.kubernetes.io/aws-load-balancer-nlb-target-type: "ip"
Agente EKS Pod Identity
Nota
Per implementare correttamente il componente aggiuntivo EKS Pod Identity Agent su nodi ibridi che eseguono Bottlerocket, assicurati che la versione di Bottlerocket sia almeno la v1.39.0. Il Pod Identity Agent non è supportato nelle versioni precedenti di Bottlerocket in ambienti con nodi ibridi.
L’originale Amazon EKS Pod Identity Agent DaemonSet si basa sulla disponibilità di EC2 IMDS sul nodo per ottenere le credenziali AWS richieste. Poiché IMDS non è disponibile sui nodi ibridi, a partire dalla versione 1.3.3-eksbuild.1, il componente aggiuntivo Pod Identity Agent distribuisce facoltativamente un DaemonSet che monta le credenziali richieste. I nodi ibridi che eseguono Bottlerocket richiedono un metodo diverso per montare le credenziali e, a partire dalla versione 1.3.7-eksbuild.2, il componente aggiuntivo Pod Identity Agent implementa facoltativamente un DaemonSet destinato specificamente ai nodi ibridi Bottlerocket. Le seguenti sezioni descrivono la procedura di abilitazione dei DaemonSets opzionali.
Ubuntu/RHEL/AL2023
-
Per utilizzare l’agente Pod Identity sui nodi ibridi Ubuntu/RHEL/AL2023, imposta
enableCredentialsFile: truenella sezione ibrida della configurazionenodeadmcome mostrato di seguito:apiVersion: node.eks.aws/v1alpha1 kind: NodeConfig spec: hybrid: enableCredentialsFile: true # <-- Add thisQuesto configurerà
nodeadmper creare un file di credenziali da configurare sul nodo sotto/eks-hybrid/.aws/credentials, che verrà utilizzato dai podeks-pod-identity-agent. Questo file di credenziali conterrà credenziali temporanee AWS che verranno aggiornate periodicamente. -
Dopo aver aggiornato la configurazione
nodeadmsu ogni nodo, esegui il seguente comandonodeadm initcon il tuonodeConfig.yamlper unire i nodi ibridi al cluster Amazon EKS. Se i tuoi nodi si sono uniti al cluster in precedenza, esegui comunque di nuovo il comandoinit.nodeadm init -c file://nodeConfig.yaml -
Installa
eks-pod-identity-agentcon il supporto per i nodi ibridi abilitato, utilizzando AWS CLI o Console di gestione AWS.-
AWS CLI: dalla macchina che stai utilizzando per amministrare il cluster, esegui il seguente comando per installare
eks-pod-identity-agentcon il supporto per i nodi ibridi abilitato. Sostituiscimy-clustercon il nome del cluster.aws eks create-addon \ --cluster-name my-cluster \ --addon-name eks-pod-identity-agent \ --configuration-values '{"daemonsets":{"hybrid":{"create": true}}}' -
Console di gestione AWS: se stai installando il componente aggiuntivo Pod Identity Agent tramite la console AWS, aggiungi quanto segue alla configurazione opzionale per distribuire il DaemonSet destinato ai nodi ibridi.
{"daemonsets":{"hybrid":{"create": true}}}
-
Bottlerocket
-
Per utilizzare l’agente Pod Identity sui nodi ibridi Bottlerocket, aggiungi il flag
--enable-credentials-file=trueal comando utilizzato per i dati utente del contenitore bootstrap Bottlerocket, come descritto in Connessione dei nodi ibridi con Bottlerocket.-
Se stai usando il provider di credenziali SSM, il tuo comando dovrebbe avere il seguente aspetto:
eks-hybrid-ssm-setup --activation-id=<activation-id> --activation-code=<activation-code> --region=<region> --enable-credentials-file=true -
Se stai usando il provider di credenziali IAM Roles Anywhere, il tuo comando dovrebbe avere il seguente aspetto:
eks-hybrid-iam-ra-setup --certificate=<certificate> --key=<private-key> --enable-credentials-file=trueQuesto configurerà lo script di bootstrap per creare un file di credenziali sul nodo sotto
/var/eks-hybrid/.aws/credentials, che verrà utilizzato dai podeks-pod-identity-agent. Questo file di credenziali conterrà credenziali temporanee AWS che verranno aggiornate periodicamente.
-
-
Installa
eks-pod-identity-agentcon il supporto per i nodi ibridi Bottlerocket abilitato, utilizzando AWS CLI o Console di gestione AWS.-
AWS CLI: dalla macchina che stai utilizzando per amministrare il cluster, esegui il seguente comando per installare
eks-pod-identity-agentcon il supporto per i nodi ibridi Bottlerocket abilitato. Sostituiscimy-clustercon il nome del cluster.aws eks create-addon \ --cluster-name my-cluster \ --addon-name eks-pod-identity-agent \ --configuration-values '{"daemonsets":{"hybrid-bottlerocket":{"create": true}}}' -
Console di gestione AWS: se stai installando il componente aggiuntivo Pod Identity Agent tramite la console AWS, aggiungi quanto segue alla configurazione opzionale per distribuire il DaemonSet destinato ai nodi ibridi Bottlerocket.
{"daemonsets":{"hybrid-bottlerocket":{"create": true}}}
-
Controller snapshot CSI
A partire dalla versione v8.1.0-eksbuild.2, il componente aggiuntivo del controller snapshot CSI applica una regola di antiaffinità morbida per i nodi ibridi, preferendo che il controller deployment venga eseguito su EC2 nella stessa regione del piano di controllo di Amazon AWS EKS. La collocazione congiunta di deployment nella stessa Regione AWS del piano di controllo di Amazon EKS migliora la latenza.
Componenti aggiuntivi della community
Le sezioni seguenti descrivono le differenze tra l’esecuzione di componenti aggiuntivi della community compatibili su nodi ibridi rispetto ad altri tipi di elaborazione Amazon EKS.
Kubernetes Metrics Server
Il piano di controllo deve raggiungere l’IP del pod di Metrics Server (o l’IP del nodo se hostNetwork è abilitato). Pertanto, a meno che non esegui Metrics Server in modalità hostNetwork, devi configurare una rete di pod remota durante la creazione del cluster Amazon EKS e devi rendere instradabili gli indirizzi IP del pod. L’implementazione del Border Gateway Protocol (BGP) con il CNI è un modo comune per rendere instradabili gli indirizzi IP dei pod.
cert-manager
cert-manager utilizza i webhookcert-manager su nodi ibridi, il tuo pod CIDR on-premises deve essere instradabile sulla rete on-premises e devi configurare il cluster EKS con la tua rete di pod remota. Per ulteriori informazioni, consulta Configure webhooks for hybrid nodes.