Sono disponibili due metodi per configurare determinate risorse di rete per NCP. In questa sezione viene descritta la configurazione delle risorse in modalità Criterio.

Nel file di configurazione di NCP ncp.ini è necessario specificare le risorse di NSX utilizzando i rispettivi ID. Il nome e l'ID di una risorsa sono in genere uguali. Per essere completamente sicuri, nell'interfaccia utente Web di NSX Manager fare clic sull'icona con 3 punti che consente di visualizzare le opzioni per una risorsa e selezionare Copia percorso negli Appunti. Incollare il percorso in un'applicazione come Blocco note. L'ultima parte del percorso è l'ID della risorsa.

Gateway e segmento

  1. Creare un segmento per i nodi Kubernetes, ad esempio Segment1.
  2. Creare un gateway di livello 0, ad esempio T0GW1. Impostare l'opzione top_tier_router nella sezione [nsx_v3] di ncp.ini con l'ID del gateway se non si dispone di una topologia di livello 1 condivisa. Per informazioni sulla configurazione di una topologia di livello 1 condivisa, vedere di seguito. Impostare la modalità HA su Attivo-Standby se si intende configurare regole NAT in questo gateway. In caso contrario, impostarla su Attivo-Attivo. Abilitare la ridistribuzione della route. Configurare inoltre il gateway per l'accesso alla rete esterna.
  3. Creare un gateway di livello 1, ad esempio T1GW1. Connettere questo gateway al gateway di livello 0.
  4. Configurare l'annuncio del router per T1GW1. È necessario abilitare almeno le route connesse a NSX e NAT.
  5. Connettere T1GW1 a Segment1. Assicurarsi che l'indirizzo IP della porta del gateway non sia in conflitto con gli indirizzi IP dei nodi Kubernetes.
  6. Per ogni macchina virtuale del nodo, assicurarsi che la vNIC per il traffico del container sia collegata al commutatore logico creato automaticamente. È disponibile nella scheda Rete con lo stesso nome del segmento, ovvero Segment1.
NCP deve conoscere l'ID VIF della vNIC. È possibile visualizzare le porte di Segment1 che vengono create automaticamente passando a Rete > Segmenti. In queste porte è possibile modificare solo la proprietà tag. Queste porte devono includere i tag seguenti. Per un tag, specificare il nome del nodo. Per l'altro tag, specificare il nome del cluster. Per l'ambito, specificare il valore appropriato come indicato di seguito.
Tag Ambito
Nome nodo ncp/node_name
Nome cluster ncp/cluster
Questi tag vengono propagati automaticamente alle porte del commutatore logico corrispondente. Se il nome del nodo cambia, è necessario aggiornare il tag. Per recuperare il nome del nodo, è possibile eseguire il comando seguente:
kubectl get nodes

Se si desidera estendere il cluster Kubernetes mentre NCP è in esecuzione, ad esempio aggiungendo altri nodi al cluster, è necessario aggiungere i tag alle porte del commutatore corrispondente prima di eseguire "kubeadm join". Se si dimentica di aggiungere i tag prima di eseguire "kubeadm join", i nuovi nodi non avranno connettività. In questo caso, sarà necessario aggiungere i tag e riavviare NCP per risolvere il problema.

Per identificare la porta del commutatore per la macchina virtuale di un nodo, è possibile effettuare la seguente chiamata API:
/api/v1/fabric/virtual-machines
Nella risposta cercare la macchina virtuale del nodo e recuperare il valore dell'attributo ''external_id''. Oppure è possibile effettuare la seguente chiamata API:
/api/v1/search -G --data-urlencode "query=(resource_type:VirtualMachine AND display_name:<node_vm_name>)"
Dopo aver configurato l'ID esterno, è possibile utilizzarlo per recuperare i VIF per la macchina virtuale con la seguente API. Si tenga presente che i VIF non vengono popolati finché la macchina virtuale non viene avviata.
/api/v1/search -G --data-urlencode \
"query=(resource_type:VirtualNetworkInterface AND external_id:<node_vm_ext_id> AND \
_exists_:lport_attachment_id)"

L'attributo lport_attachment_id è l'ID VIF per la macchina virtuale del nodo. È quindi possibile trovare la porta logica per questo VIF e aggiungere i tag necessari.

