Configurare componenti aggiuntivi per nodi ibridi - Amazon EKS

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

Configurare componenti aggiuntivi per nodi ibridi

Questa pagina descrive le considerazioni sull'esecuzione di componenti aggiuntivi e AWS 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 AWS componenti aggiuntivi sono compatibili con Amazon EKS Hybrid Nodes.

AWS componente aggiuntivo Versioni aggiuntive compatibili

kube-proxy

v1.25.14-eksbuild.2 e versioni successive

CoreDNS

v1.9.3-eksbuild.7 e versioni successive

AWS Distro per (ADOT) OpenTelemetry

v0.102.1-eksbuild.2 e versioni successive

CloudWatch Agente di osservabilità

v2.2.1-eksbuild.1 e versioni successive

EKS Pod Identity Agent

  • v1.3.3-eksbuild.1 e versioni successive, ad eccezione di Bottlerocket

  • v1.3.7-eksbuild.2 e versioni successive per Bottlerocket

Agente di monitoraggio dei nodi

v1.2.0-eksbuild.1 e versioni successive

Controller di snapshot CSI

v8.1.0-eksbuild.1 e versioni successive

AWS Connettore CA privato 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, consulta. Componenti aggiuntivi della community

Componente aggiuntivo per la community Versioni aggiuntive 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

Oltre ai componenti aggiuntivi Amazon EKS indicati nelle tabelle precedenti, Amazon Managed Service for Prometheus Collector e AWS Load Balancer Controller per l'ingresso delle applicazioni (HTTP) e il bilanciamento del carico (TCP/UDP) sono compatibili con i nodi ibridi.

Esistono AWS componenti aggiuntivi 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'eks.amazonaws.com/compute-type: hybridetichetta predefinita 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 AWS cloud, 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 (CNIs) per i nodi ibridi Amazon EKS. Per ulteriori informazioni, consulta Configurare un CNI per nodi ibridi.

AWS componenti aggiuntivi

Le sezioni seguenti descrivono le differenze tra l'esecuzione di AWS componenti aggiuntivi 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 l'API e, anche dalla CLI. AWS AWS SDKs AWS Puoi sovrascrivere questi componenti aggiuntivi con i componenti aggiuntivi Amazon EKS dopo la creazione del cluster. Fai riferimento alla documentazione EKS per i dettagli su e. Gestione kube-proxy nei cluster Amazon EKS Gestisci CoredNS per DNS nei cluster Amazon EKS Se stai eseguendo un cluster in modalità mista con nodi ibridi e nodi in AWS Cloud, ti consigliamo di avere almeno una replica CoreDNS sui nodi ibridi e almeno una replica CoreDNS sui tuoi nodi nel Cloud. AWS Configurazione delle repliche CoredNSPer i passaggi di configurazione, consulta la sezione.

CloudWatch Agente di osservabilità

L'operatore dell'agente CloudWatch Observability utilizza i webhook. Se esegui l'operatore su nodi ibridi, il tuo pod CIDR locale deve essere instradabile sulla rete locale e devi configurare il cluster EKS con la tua rete di pod remota. Per ulteriori informazioni, consulta Configurare i webhook per i nodi ibridi.

