View a markdown version of this page

Componenti aggiuntivi - Guida per l'utente di Eksctl

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

Componenti aggiuntivi

Questo argomento descrive come gestire Amazon EKS Add-Ons per i tuoi cluster Amazon EKS utilizzando eksctl. EKS Add-Ons è una funzionalità che consente di abilitare e gestire il software operativo Kubernetes tramite l'API EKS, semplificando il processo di installazione, configurazione e aggiornamento dei componenti aggiuntivi del cluster.

avvertimento

A partire da eksctl v0.184.0 (e v0.201.0 per metrics-server), eksctl installa gli addon predefiniti (vpc-cni, coredns, kube-proxy, metrics-server) come componenti aggiuntivi EKS anziché componenti aggiuntivi autogestiti. Ciò significa che eksctl utils update-* dovresti usare al posto dei comandi. eksctl update addon

Puoi creare cluster senza alcun componente aggiuntivo di rete predefinito quando desideri utilizzare plugin CNI alternativi come Cilium e Calico.

EKS Add-ons ora supporta la ricezione di autorizzazioni IAM tramite EKS Pod Identity Associations, consentendo loro di connettersi con servizi AWS esterni al cluster

Creazione di componenti aggiuntivi

Eksctl offre una maggiore flessibilità per la gestione degli addon del cluster:

Nel file di configurazione, puoi specificare i componenti aggiuntivi che desideri e (se richiesto) il ruolo o le politiche da allegare ad essi:

apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: example-cluster region: us-west-2 iam: withOIDC: true addons: - name: vpc-cni # all below properties are optional version: 1.7.5 tags: team: eks # you can specify at most one of: attachPolicyARNs: - arn:aws:iam::account:policy/AmazonEKS_CNI_Policy # or serviceAccountRoleARN: arn:aws:iam::account:role/AmazonEKSCNIAccess # or attachPolicy: Statement: - Effect: Allow Action: - ec2:AssignPrivateIpAddresses - ec2:AttachNetworkInterface - ec2:CreateNetworkInterface - ec2:DeleteNetworkInterface - ec2:DescribeInstances - ec2:DescribeTags - ec2:DescribeNetworkInterfaces - ec2:DescribeInstanceTypes - ec2:DetachNetworkInterface - ec2:ModifyNetworkInterfaceAttribute - ec2:UnassignPrivateIpAddresses Resource: '*'

Puoi specificare al massimo uno tra, e. attachPolicy attachPolicyARNs serviceAccountRoleARN

Se nessuno di questi viene specificato, l'addon verrà creato con un ruolo a cui sono allegate tutte le politiche consigliate.

Nota

Per allegare le politiche ai componenti aggiuntivi, il cluster deve essere abilitato. OIDC Se non è abilitato, ignoriamo tutte le politiche allegate.

Puoi quindi creare questi componenti aggiuntivi durante il processo di creazione del cluster:

eksctl create cluster -f config.yaml

Oppure crea gli addon in modo esplicito dopo la creazione del cluster utilizzando il file di configurazione o i flag CLI:

eksctl create addon -f config.yaml
eksctl create addon --name vpc-cni --version 1.7.5 --service-account-role-arn <role-arn>
eksctl create addon --name aws-ebs-csi-driver --namespace-config 'namespace=custom-namespace'
Suggerimento

Usa il --namespace-config flag per distribuire i componenti aggiuntivi in uno spazio dei nomi personalizzato anziché in quello predefinito.

Durante la creazione dell'addon, se nel cluster esiste già una versione autogestita dell'addon, puoi scegliere come risolvere i potenziali configMap conflitti impostando l'opzione tramite il file di configurazione, ad es. resolveConflicts

addons: - name: vpc-cni attachPolicyARNs: - arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy resolveConflicts: overwrite