Blocchi di IP per i pod Kubernetes

Passare a Rete > Gestione indirizzi IP > Pool di indirizzi IP > Blocchi indirizzi IP per creare uno o più blocchi di IP. Specificare il blocco di IP in formato CIDR. In container_ip_blocks nella sezione [nsx_v3] di ncp.ini immettere gli UUID dei blocchi di IP. Se si desidera che NCP crei automaticamente blocchi di IP, è possibile impostare nell'opzione container_ip_blocks un elenco di indirizzi separati da virgola in formato CIDR.

Per impostazione predefinita, i progetti condividono i blocchi di IP specificati in container_ip_blocks. È possibile creare blocchi di IP in modo specifico per gli spazi dei nomi non SNAT (per Kubernetes) o i cluster (per TAS) impostando l'opzione no_snat_ip_blocks nella sezione [nsx_v3] di ncp.ini.

Se si creano blocchi di IP non SNAT mentre NCP è in esecuzione, è necessario riavviare NCP. In caso contrario, NCP continuerà a utilizzare i blocchi di IP condivisi finché non verranno esauriti.

Quando si crea un blocco di IP, il prefisso non può essere maggiore del valore dell'opzione subnet_prefix nel file di configurazione di NCP ncp.ini. Il valore predefinito è 24.

Non modificare il blocco di IP se NCP ha avviato l'allocazione degli indirizzi IP da tale blocco. Se si desidera utilizzare un blocco diverso, assicurarsi che NCP non abbia allocato alcun indirizzo dal blocco.

Pool di IP esterni

Un pool di IP esterni viene utilizzato per l'allocazione degli indirizzi IP che verranno usati per la conversione degli IP pod mediante le regole SNAT e per l'esposizione dei controller in ingresso e dei servizi di tipo LoadBalancer utilizzando le regole SNAT/DNAT, come gli IP mobili di OpenStack. Questi indirizzi IP vengono denominati anche IP esterni.

Passare a Rete > Gestione indirizzi IP > Pool di indirizzi IP per creare un pool di IP. Immettere nell'opzione external_ip_pools nella sezione [nsx_v3] di ncp.ini gli UUID dei pool di IP. Se si desidera che NCP crei automaticamente pool di IP, è possibile immettere nell'opzione external_ip_pools un elenco di indirizzi separati da virgola in formato CIDR o intervalli di IP.

Più cluster Kubernetes utilizzano lo stesso pool di IP esterni. Ogni istanza di NCP utilizza un sottoinsieme di questo pool per il cluster Kubernetes che gestisce. Per impostazione predefinita, verrà utilizzato lo stesso prefisso di subnet per le subnet del pod. Per utilizzare dimensioni di subnet diverse, aggiornare l'opzione external_subnet_prefix nella sezione [nsx_v3] di ncp.ini.

È possibile passare a un pool di IP diverso modificando il file di configurazione e riavviando NCP.

Non modificare il pool di IP se NCP ha avviato l'allocazione degli indirizzi IP da tale pool. Se si desidera utilizzare un pool diverso, assicurarsi che NCP non abbia allocato alcun indirizzo dal pool.

Topologia di livello 1 condivisa

Per abilitare una topologia di livello 1 condivisa, eseguire le configurazioni seguenti:
  • Impostare l'opzione top_tier_router sull'ID di un gateway di livello 1. Connettere il gateway di livello 1 a un gateway di livello 0 per connessioni esterne.
  • Se è abilitato il traffico SNAT per pod, modificare l'uplink del segmento per i nodi Kubernetes impostandolo sullo stesso gateway di livello 0 o di livello 1 impostato in top_tier_router.
  • Impostare l'opzione single_tier_topology su True. Il valore predefinito è False.
  • Se si desidera che NCP configuri automaticamente il router di livello superiore come gateway di livello 1, annullare l'impostazione dell'opzione top_tier_router e impostare l'opzione tier0_gateway. NCP creerà un gateway di livello 1 e ne eseguirà l'uplink al gateway di livello 0 specificato nell'opzione tier0_gateway.

Nota: dopo aver impostato l'opzione top_tier_router e aver creato alcuni spazi dei nomi, non è possibile aggiornare top_tier_router impostando un valore diverso e riavviare NCP. Questa operazione non è supportata.