Ho eliminato una sottorete portatile e ora i bilanciatori di carico del mio cluster Classic non funzionano più. Come posso recuperare?
Classico
Risolvi i problemi relativi al recupero delle sottoreti nella rete del cluster.
Il cluster sta riscontrando errori di rete.
È stata eliminata una sottorete portatile.
Completare la seguente procedura.
-
Per il cluster che sta riscontrando dei problemi, esegui questo comando e prendi nota dell'ID cluster.
ibmcloud oc cluster ls -
Elenca le sottoreti utilizzate dal cluster. Nell'output, prendi nota delle sottoreti che il tuo cluster utilizza.
ibmcloud oc subnets --provider PROVIDER | grep CLUSTER-ID -
Elenca le sottoreti nel tuo account. Controlla se le sottoreti che hai trovato nel passo 1 mancano dall'elenco di sottoreti nel tuo account. Ciò significa che il tuo cluster sta utilizzando una sottorete che è stata eliminata, che sta causando il malfunzionamento del tuo programma di bilanciamento del carico.
ibmcloud sl subnet listibmcloud sl subnet detail SUBNET-ID -
Per ogni sottorete che è stata eliminata, ricrearla. Se avete bisogno di indirizzi IP pubblici per i vostri ALB o LoadBalancers, specificate l'ID VLAN pubblico dei vostri nodi worker; per gli IP privati, specificate l'ID VLAN privato dei vostri nodi worker.
ibmcloud oc cluster subnet create -c CLUSTER --size 8 --vlan VLAN-ID -
Trova tutti i LoadBalancers che utilizzano gli indirizzi IP nelle sottoreti portatili eliminate, salvali e quindi eliminali. Non eliminare i LoadBalancers nello spazio dei nomi
openshift-ingress, poiché vengono eliminati più avanti in questa procedura.- Trova i tuoi dettagli LoadBalancer e prendi nota degli indirizzi IP che utilizzano.
kubectl get svc -A -o wide | grep LoadBalancer ``` 1. Per ogni LoadBalancer non presente nello spazio dei nomi `openshift-ingress` che utilizza un indirizzo IP portatile, salva le impostazioni in un file YAML. ```sh {: pre} kubectl get svc -o yaml -n LB-NAMESPACE LB-NAME > LB-NAMESPACE.LB-NAME.yaml- Elimina LoadBalancer.
```sh {: pre} kubectl delete svc -n LB-NAMESPACE LB-NAME ``` -
Completa rapidamente i seguenti passi, perché la sottorete portatile deve essere scollegata prima che il pod
openshift-ingress-operatorriavvii e ricrea i LoadBalancers.- Ridimensionare l'operatore Ingress.
kubectl scale deploy -n openshift-ingress-operator ingress-operator --replicas 0 ``` 1. Elimina i LoadBalancers nello spazio dei nomi `openshift-ingress`. ```sh {: pre} kubectl delete svc -n openshift-ingress LB-NAME ``` 1. Scollega le sottoreti portatili dal tuo cluster. ```sh {: pre} ibmcloud oc cluster subnet detach -c CLUSTER-ID --subnet-id SUBNET-ID ``` -
Attendere alcuni minuti per il completamento del comando di scollegamento, quindi verificare che siano stati scollegati riesaminando la
ibm-cloud-provider-vlan-ip-configConfigMap che memorizza le sottoreti e gli indirizzi IP.kubectl get cm -n kube-system ibm-cloud-provider-vlan-ip-config -o yamlIl processo di distacco potrebbe richiedere dai 5 ai 10 minuti. Nell'attesa, ci si può assicurare che le nuove sottoreti portatili create per questo cluster appaiano anche nel sito ConfigMap.
-
Controlla se i LoadBalancers nello spazio dei nomi
openshift-ingresssono stati ricreati e, in caso affermativo, controlla se gli indirizzi IP utilizzati provengono dalle nuove sottoreti. Se provengono dalle vecchie sottoreti, eliminarle di nuovo utilizzando il comandokubectl delete svc -n openshift-ingress LOADBALANCER_NAME. -
Dopo che i
openshift-ingressLoadBalancers hanno ricreato con gli indirizzi IP dalle nuove sottoreti, aggiungi i nuovi indirizzi IP al record DNS.- Elencare le voci DNS.
ibmcloud oc nlb-dns ls -c CLUSTER-ID ``` 1. Nell'output, trova le voci `openshift-ingress` e aggiungi i nuovi indirizzi IP utilizzando il seguente comando. ```sh {: pre} ibmcloud ks nlb-dns add -c CLUSTER-ID --ip NEW-LOADBALANCE-IP --nlb-host INGRESS-DOMAIN-NAME ``` 1. Rimuovere i vecchi IP. ```sh {: pre} ibmcloud oc nlb-dns rm classic -c CLUSTER-ID --ip OLD-LOADBALANCER-IP --nlb-host INGRESS-DOMAIN-NAME ``` -
Ricrea qualsiasi file
LoadBalancersnon appartenente allo spazio dei nomiopenshift-ingressche hai eliminato al punto 3, utilizzando il file YAML che hai salvato in precedenza.kubectl apply -f LB-NAMESPACE.LB-NAME.yaml