

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

# Determina i campi che puoi personalizzare per i componenti aggiuntivi Amazon EKS
<a name="kubernetes-field-management"></a>

I componenti aggiuntivi Amazon EKS vengono installati nel cluster utilizzando configurazioni standard e best practice. Per ulteriori informazioni sull’aggiunta di un componente aggiuntivo di Amazon EKS al cluster, consulta [Componenti aggiuntivi Amazon EKS](eks-add-ons.md).

Potresti voler personalizzare la configurazione di un componente aggiuntivo Amazon EKS per abilitare funzionalità avanzate. Amazon EKS utilizza la funzionalità applicazione lato server Kubernetes per abilitare la gestione di un componente aggiuntivo da parte di Amazon EKS, senza sovrascrivere la configurazione per le impostazioni non gestite da Amazon EKS. Per ulteriori informazioni, consulta [Applicazione lato server](https://kubernetes.io/docs/reference/using-api/server-side-apply/) nella documentazione di Kubernetes. Per raggiungere questo obiettivo, Amazon EKS gestisce un insieme minimo di campi per ogni componente aggiuntivo che installa. Puoi modificare senza problemi tutti i campi non gestiti da Amazon EKS o da un altro processo del piano di controllo Kubernetes, come `kube-controller-manager`.

**Importante**  
La modifica di un campo gestito da Amazon EKS impedisce ad Amazon EKS di gestire il componente aggiuntivo e può comportare la sovrascrittura delle modifiche quando un componente aggiuntivo viene aggiornato.

## Sintassi della gestione dei campi
<a name="add-on-config-management-understanding-field-management"></a>

Quando si visualizzano i dettagli di un oggetto Kubernetes, nell’output vengono restituiti sia i campi gestiti che quelli non gestiti. I campi gestiti possono essere dei seguenti tipi:
+  **Completamente gestito** – Tutte le chiavi del campo sono gestite da Amazon EKS. Le modifiche a qualsiasi valore causano un conflitto.
+  **Parzialmente gestiti** – Alcune chiavi per il campo sono gestite da Amazon EKS. Solo le modifiche alle chiavi gestite esplicitamente da Amazon EKS causano un conflitto.

Entrambi i tipi di campi sono taggati con `manager: eks`.

Ogni chiave è un `.` che rappresenta il campo stesso, che viene sempre mappato a un insieme vuoto o a una stringa che rappresenta un sottocampo o un elemento. L'output per la gestione del campo è costituito dai seguenti tipi di dichiarazioni:
+  `f:{{name}} `, dove {{name}} è il nome di un campo in un elenco.
+  `k:{{keys}} `, dove {{keys}} è una mappa dei campi di una voce di elenco.
+  `v:{{value}} `, dove {{value}} è il valore formattato JSON esatto di una elemento in elenco.
+  `i:{{index}} `, dove {{index}} è la posizione di un elemento nell'elenco.

Le seguenti porzioni di output per il componente aggiuntivo CoreDNS illustrano le dichiarazioni precedenti:
+  **Campi completamente gestiti** – Se un campo gestito ha un `f:` (campo) specificato, ma non `k:` (chiave), l’intero campo è gestito. Le modifiche apportate a qualsiasi valore in questo campo causano un conflitto.

  Nel seguente output, è possibile vedere che il container denominato `coredns` è gestito da `eks`. La `args`, `image`, e i sottocampi `imagePullPolicy` sono gestiti anche da `eks`. Le modifiche a qualsiasi valore in questi campi causano un conflitto.

  ```
  [...]
  f:containers:
    k:{"name":"coredns"}:
    .: {}
    f:args: {}
    f:image: {}
    f:imagePullPolicy: {}
  [...]
  manager: eks
  [...]
  ```
+  **Campi parzialmente gestiti** – Se una chiave gestita ha un valore specificato, le chiavi dichiarate vengono gestite per quel campo. La modifica delle chiavi specificate causa un conflitto.

  Nel seguente output, è possibile vedere che `eks` gestisce il `config-volume` e volumi `tmp` impostati con la chiave `name`.

  ```
  [...]
  f:volumes:
    k:{"name":"config-volume"}:
      .: {}
      f:configMap:
        f:items: {}
        f:name: {}
      f:name: {}
    k:{"name":"tmp"}:
      .: {}
      f:name: {}
  [...]
  manager: eks
  [...]
  ```
+  **Aggiunta di chiavi a campi parzialmente gestiti** – Se viene gestita solo una chiave-valore specifica, è possibile aggiungere ulteriori chiavi, ad esempio, argomenti, a un campo senza causare conflitti. Se aggiungi altre chiavi, assicurati per prima cosa che il campo non sia gestito. L’aggiunta o la modifica di qualsiasi valore gestito causa un conflitto.

  Nel seguente output, è possibile vedere come sia la chiave `name` che il campo `name` siano gestiti. L’aggiunta o la modifica di qualsiasi nome container causa un conflitto con questa chiave gestita.

  ```
  [...]
  f:containers:
    k:{"name":"coredns"}:
  [...]
      f:name: {}
  [...]
  manager: eks
  [...]
  ```

## Procedura
<a name="view-field-management"></a>

È possibile utilizzare `kubectl` per vedere quali campi sono gestiti da Amazon EKS per qualsiasi componente aggiuntivo Amazon EKS.

Puoi modificare senza problemi tutti i campi non gestiti da Amazon EKS o da un altro processo del piano di controllo Kubernetes, come `kube-controller-manager`.

1. Determinare quale componente aggiuntivo si desidera esaminare. Per visualizzare tutti i file `deployments` e DaemonSets distribuiti nel cluster, consulta[Visualizza le risorse Kubernetes nel Console di gestione AWS](view-kubernetes-resources.md).

1. Visualizzazione dei campi gestiti per un componente aggiuntivo eseguendo il comando seguente:

   ```
   kubectl get type/add-on-name -n add-on-namespace -o yaml
   ```

   Ad esempio, è possibile visualizzare i campi gestiti per il componente aggiuntivo CoreDNS con il comando seguente.

   ```
   kubectl get deployment/coredns -n kube-system -o yaml
   ```

   La gestione dei campi è elencata nella sezione seguente dell’output restituito.

   ```
   [...]
   managedFields:
     - apiVersion: apps/v1
       fieldsType: FieldsV1
       fieldsV1:
   [...]
   ```
**Nota**  
Se non visualizzi `managedFields` nell’output, aggiungi `--show-managed-fields` al comando ed eseguilo di nuovo. La versione di `kubectl` che stai utilizzando determina se i campi gestiti vengono restituiti per impostazione predefinita.

## Fasi successive
<a name="view-field-management-next-steps"></a>

Personalizza i campi non di proprietà del componente aggiuntivo AWS for you.