

 **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 su che si trova 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à.

# Inizia a usare il gateway EKS Hybrid Nodes
<a name="hybrid-nodes-gateway-getting-started"></a>

Questa pagina illustra i prerequisiti, la preparazione dell'ambiente, l'installazione, la verifica e la rimozione del gateway Amazon EKS Hybrid Nodes. Per un'introduzione al gateway e alla sua architettura, consulta[Gateway Amazon EKS Hybrid Nodes](hybrid-nodes-gateway-overview.md).

## Prerequisiti
<a name="hybrid-nodes-gateway-prerequisites"></a>

Prima di installare il gateway Hybrid Nodes, verifica che l'ambiente soddisfi i seguenti requisiti:
+  **Cluster EKS con supporto Cilium CNI e VTEP**: il cluster EKS deve utilizzare la versione EKS di Cilium come CNI sui nodi ibridi e Cilium VTEP deve essere abilitato. Per ulteriori informazioni, consulta [Configurare CNI per il gateway Hybrid Nodes](hybrid-nodes-gateway-cni.md).
+  ** AWS VPC CNI su nodi cloud: i nodi** gateway e gli altri nodi cloud del cluster devono utilizzare il AWS VPC CNI. Il gateway si basa sul VPC-native routing per inoltrare il traffico tra il VPC e il tunnel VXLAN.
+  **Connettività ibrida**: è necessaria una connessione privata tra il VPC e l'ambiente locale. Puoi utilizzare AWS Direct Connect, AWS Site-to-Site VPN o la tua soluzione VPN. Per ulteriori informazioni, consulta [Preparazione della rete per i nodi ibridi](hybrid-nodes-networking.md).
+  **Traffico VXLAN consentito**: i gruppi di sicurezza collegati alle istanze EC2 del gateway devono consentire il traffico UDP in entrata e in uscita sulla porta 8472. Sul lato del nodo ibrido, le regole del firewall locale devono consentire anche il traffico della porta UDP 8472 da e verso gli indirizzi IP del nodo gateway.
+  **Autorizzazioni IAM per la gestione delle tabelle di routing**: il gateway richiede le seguenti azioni EC2 per gestire le tabelle di routing VPC:
  +  `ec2:DescribeRouteTables` 
  +  `ec2:CreateRoute` 
  +  `ec2:ReplaceRoute` 
  +  `ec2:DescribeInstances` 

    Puoi concedere queste autorizzazioni utilizzando uno dei seguenti approcci:

