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 i componenti aggiuntivi Amazon EKS per i 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

eksctl ora installa componenti aggiuntivi predefiniti (vpc-cni, coredns, kube-proxy) come componenti aggiuntivi EKS anziché componenti aggiuntivi autogestiti. Ciò significa che è necessario utilizzare al posto dei comandi per i eksctl update addon cluster creati con eksctl eksctl utils update-* v0.184.0 e versioni successive.

È possibile creare cluster senza componenti aggiuntivi di rete predefiniti quando si desidera utilizzare plugin CNI alternativi come Cilium e Calico.

I componenti aggiuntivi EKS ora supportano la ricezione di autorizzazioni IAM tramite EKS Pod Identity Associations, permettendo loro di connettersi ai servizi AWS esterni al cluster

Creazione di componenti aggiuntivi

Eksctl offre maggiore flessibilità per la gestione dei componenti aggiuntivi del cluster:

Nel tuo file di configurazione, puoi specificare i componenti aggiuntivi che desideri e (se necessario) 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 diattachPolicy, e. attachPolicyARNs serviceAccountRoleARN

Se non viene specificato nessuno di questi, 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 i componenti aggiuntivi 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>

Durante la creazione del componente aggiuntivo, se nel cluster esiste già una versione autogestita dell'addon, è possibile 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 qualsiasi modifica alla configurazione riportandola ai valori predefiniti di EKS.

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

Elencare componenti aggiuntivi abilitati

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

eksctl get addons --cluster <cluster-name>

oppure

eksctl get addons -f config.yaml

Impostazione della versione dell'addon

L'impostazione della versione del componente aggiuntivo è facoltativa. Se il version campo viene lasciato vuoto, eksctl verrà risolta la versione predefinita dell'addon. Ulteriori informazioni su quale versione è la versione predefinita per componenti aggiuntivi specifici sono disponibili nella documentazione AWS su EKS. Tieni presente 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 di build EKS specificato, ad esempio v1.7.5-eksbuild.1 ov1.7.5-eksbuild.2. Può anche essere impostato sulla versione di rilascio dell'addon, ad esempio v1.7.5 o1.7.5, e il tag del 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 sul 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 di un determinato proprietario e tipo, 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.

Alla scoperta dello schema di configurazione per i componenti aggiuntivi

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

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

Ciò restituisce uno schema JSON delle varie opzioni disponibili per questo componente aggiuntivo.

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 es. ,

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

Tenete presente che quando i valori di configurazione degli addon vengono modificati, si verificano 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

Aggiornamento dei componenti aggiuntivi

Puoi aggiornare i 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>

Analogamente alla creazione di un componente aggiuntivo, quando aggiorni un componente aggiuntivo, hai il pieno controllo sulle modifiche alla configurazione che potresti aver applicato in precedenza a quel componente aggiuntivo. configMap In particolare, puoi conservarli o sovrascriverli. Questa funzionalità opzionale è disponibile tramite lo stesso campo del file di configurazione. ad resolveConflicts esempio

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

Per l'aggiornamento dei componenti aggiuntivi, il resolveConflicts campo accetta tre valori distinti:

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

  • overwrite- EKS sovrascrive qualsiasi modifica alla configurazione riportandola ai valori predefiniti di EKS.

  • preserve- EKS conserva il valore. Se scegli questa opzione, ti consigliamo di testare qualsiasi modifica di campo e valore su un cluster non di produzione prima di aggiornare il componente aggiuntivo nel tuo cluster di produzione.

Eliminazione di 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 ai componenti aggiuntivi.

Flessibilità di creazione di cluster per 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 gli addon in modo esplicito e imposta, 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 i componenti aggiuntivi predefiniti come componenti aggiuntivi EKS anziché 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 ulteriori informazioni, consulta Amazon EKS introduce la flessibilità di creazione di cluster per componenti aggiuntivi di rete.