Per la creazione di addon, il resolveConflicts campo supporta tre valori distinti:

  • none- EKS non modifica il valore. La creazione potrebbe fallire.

  • overwrite- EKS sovrascrive tutte le modifiche alla configurazione riportandole ai valori predefiniti di EKS.

  • preserve- EKS non modifica il valore. La creazione potrebbe fallire. (Analogamente anone, ma diverso dall'preserveaggiornamento dei componenti aggiuntivi).

Elenca i componenti aggiuntivi abilitati

Puoi vedere quali componenti aggiuntivi sono abilitati nel tuo cluster eseguendo:

eksctl get addons --cluster <cluster-name>

or

eksctl get addons -f config.yaml

Impostazione della versione dell'addon

L'impostazione della versione dell'addon è facoltativa. Se il version campo viene lasciato vuoto, eksctl verrà risolta la versione predefinita per l'addon. Ulteriori informazioni su quale versione è la versione predefinita per componenti aggiuntivi specifici sono disponibili nella documentazione AWS su EKS. Nota che la versione predefinita potrebbe non essere necessariamente l'ultima versione disponibile.

La versione del componente aggiuntivo può essere impostata su. latest In alternativa, la versione può essere impostata con il tag build EKS specificato, ad esempio v1.7.5-eksbuild.1 ov1.7.5-eksbuild.2. Può anche essere impostata sulla versione di rilascio dell'addon, ad esempio v1.7.5 or1.7.5, e il tag eksbuild suffisso verrà scoperto e impostato automaticamente.

Consulta la sezione seguente su come scoprire i componenti aggiuntivi disponibili e le relative versioni.

Alla scoperta degli addon

Puoi scoprire quali componenti aggiuntivi sono disponibili per l'installazione nel tuo cluster eseguendo:

eksctl utils describe-addon-versions --cluster <cluster-name>

Questo scoprirà la versione kubernetes del tuo cluster e filtrerà in base a quella. In alternativa, se vuoi vedere quali componenti aggiuntivi sono disponibili per una particolare versione di Kubernetes, puoi eseguire:

eksctl utils describe-addon-versions --kubernetes-version <version>

Puoi anche scoprire i componenti aggiuntivi filtrando in base ai loro,. type owner and/or publisher Ad esempio, per visualizzare i componenti aggiuntivi per un determinato proprietario e digitare, puoi eseguire:

eksctl utils describe-addon-versions --kubernetes-version 1.22 --types "infra-management, policy-management" --owners "aws-marketplace"

I publishers flagtypes, owners e sono opzionali e possono essere specificati insieme o singolarmente per filtrare i risultati.

Scoprendo lo schema di configurazione per i componenti aggiuntivi

Dopo aver scoperto l'addon e la versione, puoi visualizzare le opzioni di personalizzazione recuperando il relativo schema di configurazione JSON.

eksctl utils describe-addon-configuration --name vpc-cni --version v1.12.0-eksbuild.1

Questo restituisce uno schema JSON delle varie opzioni disponibili per questo addon.

Lavorare con i valori di configurazione

ConfigurationValuespuò essere fornito nel file di configurazione durante la creazione o l'aggiornamento dei componenti aggiuntivi. Sono supportati solo i formati JSON e YAML.

Ad esempio ,

addons: - name: coredns configurationValues: |- replicaCount: 2
addons: - name: coredns version: latest configurationValues: "{\"replicaCount\":3}" resolveConflicts: overwrite
Nota

Tieni presente che quando i valori di configurazione degli addon vengono modificati, si verificheranno conflitti di configurazione.

Thus, we need to specify how to deal with those by setting the `resolveConflicts` field accordingly. As in this scenario we want to modify these values, we'd set `resolveConflicts: overwrite`.

Inoltre, il comando get ora recupererà anche l'addon. ConfigurationValues ad es.

eksctl get addon --cluster my-cluster --output yaml
- ConfigurationValues: '{"replicaCount":3}' IAMRole: "" Issues: null Name: coredns NewerVersion: "" Status: ACTIVE Version: v1.8.7-eksbuild.3

Utilizzo dello spazio dei nomi personalizzato

È possibile fornire uno spazio dei nomi personalizzato nel file di configurazione durante la creazione di componenti aggiuntivi. Un namespace non può essere aggiornato una volta creato un addon.

Utilizzo del file di configurazione

addons: - name: aws-ebs-csi-driver version: latest namespaceConfig: namespace: custom-namespace

Usando il flag CLI

In alternativa, puoi specificare uno spazio dei nomi personalizzato usando il flag: --namespace-config

eksctl create addon --cluster my-cluster --name aws-ebs-csi-driver --namespace-config 'namespace=custom-namespace'

Il comando get recupererà anche il valore dello spazio dei nomi per l'addon

- ConfigurationValues: "" IAMRole: "" Issues: null Name: aws-ebs-csi-driver NamespaceConfig: namespace: custom-namespace NewerVersion: "" PodIdentityAssociations: null Status: ACTIVE Version: v1.47.0-eksbuild.1

Aggiornamento dei componenti aggiuntivi

Puoi aggiornare i tuoi componenti aggiuntivi alle versioni più recenti e modificare le politiche allegate eseguendo:

eksctl update addon -f config.yaml
eksctl update addon --name vpc-cni --version 1.8.0 --service-account-role-arn <new-role>
Nota

La configurazione dello spazio dei nomi non può essere aggiornata una volta creato un componente aggiuntivo. Il --namespace-config flag è disponibile solo durante la creazione dell'addon.

Analogamente alla creazione di un componente aggiuntivo, quando si aggiorna un componente aggiuntivo, si ha il pieno controllo sulle modifiche alla configurazione che è possibile applicare in precedenza a tale componente aggiuntivo. configMap In particolare, puoi conservarli o sovrascriverli. Questa funzionalità opzionale è disponibile tramite lo stesso campo resolveConflicts del file di configurazione. ad esempio,

addons: - name: vpc-cni attachPolicyARNs: - arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy resolveConflicts: preserve

Per l'aggiornamento dell'addon, il resolveConflicts campo accetta tre valori distinti:

  • none- EKS non modifica il valore. L'aggiornamento potrebbe fallire.

  • overwrite- EKS sovrascrive tutte le modifiche alla configurazione riportandole ai valori predefiniti di EKS.

  • preserve- EKS mantiene il valore. Se scegli questa opzione, ti consigliamo di testare eventuali modifiche ai campi e ai valori su un cluster non di produzione prima di aggiornare il componente aggiuntivo nel cluster di produzione.

Eliminazione dei componenti aggiuntivi

Puoi eliminare un componente aggiuntivo eseguendo:

eksctl delete addon --cluster <cluster-name> --name <addon-name>

Questo eliminerà l'addon e tutti i ruoli IAM ad esso associati.

Quando elimini il cluster, vengono eliminati anche tutti i ruoli IAM associati agli addon.

Flessibilità nella creazione di cluster per i componenti aggiuntivi di rete predefiniti

Quando viene creato un cluster, EKS installa automaticamente VPC CNI, CoreDNS e kube-proxy come componenti aggiuntivi autogestiti. Per disabilitare questo comportamento al fine di utilizzare altri plugin CNI come Cilium e Calico, eksctl ora supporta la creazione di un cluster senza componenti aggiuntivi di rete predefiniti. Per creare un cluster di questo tipo, imposta, come in: addonsConfig.disableDefaultAddons

addonsConfig: disableDefaultAddons: true
eksctl create cluster -f cluster.yaml

Per creare un cluster con solo CoreDNS e kube-proxy e non VPC CNI, specifica esplicitamente i componenti aggiuntivi in e impostali, come in: addons addonsConfig.disableDefaultAddons

addonsConfig: disableDefaultAddons: true addons: - name: kube-proxy - name: coredns
eksctl create cluster -f cluster.yaml

Come parte di questa modifica, eksctl ora installa gli addon predefiniti come componenti aggiuntivi EKS invece di componenti aggiuntivi autogestiti durante la creazione del cluster se non è impostato esplicitamente su true. addonsConfig.disableDefaultAddons Pertanto, eksctl utils update-* i comandi non possono più essere utilizzati per aggiornare i componenti aggiuntivi per i cluster creati con eksctl v0.184.0 e versioni successive:

  • eksctl utils update-aws-node

  • eksctl utils update-coredns

  • eksctl utils update-kube-proxy

Inveceeksctl update addon, dovrebbe essere usato ora.

Per saperne di più, consulta Amazon EKS che introduce la flessibilità di creazione di cluster per i componenti aggiuntivi di rete.