------
#### [ EKS Pod Identity (recommended) ]

    Utilizzate [EKS Pod Identity](https://docs.aws.amazon.com/eks/latest/userguide/pod-identities.html) per concedere le autorizzazioni solo all'account di servizio del gateway pod.

    1. Installa il componente aggiuntivo EKS Pod Identity Agent sul tuo cluster se non è già installato:

       ```
       aws eks create-addon \
         --cluster-name {{CLUSTER_NAME}} \
         --addon-name eks-pod-identity-agent
       ```

    1. Crea un ruolo IAM con le autorizzazioni EC2 richieste e una policy di fiducia per EKS Pod Identity:

       ```
       cat > gateway-trust-policy.json << 'EOF'
       {
         "Version": "2012-10-17" 		 	 	 ,
         "Statement": [
           {
             "Effect": "Allow",
             "Principal": { "Service": "pods.eks.amazonaws.com" },
             "Action": ["sts:AssumeRole", "sts:TagSession"]
           }
         ]
       }
       EOF
       
       aws iam create-role \
         --role-name EKSHybridNodesGatewayRole \
         --assume-role-policy-document file://gateway-trust-policy.json
       
       aws iam put-role-policy \
         --role-name EKSHybridNodesGatewayRole \
         --policy-name HybridNodesGatewayRouteTable \
         --policy-document '{
           "Version": "2012-10-17" 		 	 	 ,
           "Statement": [{
             "Effect": "Allow",
             "Action": [
               "ec2:DescribeRouteTables",
               "ec2:CreateRoute",
               "ec2:ReplaceRoute",
               "ec2:DescribeInstances"
             ],
             "Resource": "*"
           }]
         }'
       ```

    1. Crea un'associazione di identità pod che colleghi il ruolo IAM all'account del servizio gateway:

       ```
       aws eks create-pod-identity-association \
         --cluster-name {{CLUSTER_NAME}} \
         --namespace eks-hybrid-nodes-gateway \
         --service-account eks-hybrid-nodes-gateway \
         --role-arn {{arn:aws:iam::ACCOUNT_ID:role/EKSHybridNodesGatewayRole}}
       ```

------
#### [ Node IAM role ]

    Allega una policy in linea o gestita con le autorizzazioni richieste al ruolo IAM associato al profilo di istanza dei nodi del gateway:

    ```
    aws iam put-role-policy \
      --role-name {{NODE_ROLE_NAME}} \
      --policy-name HybridNodesGatewayRouteTable \
      --policy-document '{
        "Version": "2012-10-17" 		 	 	 ,
        "Statement": [{
          "Effect": "Allow",
          "Action": [
            "ec2:DescribeRouteTables",
            "ec2:CreateRoute",
            "ec2:ReplaceRoute",
            "ec2:DescribeInstances"
          ],
          "Resource": "*"
        }]
      }'
    ```

    Tutti i pod sui nodi gateway disporranno di queste autorizzazioni.

------
+  **Modalità automatica EKS (se si utilizza la modalità automatica per i nodi gateway)**: se si prevede di utilizzare la modalità automatica EKS per il provisioning dei nodi gateway, la modalità automatica deve essere abilitata sul cluster EKS. Per ulteriori informazioni, consulta [Abilitare la modalità automatica EKS](https://docs.aws.amazon.com/eks/latest/userguide/migrate-auto.html).

## Preparare i nodi gateway
<a name="hybrid-nodes-gateway-prepare-nodes"></a>

Il gateway richiede almeno due nodi EC2 per un'elevata disponibilità. Esistono due opzioni di configurazione dei nodi supportate per il gateway:
+  [Modalità EKS Auto (consigliata)](#hybrid-nodes-gateway-auto-mode-nodes)— Il provisioning dei nodi viene eseguito automaticamente utilizzando un comando `NodePool` e`NodeClass`. Source/destination check, labels e taints sono tutti configurati in modo dichiarativo.
+  [Gruppi di nodi gestiti](#hybrid-nodes-gateway-mng-nodes)— Il provisioning dei nodi viene eseguito utilizzando un gruppo di nodi gestito o nodi autogestiti. Le etichette possono essere configurate tramite l'API del gruppo di nodi gestiti e il source/destination controllo può essere disabilitato utilizzando un modello di avvio personalizzato con dati utente.

### Modalità EKS Auto (consigliata)
<a name="hybrid-nodes-gateway-auto-mode-nodes"></a>

Quando si utilizza la modalità automatica EKS, è necessario creare un `NodePool` e `NodeClass` prima di installare il grafico Helm. Fornisce NodePool alle istanze EC2 le etichette e i colori corretti e verifica la configurazione. source/destination Non è necessario effettuare il provisioning o configurare manualmente i nodi.

Applica le seguenti risorse al cluster, sostituendo i valori segnaposto:
+  {{YOUR\_NODE\_ROLE}}— Il nome del ruolo IAM del nodo utilizzato da EKS Auto Mode per il provisioning dei nodi. Questo è il ruolo che hai configurato (o creato da EKS) quando hai abilitato la modalità automatica sul cluster. Per ulteriori informazioni, consulta [Create a Node IAM Role for EKS Auto Mode](https://docs.aws.amazon.com/eks/latest/userguide/auto-create-node-role.html).
+  {{YOUR\_CLUSTER\_NAME}}— Il nome del tuo cluster EKS.
+  {{SUBNET\_ID\_1}}, {{SUBNET\_ID\_2}} — ID di sottorete in diverse zone di disponibilità in cui verranno forniti i nodi gateway.

```
apiVersion: eks.amazonaws.com/v1
kind: NodeClass
metadata:
  name: hybrid-gateway
spec:
  advancedNetworking:
    sourceDestCheck: DisabledPrimaryENI
  role: {{YOUR_NODE_ROLE}}
  securityGroupSelectorTerms:
    - tags:
        aws:eks:cluster-name: {{YOUR_CLUSTER_NAME}}
  subnetSelectorTerms:
    - id: {{SUBNET_ID_1}}
    - id: {{SUBNET_ID_2}}
---
apiVersion: karpenter.sh/v1
kind: NodePool
metadata:
  name: hybrid-gateway
spec:
  template:
    metadata:
      labels:
        hybrid-gateway-node: "true"
    spec:
      expireAfter: 336h
      nodeClassRef:
        group: eks.amazonaws.com
        kind: NodeClass
        name: hybrid-gateway
      requirements:
        - key: karpenter.sh/capacity-type
          operator: In
          values:
            - on-demand
        - key: eks.amazonaws.com/instance-category
          operator: In
          values:
            - c
            - m
            - r
        - key: eks.amazonaws.com/instance-generation
          operator: Gt
          values:
            - "4"
        - key: kubernetes.io/arch
          operator: In
          values:
            - amd64
        - key: kubernetes.io/os
          operator: In
          values:
            - linux
      taints:
        - key: hybrid-gateway-node
          effect: NoSchedule
      terminationGracePeriod: 24h0m0s
  disruption:
    budgets:
      - nodes: 10%
    consolidateAfter: 30s
    consolidationPolicy: WhenEmptyOrUnderutilized
```

Campi chiave di questa configurazione:
+  `advancedNetworking.sourceDestCheck: DisabledPrimaryENI`— Disattiva il source/destination controllo EC2 sull'ENI primario del nodo in modo che il gateway possa inoltrare il traffico non indirizzato a se stesso.
+  `taints`— Il problema garantisce `hybrid-gateway-node: NoSchedule` solo i gateway pod con un programma di tolleranza corrispondente su questi nodi.
+  `labels`— L'`hybrid-gateway-node: "true"`etichetta viene utilizzata dal selettore di nodi del grafico di Helm per indirizzare i pod gateway verso questi nodi.
+  `nodeClassRef`— Collega la NodePool configurazione alla NodeClass con la source/destination verifica.

### Gruppi di nodi gestiti
<a name="hybrid-nodes-gateway-mng-nodes"></a>

Quando utilizzi gruppi di nodi gestiti, crea un gruppo di nodi dedicato per il gateway con le etichette e i taint richiesti e un modello di avvio personalizzato che disabiliti il source/destination controllo all'avvio.

#### Fase 1: creazione di un modello di avvio
<a name="_step_1_create_a_launch_template"></a>

Crea un modello di lancio con i dati utente che disabiliti il source/destination controllo sull'ENI principale all'avvio dell'istanza:

```
# Create the launch template with user data to disable source/dest check
USERDATA=$(cat <<'SCRIPT' | base64 -w 0
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="==BOUNDARY=="

--==BOUNDARY==
Content-Type: text/x-shellscript; charset="us-ascii"

#!/bin/bash
TOKEN=$(curl -s -X PUT "http://169.254.169.254/latest/api/token" \
  -H "X-aws-ec2-metadata-token-ttl-seconds: 60")
MAC=$(curl -s -H "X-aws-ec2-metadata-token: $TOKEN" \
  http://169.254.169.254/latest/meta-data/mac)
ENI_ID=$(curl -s -H "X-aws-ec2-metadata-token: $TOKEN" \
  "http://169.254.169.254/latest/meta-data/network/interfaces/macs/${MAC}/interface-id")
REGION=$(curl -s -H "X-aws-ec2-metadata-token: $TOKEN" \
  http://169.254.169.254/latest/meta-data/placement/region)

aws ec2 modify-network-interface-attribute \
  --network-interface-id "$ENI_ID" \
  --no-source-dest-check \
  --region "$REGION"

--==BOUNDARY==--
SCRIPT
)

aws ec2 create-launch-template \
  --launch-template-name {{YOUR_CLUSTER_NAME}}-gateway-lt \
  --launch-template-data "{\"UserData\":\"${USERDATA}\",\"MetadataOptions\":{\"HttpTokens\":\"required\",\"HttpPutResponseHopLimit\":2}}"
```

**Nota**  
Il ruolo IAM del nodo deve disporre dell'`ec2:ModifyNetworkInterfaceAttribute`autorizzazione affinché lo script dei dati utente abbia successo. Il formato multipart MIME garantisce che i dati utente vengano eseguiti insieme allo script di bootstrap EKS.

#### Fase 2: Creare il gruppo di nodi gestito
<a name="_step_2_create_the_managed_node_group"></a>

Crea un gruppo di nodi gestiti dedicato con l'etichetta del gateway, taint e il modello di avvio del passaggio 1:

```
aws eks create-nodegroup \
  --cluster-name {{YOUR_CLUSTER_NAME}} \
  --nodegroup-name {{YOUR_CLUSTER_NAME}}-gateway-nodes \
  --subnets {{SUBNET_ID_1 SUBNET_ID_2}} \
  --node-role {{YOUR_NODE_ROLE_ARN}} \
  --instance-types {{INSTANCE_TYPE}} \
  --ami-type AL2023_x86_64_STANDARD \
  --scaling-config desiredSize=2,maxSize=2,minSize=2 \
  --labels hybrid-gateway-node=true \
  --taints "key=hybrid-gateway-node,effect=NO_SCHEDULE" \
  --launch-template "name={{YOUR_CLUSTER_NAME}}-gateway-lt,version=1"
```

Questo crea un gruppo di nodi gestiti a 2 nodi in cui:
+  `--labels`imposta `hybrid-gateway-node=true` in modo che il selettore di nodi del grafico di Helm abbia come target questi nodi.
+  `--taints`aggiunge una `NoSchedule` macchia in modo che solo i gateway pod con un programma di tolleranza corrispondente su questi nodi.
+  `--launch-template`allega il modello di avvio che source/destination disabilita il controllo all'avvio.

Utilizza sottoreti in diverse zone di disponibilità per un'elevata disponibilità.

## Installa con Helm
<a name="hybrid-nodes-gateway-install"></a>

### Modalità automatica di EKS
<a name="hybrid-nodes-gateway-install-auto"></a>

Esegui il seguente comando per installare il gateway con EKS Auto Mode:

```
helm install eks-hybrid-nodes-gateway \
  oci://public.ecr.aws/eks/eks-hybrid-nodes-gateway \
  --version 1.0.0 \
  --namespace eks-hybrid-nodes-gateway \
  --create-namespace \
  --set vpcCIDR={{VPC_CIDR}} \
  --set podCIDRs={{POD_CIDRS}} \
  --set routeTableIDs={{ROUTE_TABLE_IDS}}
```

### Gruppi di nodi gestiti o nodi autogestiti
<a name="hybrid-nodes-gateway-install-mng"></a>

Per gruppi di nodi gestiti o nodi autogestiti, imposta: `autoMode.enabled=false`

```
helm install eks-hybrid-nodes-gateway \
  oci://public.ecr.aws/eks/eks-hybrid-nodes-gateway \
  --version 1.0.0 \
  --namespace eks-hybrid-nodes-gateway \
  --create-namespace \
  --set autoMode.enabled=false \
  --set vpcCIDR={{VPC_CIDR}} \
  --set podCIDRs={{POD_CIDRS}} \
  --set routeTableIDs={{ROUTE_TABLE_IDS}}
```

### Valori Helm obbligatori
<a name="hybrid-nodes-gateway-required-values"></a>

I seguenti valori sono obbligatori per tutte le installazioni:


| Valore | Description | 
| --- | --- | 
|  `vpcCIDR`  | Il blocco CIDR del VPC del cluster EKS (ad esempio`10.0.0.0/16`,). Utilizzato per la configurazione VTEP di Cilium in modo che i nodi ibridi VPC-bound instradino il traffico attraverso il gateway. | 
|  `podCIDRs`  | Comma-separated elenco di pod CIDR utilizzati da Cilium sui nodi ibridi (ad esempio,). `10.100.0.0/16,10.101.0.0/16` Il gateway crea voci della tabella di routing VPC e route VXLAN per questi CIDR. | 
|  `routeTableIDs`  | Comma-separated elenco degli ID delle tabelle di routing VPC da programmare (ad esempio,`rtb-0abc1234def567890,rtb-0fed9876cba543210`). Il gateway crea percorsi in queste tabelle indirizzando i pod CIDR ibridi verso l'istanza del gateway attivo. | 

Per un elenco completo dei valori configurabili, vedere. [Riferimento alla configurazione del gateway Amazon EKS Hybrid Nodes](hybrid-nodes-gateway-configuration.md)

## Verifica dell'installazione
<a name="hybrid-nodes-gateway-verify"></a>

Dopo aver installato il gateway, verifica che sia funzionante e integro.

### Controlla lo stato del pod
<a name="hybrid-nodes-gateway-verify-pods"></a>

Verifica che due gateway pod siano in funzione:

```
kubectl get pods -n eks-hybrid-nodes-gateway
```

Dovresti vedere un risultato simile a:

```
NAME                                        READY   STATUS    RESTARTS   AGE
eks-hybrid-nodes-gateway-5d4f6a7b8c-abc12   1/1     Running   0          2m
eks-hybrid-nodes-gateway-5d4f6a7b8c-def34   1/1     Running   0          2m
```

### Controlla l'elezione del leader
<a name="hybrid-nodes-gateway-verify-leader"></a>

Verifica che un pod abbia acquisito il contratto di locazione elettorale per il leader:

```
kubectl get lease -n eks-hybrid-nodes-gateway
```

L'output mostra il leader corrente nella `HOLDER` colonna:

```
NAME                     HOLDER                                      AGE
hybrid-gateway-leader    eks-hybrid-nodes-gateway-5d4f6a7b8c-abc12   2m
```

### Controlla l'endpoint di integrità
<a name="hybrid-nodes-gateway-verify-health"></a>

Verifica che l'endpoint di integrità risponda sul leader pod utilizzando il port forwarding:

```
kubectl port-forward -n eks-hybrid-nodes-gateway {{LEADER_POD_NAME}} 8088:8088 &
curl -s http://localhost:8088/healthz
```

Un gateway sano restituisce una risposta HTTP 200.

### Verifica le voci della tabella di routing VPC
<a name="hybrid-nodes-gateway-verify-routes"></a>

Nella console Amazon VPC o utilizzando l'interfaccia a riga di comando, verifica che le tabelle di routing VPC contengano voci per AWS i pod ibridi CIDR che puntano all'ENI dell'istanza gateway leader:

```
aws ec2 describe-route-tables \
  --route-table-ids {{ROUTE_TABLE_ID}} \
  --query "RouteTables[].Routes[?DestinationCidrBlock=='[.replaceable]`POD_CIDR`']"
```

Ogni pod ibrido CIDR deve avere un percorso `NetworkInterfaceId` impostato verso l'ENI primario dell'istanza leader.

## Disinstallazione
<a name="hybrid-nodes-gateway-uninstall"></a>

Per rimuovere il gateway Hybrid Nodes, esegui:

```
helm uninstall eks-hybrid-nodes-gateway --namespace eks-hybrid-nodes-gateway
```

**Nota**  
La disinstallazione del grafico Helm non rimuove automaticamente le voci della tabella di routing VPC create dal gateway. Dopo la disinstallazione, elimina manualmente le route per i tuoi pod ibridi CIDR dalle tabelle di routing VPC per evitare di indirizzare il traffico verso le istanze che non eseguono più il gateway. Puoi rimuovere i percorsi utilizzando la AWS CLI:  

```
aws ec2 delete-route \
  --route-table-id {{ROUTE_TABLE_ID}} \
  --destination-cidr-block {{POD_CIDR}}
```

## Fasi successive
<a name="hybrid-nodes-gateway-getting-started-next"></a>
+  [Riferimento alla configurazione del gateway Amazon EKS Hybrid Nodes](hybrid-nodes-gateway-configuration.md)— Personalizza i valori Helm, i flag CLI e i parametri di elezione dei leader.
+  [Operazioni del gateway Amazon EKS Hybrid Nodes](hybrid-nodes-gateway-operations.md)— Monitora il gateway, comprendi il comportamento del failover e pianifica la scalabilità.
+  [Risoluzione dei problemi del gateway Amazon EKS Hybrid Nodes](hybrid-nodes-gateway-troubleshooting.md)— Diagnostica e risolvi i problemi più comuni.