

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

# Configurazione di Cilium BGP per nodi ibridi
<a name="hybrid-nodes-cilium-bgp"></a>

Questo argomento descrive come configurare il Border Gateway Protocol (BGP) di Cilium per Amazon EKS Hybrid Nodes. La funzionalità BGP di Cilium si chiama [Cilium BGP Control Plane](https://docs.cilium.io/en/stable/network/bgp-control-plane/bgp-control-plane/) e può essere utilizzata per pubblicizzare indirizzi di pod e servizi sulla rete on-premises. Per metodi alternativi per rendere i pod CIDR instradabili sulla on-premises, consulta [CIDR dei pod remoti instradabili](hybrid-nodes-concepts-kubernetes.md#hybrid-nodes-concepts-k8s-pod-cidrs).

## Configurazione del BGP di Cilium
<a name="hybrid-nodes-cilium-bgp-configure"></a>

### Prerequisiti
<a name="_prerequisites"></a>
+ Cilium è installato seguendo le istruzioni contenute in [Configurazione della CNI per nodi ibridi](hybrid-nodes-cni.md).

### Procedura
<a name="_procedure"></a>

1. Per utilizzare BGP con Cilium per pubblicizzare pod o indirizzi di servizi sulla rete on-premises, è necessario installare Cilium con `bgpControlPlane.enabled: true`. Se stai abilitando BGP per un’implementazione Cilium esistente, devi riavviare l’operatore Cilium per applicare la configurazione BGP se BGP non era stato precedentemente abilitato. È possibile impostare i valori di Helm `operator.rollOutPods` per `true` al fine di riavviare l’operatore Cilium come parte del processo di installazione/aggiornamento di Helm.

   ```
   helm upgrade cilium oci://public.ecr.aws/eks/cilium/cilium \
     --namespace kube-system \
     --reuse-values \
     --set operator.rollOutPods=true \
     --set bgpControlPlane.enabled=true
   ```

1. Conferma che l’operatore e gli agenti Cilium sono stati riavviati e sono in esecuzione.

   ```
   kubectl -n kube-system get pods --selector=app.kubernetes.io/part-of=cilium
   ```

   ```
   NAME                               READY   STATUS    RESTARTS   AGE
   cilium-grwlc                       1/1     Running   0          4m12s
   cilium-operator-68f7766967-5nnbl   1/1     Running   0          4m20s
   cilium-operator-68f7766967-7spfz   1/1     Running   0          4m20s
   cilium-pnxcv                       1/1     Running   0          6m29s
   cilium-r7qkj                       1/1     Running   0          4m12s
   cilium-wxhfn                       1/1     Running   0          4m1s
   cilium-z7hlb                       1/1     Running   0          6m30s
   ```

1. Crea un file chiamato `cilium-bgp-cluster.yaml` con una definizione `CiliumBGPClusterConfig`. Potrebbe essere necessario ottenere le seguenti informazioni dall’amministratore di rete.
   + Configura `localASN` con l’ASN per i nodi che eseguono Cilium.
   + Configura `peerASN` con l’ASN per il router on-premises.
   + Configura `peerAddress` con l’IP del router on-premises con cui verrà eseguito il peering di ogni nodo su cui è in esecuzione Cilium.

     ```
     apiVersion: cilium.io/v2alpha1
     kind: CiliumBGPClusterConfig
     metadata:
       name: cilium-bgp
     spec:
       nodeSelector:
         matchExpressions:
         - key: eks.amazonaws.com/compute-type
           operator: In
           values:
           - hybrid
       bgpInstances:
       - name: "rack0"
         localASN: NODES_ASN
         peers:
         - name: "onprem-router"
           peerASN: ONPREM_ROUTER_ASN
           peerAddress: ONPREM_ROUTER_IP
           peerConfigRef:
             name: "cilium-peer"
     ```

1. Applica la configurazione del cluster Cilium BGP al cluster.

   ```
   kubectl apply -f cilium-bgp-cluster.yaml
   ```

1. Crea un file denominato `cilium-bgp-peer.yaml` con la risorsa `CiliumBGPPeerConfig` che definisce una configurazione peer BGP. Più peer possono condividere la stessa configurazione e fornire un riferimento alla risorsa comune `CiliumBGPPeerConfig`. Consulta [BGP Peer configuration](https://docs.cilium.io/en/latest/network/bgp-control-plane/bgp-control-plane-v2/#bgp-peer-configuration) nella documentazione di Cilium per un elenco completo delle opzioni di configurazione.

   I valori per le seguenti impostazioni peer Cilium devono corrispondere a quelli del router on-premises con cui si esegue il peering.
   + Configura `holdTimeSeconds` che determina per quanto tempo un peer BGP attende un messaggio keepalive o update prima di dichiarare la sessione inattiva. Il valore predefinito è 90 secondi.
   + Configura `keepAliveTimeSeconds` che determina se un peer BGP è ancora raggiungibile e la sessione BGP è attiva. Il valore predefinito è 30 secondi.
   + Configura `restartTimeSeconds` che determina l’ora in cui il piano di controllo BGP di Cilium dovrebbe ristabilire la sessione BGP dopo un riavvio. Il valore predefinito è 120 secondi.

     ```
     apiVersion: cilium.io/v2alpha1
     kind: CiliumBGPPeerConfig
     metadata:
       name: cilium-peer
     spec:
       timers:
         holdTimeSeconds: 90
         keepAliveTimeSeconds: 30
       gracefulRestart:
         enabled: true
         restartTimeSeconds: 120
       families:
         - afi: ipv4
           safi: unicast
           advertisements:
             matchLabels:
               advertise: "bgp"
     ```

1. Applica la configurazione del peer Cilium BGP al cluster.

   ```
   kubectl apply -f cilium-bgp-peer.yaml
   ```

1. Crea un file denominato `cilium-bgp-advertisement-pods.yaml` con una risorsa `CiliumBGPAdvertisement` per pubblicizzare i pod CIDR sulla rete on-premises.
   + La risorsa `CiliumBGPAdvertisement` viene utilizzata per definire i tipi di pubblicità e gli attributi ad essi associati. L’esempio seguente configura Cilium per pubblicizzare solo i pod CIDR. Vedi gli esempi in [Tipo servizio LoadBalancer](hybrid-nodes-ingress.md#hybrid-nodes-ingress-cilium-loadbalancer) e [Bilanciamento del carico Cilium all’interno del cluster](hybrid-nodes-load-balancing.md#hybrid-nodes-service-lb-cilium) per ulteriori informazioni sulla configurazione di Cilium per pubblicizzare gli indirizzi dei servizi.
   + Ogni nodo ibrido che esegue l’agente Cilium esegue il peering con il router upstream abilitato per BGP. Ogni nodo pubblicizza la gamma di pod CIDR che possiede quando `advertisementType` di Cilium è impostato su `PodCIDR` come nell’esempio seguente. Per ulteriori informazioni, consulta [BGP Advertisements configuration](https://docs.cilium.io/en/stable/network/bgp-control-plane/bgp-control-plane-v2/#bgp-advertisements) nella documentazione di Cilium.

     ```
     apiVersion: cilium.io/v2alpha1
     kind: CiliumBGPAdvertisement
     metadata:
       name: bgp-advertisement-pods
       labels:
         advertise: bgp
     spec:
       advertisements:
         - advertisementType: "PodCIDR"
     ```

1. Applica la configurazione degli annunci pubblicitari BGP di Cilium al cluster.

   ```
   kubectl apply -f cilium-bgp-advertisement-pods.yaml
   ```

1. È possibile confermare che il peering BGP ha funzionato con la [CLI di Cilium](https://docs.cilium.io/en/stable/gettingstarted/k8s-install-default/#install-the-cilium-cli) utilizzando il comando `cilium bgp peers`. Dovresti vedere i valori corretti nell’output per il tuo ambiente e lo stato della sessione come `established`. Per ulteriori informazioni sulla risoluzione dei problemi, consulta [Troubleshooting and Operations Guide](https://docs.cilium.io/en/latest/network/bgp-control-plane/bgp-control-plane/#troubleshooting-and-operation-guide) nella documentazione di Cilium.

   Negli esempi seguenti, ci sono cinque nodi ibridi che eseguono l’agente Cilium e ogni nodo pubblicizza la gamma Pod CIDR di sua proprietà.

   ```
   cilium bgp peers
   ```

   ```
   Node                   Local AS    Peer AS               Peer Address        Session State   Uptime     Family         Received   Advertised
   mi-026d6a261e355fba7   NODES_ASN
                     ONPREM_ROUTER_ASN
                     ONPREM_ROUTER_IP    established     1h18m58s   ipv4/unicast   1          2
   mi-082f73826a163626e   NODES_ASN
                     ONPREM_ROUTER_ASN
                     ONPREM_ROUTER_IP    established     1h19m12s   ipv4/unicast   1          2
   mi-09183e8a3d755abf6   NODES_ASN
                     ONPREM_ROUTER_ASN
                     ONPREM_ROUTER_IP    established     1h18m47s   ipv4/unicast   1          2
   mi-0d78d815980ed202d   NODES_ASN
                     ONPREM_ROUTER_ASN
                     ONPREM_ROUTER_IP    established     1h19m12s   ipv4/unicast   1          2
   mi-0daa253999fe92daa   NODES_ASN
                     ONPREM_ROUTER_ASN
                     ONPREM_ROUTER_IP    established     1h18m58s   ipv4/unicast   1          2
   ```

   ```
   cilium bgp routes
   ```

   ```
   Node                   VRouter       Prefix           NextHop   Age         Attrs
   mi-026d6a261e355fba7   NODES_ASN     10.86.2.0/26     0.0.0.0   1h16m46s   [{Origin: i} {Nexthop: 0.0.0.0}]
   mi-082f73826a163626e   NODES_ASN     10.86.2.192/26   0.0.0.0   1h16m46s   [{Origin: i} {Nexthop: 0.0.0.0}]
   mi-09183e8a3d755abf6   NODES_ASN     10.86.2.64/26    0.0.0.0   1h16m46s   [{Origin: i} {Nexthop: 0.0.0.0}]
   mi-0d78d815980ed202d   NODES_ASN     10.86.2.128/26   0.0.0.0   1h16m46s   [{Origin: i} {Nexthop: 0.0.0.0}]
   mi-0daa253999fe92daa   NODES_ASN     10.86.3.0/26     0.0.0.0   1h16m46s   [{Origin: i} {Nexthop: 0.0.0.0}]
   ```