Isolamento degli NLB classici sui nodi di lavoro edge
Classico
Nei passaggi seguenti, si aggiunge l'etichetta " dedicated=edge " ai nodi di lavoro su ciascuna VLAN pubblica o privata del cluster. Questa etichetta viene utilizzata per distribuire i tuoi sistemi di bilanciamento del carico
di rete (NLB) solo su tali nodi di lavoro. È possibile distribuire NLB sia pubblici che privati sui nodi di lavoro periferici.
Se si intende utilizzare un pool di worker esistente, tale pool deve coprire tutte le zone del cluster e disporre di almeno due nodi worker per zona. Puoi etichettare il pool di lavoratori con dedicated=edge utilizzando il ibmcloud oc worker-pool label set comando.
Prima di iniziare
- Assicurati di disporre dei seguenti ruoli IBM Cloud IAM:
- Qualsiasi ruolo di accesso alla piattaforma per il cluster
- Ruolo di accesso al servizio “Autore” o “Amministratore” per tutti gli spazi dei nomi
- Accedi al tuo cluster Red Hat OpenShift.
-
Crea un pool di lavoratori con l'etichetta
dedicated=edgeoppure aggiungi l'etichetta a uno dei tuoi pool di lavoratori esistenti.- Per creare un pool di lavoratori è possibile utilizzare il file
worker-pool create classiccomando.
ibmcloud oc worker-pool create classic --name POOL_NAME --cluster CLUSTER --flavor FLAVOR --size-per-zone WORKERS_PER_ZONE --hardware ISOLATION --label dedicated=edge ``` * Per etichettare un pool di nodi di lavoro esistente, puoi utilizzare il file `worker-pool label set` [comando](/docs/openshift?topic=openshift-kubernetes-service-cli#worker-pool-label-set-cli). ```sh {: pre} ibmcloud oc worker-pool label set --cluster CLUSTER --worker-pool POOL --label dedicated=edge ``` - Per creare un pool di lavoratori è possibile utilizzare il file
-
Verifica che il pool di nodi di lavoro e i nodi di lavoro abbiano l'etichetta
dedicated=edge.- Per controllare il pool di nodi di lavoro, esegui il file
getcomando.
ibmcloud oc worker-pool get --cluster CLUSTER_NAME_OR_ID --worker-pool WORKER_POOL_NAME_OR_ID ``` * Per controllare i singoli nodi di lavoro, esamina il campo **Labels** dell'output del seguente comando. ```sh {: pre} oc describe node <worker_node_private_IP> ``` - Per controllare il pool di nodi di lavoro, esegui il file
-
Recupera tutti gli NLB presenti nel cluster. Nell'output, prendere nota dello spazio dei nomi e del nome di ciascun bilanciatore di carico.
oc get services --all-namespaces | grep LoadBalancerOutput di esempio:
PORT(S) AGE router-default 80:31228/TCP,443:31655/TCP 4h54m LoadBalancer 172.21.71.79 169.46.17.2 -
Utilizzando l'output del passaggio precedente, eseguire il seguente comando per ciascun NLB. Questo comando esegue una nuova distribuzione dell'NLB su un nodo worker periferico.
oc get service -n <namespace> <name> -o yaml | oc apply -f -Output di esempio:
service "router-default" configured -
Per verificare che i carichi di lavoro di rete siano limitati ai nodi periferici, assicurarsi che i bilanciatori di carico siano assegnati ai nodi periferici e non a nodi non periferici.
- Pod NLB
- Conferma che i pod NLB siano distribuiti ai nodi edge. Cerca l'indirizzo IP esterno del servizio di bilanciamento del carico indicato nell'output del passaggio precedente. Sostituisci i punti (
.) con trattini (-). Nell'esempio seguente per ilcrc81nk5l10gfhdql4i3qg, l'NLB ha un indirizzo IP esterno di169.46.17.2.Output di esempio:oc describe nodes -l dedicated=edge | grep "169-46-17-2"ibm-system ibm-cloud-provider-ip-169-46-17-2-76fcb4965d-wz6dg 5m (0%) 0 (0%) 10Mi (0%) 0 (0%) ibm-system ibm-cloud-provider-ip-169-46-17-2-76fcb4965d-2z64r 5m (0%) 0 (0%) 10Mi (0%) 0 (0%) - Conferma che nessun pod NLB sia distribuito ai nodi non edge. Esempio relativo al NLB di
public-crc81nk5l10gfhdql4i3qg-nlb1, che ha un indirizzo IP esterno pari a169.46.17.2:oc describe nodes -l dedicated!=edge | grep "169-46-17-2"- Se i pod NLB vengono distribuiti correttamente ai nodi edge, non viene restituito alcun pod NLB. I tuoi NLB vengono ripianificati correttamente solo sui nodi di lavoro edge.
- Se i pod NLB vengono restituiti, vai al passo successivo.
- Conferma che i pod NLB siano distribuiti ai nodi edge. Cerca l'indirizzo IP esterno del servizio di bilanciamento del carico indicato nell'output del passaggio precedente. Sostituisci i punti (
- Pod NLB
-
Se i pod NLB sono ancora distribuiti su nodi non periferici, è possibile eliminarli in modo che vengano ridistribuiti sui nodi periferici.
Eliminare un solo pod alla volta e verificare che il pod sia stato riprogrammato su un nodo periferico prima di eliminare altri pod.
- Elimina un pod. Ad esempio, se uno dei pod NLB di
public-crc81nk5l10gfhdql4i3qg-alb1non fosse stato pianificato su un nodo periferico:
oc delete pod ibm-cloud-provider-ip-169-46-17-2-76fcb4965d-wz6dg -n ibm-system ``` 2. Verifica che il pod venga ripianificato su un nodo di lavoro edge. La ripianificazione è automatica, ma potrebbe richiedere alcuni minuti. Esempio relativo al NLB di `public-crc81nk5l10gfhdql4i3qg-alb1`, che ha un indirizzo IP esterno pari a `169.46.17.2`: ```sh {: pre} oc describe nodes -l dedicated=edge | grep "169-46-17-2" ``` Output di esempio: ```sh {: screen} ibm-system ibm-cloud-provider-ip-169-46-17-2-76fcb4965d-wz6dg 5m (0%) 0 (0%) 10Mi (0%) 0 (0%) ibm-system ibm-cloud-provider-ip-169-46-17-2-76fcb4965d-2z64r 5m (0%) 0 (0%) 10Mi (0%) 0 (0%) ``` - Elimina un pod. Ad esempio, se uno dei pod NLB di
Hai assegnato ai nodi di lavoro di un pool di lavoro l'etichetta " dedicated=edge " e hai ridistribuito tutti gli NLB esistenti sui nodi periferici. Anche tutti gli NLB aggiunti successivamente al cluster vengono distribuiti
su un nodo periferico del pool di worker periferici. Successivamente, impedisci l'esecuzione di altri carichi di lavoro sui nodi di lavoro edge e blocca il traffico in entrata verso le NodePort sui nodi di lavoro.