Le metriche a livello di nodo non sono disponibili per i nodi ibridi perché CloudWatch Container Insights dipende dalla disponibilità di Instance Metadata Service (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 Installa l' CloudWatch agente con Amazon CloudWatch Observability, il manifesto del componente aggiuntivo deve essere aggiornato prima che l'agente possa essere eseguito correttamente sui nodi ibridi. Modifica la amazoncloudwatchagents risorsa sul cluster per aggiungere la variabile di RUN_WITH_IRSA ambiente 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 ...

Amazon Managed Prometheus Managed Collector per nodi ibridi

Un collettore gestito Amazon Managed Service for Prometheus (AMP) è costituito da uno scraper che rileva e raccoglie i parametri dalle risorse di un cluster Amazon EKS. AMP gestisce lo scraper per te, eliminando la necessità di gestire autonomamente 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 alla rete pod remota CIDRs e le porte aperte nel firewall locale. Inoltre, il cluster deve disporre di un accesso privato agli endpoint del cluster.

Segui i passaggi descritti in Utilizzo di un raccoglitore AWS gestito nella Guida per l'utente di Amazon Managed Service for Prometheus.

AWS Distro per (ADOT) OpenTelemetry

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 di ammissione per modificare e convalidare le richieste Collector Custom Resource. Se esegui l'operatore ADOT su nodi ibridi, il tuo pod CIDR locale deve essere instradabile sulla rete locale e devi configurare il cluster EKS con la tua rete di pod remoti. Per ulteriori informazioni, consulta Configurare i webhook per i nodi ibridi.

Segui la procedura descritta in Guida introduttiva a AWS Distro per OpenTelemetry utilizzare i componenti aggiuntivi EKS nella Distro per la AWS documentazione. OpenTelemetry

AWS Controller Load Balancer

Puoi utilizzare AWS Load Balancer Controller e Application Load Balancer (ALB) o Network Load Balancer (NLB) con il tipo di destinazione ip per carichi di lavoro su nodi ibridi connessi con Direct Connect o VPN. AWS AWS Site-to-Site Le destinazioni IP utilizzate con ALB o NLB devono essere instradabili da. AWSIl controller AWS Load Balancer utilizza anche i webhook. Se esegui l'operatore AWS Load Balancer Controller su nodi ibridi, il tuo pod CIDR locale deve essere instradabile sulla tua rete locale e devi configurare il tuo cluster EKS con la tua rete di pod remoti. Per ulteriori informazioni, consulta Configurare i webhook per i nodi ibridi.

Per installare il AWS Load Balancer Controller, segui i passaggi indicati in Installa il AWS Load Balancer Controller con Helm o. Installa AWS Load Balancer Controller con manifesti

Per l'accesso con ALB, è necessario specificare le annotazioni seguenti. Per istruzioni, consulta Indirizza 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 seguenti. Per istruzioni, consulta Indirizza il 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"

EKS Pod Identity Agent

Nota

Per implementare correttamente il componente aggiuntivo EKS Pod Identity Agent su nodi ibridi che eseguono Bottlerocket, assicurati che la tua 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 richieste AWS . Poiché IMDS non è disponibile sui nodi ibridi, a partire dalla versione 1.3.3-eksbuild.1, il componente aggiuntivo Pod Identity Agent implementa facoltativamente un componente che monta le credenziali richieste. DaemonSet 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 ne implementa facoltativamente uno che si rivolge specificamente ai nodi ibridi Bottlerocket. DaemonSet Le sezioni DaemonSets seguenti descrivono il processo per abilitare l'opzione.

Ubuntu/RHEL/AL2023

  1. Per utilizzare l'agente Pod Identity sui nodi ibridi Ubuntu/RHEL/Al 2023, imposta enableCredentialsFile: true nella sezione ibrida di nodeadm config come mostrato di seguito:

    apiVersion: node.eks.aws/v1alpha1 kind: NodeConfig spec: hybrid: enableCredentialsFile: true # <-- Add this

    Questo configurerà nodeadm la creazione di un file di credenziali da configurare sul nodo sottostante/eks-hybrid/.aws/credentials, che verrà utilizzato dai eks-pod-identity-agent pod. Questo file di credenziali conterrà AWS credenziali temporanee che verranno aggiornate periodicamente.

  2. Dopo aver aggiornato la nodeadm configurazione su ogni nodo, esegui il seguente nodeadm init comando con il tuo nodeConfig.yaml per unire i nodi ibridi al cluster Amazon EKS. Se i tuoi nodi si sono uniti al cluster in precedenza, esegui comunque di nuovo il init comando.

    nodeadm init -c file://nodeConfig.yaml
  3. Installa eks-pod-identity-agent con il supporto per i nodi ibridi abilitato, utilizzando la AWS CLI o. AWS Management Console

    1. AWS CLI: dalla macchina che stai utilizzando per amministrare il cluster, esegui il seguente comando per l'installazione eks-pod-identity-agent con il supporto per i nodi ibridi abilitato. Sostituisci my-cluster con il nome del cluster.

      aws eks create-addon \ --cluster-name my-cluster \ --addon-name eks-pod-identity-agent \ --configuration-values '{"daemonsets":{"hybrid":{"create": true}}}'
    2. AWS Management Console: Se stai installando il componente aggiuntivo Pod Identity Agent tramite la AWS console, aggiungi quanto segue alla configurazione opzionale per distribuire i DaemonSet nodi ibridi destinati.

      {"daemonsets":{"hybrid":{"create": true}}}

Bottlerocket

  1. Per utilizzare l'agente Pod Identity sui nodi ibridi Bottlerocket, aggiungi il --enable-credentials-file=true flag al comando utilizzato per i dati utente del contenitore bootstrap Bottlerocket, come descritto in. Connect nodi ibridi con Bottlerocket

    1. 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
    2. Se utilizzi 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=true

      Questo configurerà lo script bootstrap per creare un file di credenziali sul nodo sottostante/var/eks-hybrid/.aws/credentials, che verrà utilizzato dai pod. eks-pod-identity-agent Questo file di credenziali conterrà AWS credenziali temporanee che verranno aggiornate periodicamente.

  2. Installa eks-pod-identity-agent con il supporto per i nodi ibridi Bottlerocket abilitato, utilizzando la CLI AWS o. AWS Management Console

    1. AWS CLI: dalla macchina che stai utilizzando per amministrare il cluster, esegui il seguente comando per l'installazione eks-pod-identity-agent con il supporto per i nodi ibridi Bottlerocket abilitato. Sostituisci my-cluster con 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}}}'
    2. AWS Management Console: Se stai installando il componente aggiuntivo Pod Identity Agent tramite la AWS console, aggiungi quanto segue alla configurazione opzionale per distribuire i nodi ibridi Bottlerocket destinati. DaemonSet

      {"daemonsets":{"hybrid-bottlerocket":{"create": true}}}

Controller di snapshot CSI

A partire dalla versionev8.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 EC2 nella stessa regione del piano di controllo di Amazon AWS EKS. La collocazione congiunta deployment nella stessa AWS regione del piano di controllo di Amazon EKS migliora la latenza.

Componenti aggiuntivi per la 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.

Server Kubernetes Metrics

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.

gestore dei certificati

cert-managerutilizza webhook. Se esegui cert-manager su nodi ibridi, il tuo pod CIDR locale deve essere instradabile sulla tua rete locale e devi configurare il cluster EKS con la tua rete di pod remota. Per ulteriori informazioni, consulta Configurare i webhook per i nodi ibridi.