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

Nel file di configurazione di NCP ncp.ini è possibile specificare le risorse di NSX utilizzando i loro UUID o nomi.

Router logici e commutatori logici

  1. Creare un commutatore logico per i nodi Kubernetes, ad esempio LS1.
  2. Creare un router logico di livello 0, ad esempio T0LR1. Impostare l'opzione tier0_router nella sezione [nsx_v3] di ncp.ini con l'ID del router logico 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 router logico. In caso contrario, impostarla su Attivo-Attivo. Abilitare la ridistribuzione della route. Configurare inoltre questo router per l'accesso alla rete esterna.
  3. Creare un router logico di livello 1, ad esempio T1LR1. Connettere questo router logico al router logico di livello 0.
  4. Configurare l'annuncio del router per T1LR1. È necessario abilitare almeno le route connesse a NSX e NAT.
  5. Connettere T1LR1 a LS1. Assicurarsi che l'indirizzo IP della porta del router logico 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 commutatore logico, ovvero LS1.
NCP deve conoscere l'ID VIF della vNIC. Le porte del commutatore logico corrispondenti devono avere i due 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
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 > Pool di 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.

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.

NCP allocherà subnet aggiuntive per uno spazio dei nomi se la subnet originariamente allocata è esaurita.

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 > Pool di indirizzi IP > Pool di 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.

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.

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 router logico di livello 0 o di un router logico di livello 1. Se si tratta di un router logico di livello 1, è necessario connetterlo a un router logico di livello 0 per le connessioni esterne. Questa opzione sostituisce l'opzione tier0_router.
  • Se il traffico SNAT per pod è abilitato, disconnettere T1LR1 da LS1 (il commutatore logico per i nodi Kubernetes) e connettere a LS1 il router di livello 0 o 1 impostato in top_tier_router.
  • Impostare l'opzione single_tier_topology su True. Il valore predefinito è False.

(Facoltativo) (Solo per Kubernetes) Sezioni segnaposto del firewall

Per consentire all'amministratore di creare regole del firewall che non interferiscano con le sezioni del firewall create da NCP in base ai criteri di rete, passare a Sicurezza > Firewall distribuito > Generale e creare due sezioni del firewall.

Specificare le sezioni segnaposto del firewall impostando le opzioni bottom_firewall_section_marker e top_firewall_section_marker nella sezione [nsx_v3] di ncp.ini.

La sezione inferiore del firewall deve trovarsi sotto la sezione superiore del firewall. Dopo la creazione di queste sezioni del firewall, tutte le sezioni del firewall create da NCP per l'isolamento verranno create sopra la sezione inferiore del firewall e tutte le sezioni del firewall create da NCP per i criteri verranno create sotto la sezione superiore del firewall. Se queste sezioni segnaposto non vengono create, tutte le regole di isolamento verranno create nella parte inferiore e tutte le sezioni dei criteri verranno create nella parte superiore. Più sezioni segnaposto del firewall con lo stesso valore per cluster non sono supportate e causeranno un errore.