Ich habe ein portables Subnetz gelöscht, und nun fallen die Load Balancer meines Classic-Clusters aus. Wie kann ich wiederherstellen?
Klassisch
Beheben Sie Probleme bei der Wiederherstellung von Subnetzen in Ihrem Cluster-Netzwerk.
In Ihrem Cluster sind Netzwerkfehler aufgetreten.
Ein portierbares Teilnetz wurde gelöscht.
Führen Sie die folgenden Schritte aus.
-
Führen Sie für den Cluster mit Problemen den folgenden Befehl aus und notieren Sie sich die Cluster-ID.
ibmcloud oc cluster ls -
Listen Sie die Teilnetze auf, die Ihr Cluster verwendet. Notieren Sie sich in der Ausgabe die Teilnetze, die Ihr Cluster verwendet.
ibmcloud oc subnets --provider PROVIDER | grep CLUSTER-ID -
Listen Sie die Teilnetze in Ihrem Konto auf. Überprüfen Sie, ob Teilnetze, die Sie in Schritt 1 gefunden haben, in der Liste der Teilnetze in Ihrem Konto fehlen. Dies bedeutet, dass Ihr Cluster ein Teilnetz verwendet, das gelöscht wurde, wodurch Ihre Lastausgleichsfunktion fehlschlägt.
ibmcloud sl subnet listibmcloud sl subnet detail SUBNET-ID -
Erstellen Sie jedes gelöschte Teilnetz erneut. Wenn Sie öffentliche IP-Adressen für Ihre ALBs oder ' LoadBalancers, benötigen, geben Sie die öffentliche VLAN-ID Ihrer Arbeitsknoten an; für private IPs geben Sie die private VLAN-ID Ihrer Arbeitsknoten an.
ibmcloud oc cluster subnet create -c CLUSTER --size 8 --vlan VLAN-ID -
Suchen Sie alle LoadBalancers, die IP-Adressen in den gelöschten portierbaren Teilnetzen verwenden, speichern Sie sie und löschen Sie sie anschließend. Löschen Sie die LoadBalancers im Namensbereich
openshift-ingressnicht, da diese später in diesen Schritten gelöscht werden.- Suchen Sie Ihre LoadBalancer-Details und notieren Sie sich die verwendeten IP-Adressen.
kubectl get svc -A -o wide | grep LoadBalancer ``` 1. Speichern Sie für jede LoadBalancer, die sich nicht im `openshift-ingress`-Namensbereich befindet und eine portierbare IP-Adresse verwendet, die Einstellungen in einer YAML-Datei. ```sh {: pre} kubectl get svc -o yaml -n LB-NAMESPACE LB-NAME > LB-NAMESPACE.LB-NAME.yaml- Löschen Sie die LoadBalancer.
```sh {: pre} kubectl delete svc -n LB-NAMESPACE LB-NAME ``` -
Führen Sie die folgenden Schritte schnell aus, da die Zuordnung des portierbaren Teilnetzes aufgehoben werden muss, bevor der
openshift-ingress-operator-Pod erneut gestartet und die LoadBalancerserneut erstellt wird.- Den Ingress-Operator herunterskalieren.
kubectl scale deploy -n openshift-ingress-operator ingress-operator --replicas 0 ``` 1. Löschen Sie LoadBalancers im Namensbereich `openshift-ingress`. ```sh {: pre} kubectl delete svc -n openshift-ingress LB-NAME ``` 1. Hängen Sie die portierbaren Teilnetze von Ihrem Cluster ab. ```sh {: pre} ibmcloud oc cluster subnet detach -c CLUSTER-ID --subnet-id SUBNET-ID ``` -
Warten Sie einige Minuten, bis der Befehl zum Abhängen abgeschlossen ist, und überprüfen Sie dann, ob die Zuordnung aufgehoben wurde, indem Sie die
ibm-cloud-provider-vlan-ip-configConfigMap überprüfen, in der die Teilnetze und IP-Adressen gespeichert sind.kubectl get cm -n kube-system ibm-cloud-provider-vlan-ip-config -o yamlEs kann 5 bis 10 Minuten dauern, bis die Trennung abgeschlossen ist. Während Sie warten, können Sie sicherstellen, dass die neuen portablen Subnetze, die Sie für diesen Cluster erstellt haben, auch im ConfigMap erscheinen.
-
Prüfen Sie, ob die LoadBalancers im
openshift-ingress-Namensbereich neu erstellt wurden. Ist dies der Fall, überprüfen Sie, ob die verwendeten IP-Adressen aus den neuen Teilnetzen stammen. Wenn sie aus den alten Teilnetzen stammen, löschen Sie sie erneut mit dem Befehlkubectl delete svc -n openshift-ingress LOADBALANCER_NAME. -
Nachdem die
openshift-ingressLoadBalancers mit IP-Adressen aus den neuen Teilnetzen erneut erstellt wurden, fügen Sie die neuen IP-Adressen zum DNS-Datensatz hinzu.- Listet die DNS-Einträge auf.
ibmcloud oc nlb-dns ls -c CLUSTER-ID ``` 1. Suchen Sie in der Ausgabe die `openshift-ingress`-Einträge und fügen Sie ihnen die neue (n) IP-Adresse (n) mit dem folgenden Befehl hinzu. ```sh {: pre} ibmcloud ks nlb-dns add -c CLUSTER-ID --ip NEW-LOADBALANCE-IP --nlb-host INGRESS-DOMAIN-NAME ``` 1. Entfernen Sie die alten IPs. ```sh {: pre} ibmcloud oc nlb-dns rm classic -c CLUSTER-ID --ip OLD-LOADBALANCER-IP --nlb-host INGRESS-DOMAIN-NAME ``` -
Erstellen Sie alle „ LoadBalancers “-Objekte, die nicht zum Namespace „
openshift-ingress“ gehören und die Sie in Schritt 3 gelöscht haben, mithilfe der zuvor gespeicherten YAML-Datei neu.kubectl apply -f LB-NAMESPACE.LB-NAME.yaml