J'ai supprimé un sous-réseau portable et, depuis, les équilibreurs de charge de mon cluster Classic ne fonctionnent plus. Comment puis-je récupérer?
Classique
Dépannage des problèmes liés à la restauration des sous-réseaux dans le réseau de votre cluster.
Votre cluster rencontre des erreurs de réseau.
Un sous-réseau portable a été supprimé.
Procédez comme suit.
-
Pour le cluster qui rencontre des problèmes, exécutez la commande suivante et notez l'ID du cluster.
ibmcloud oc cluster ls -
Répertoriez les sous-réseaux utilisés par votre cluster. Dans la sortie, notez les sous-réseaux utilisés par votre cluster.
ibmcloud oc subnets --provider PROVIDER | grep CLUSTER-ID -
Répertoriez les sous-réseaux de votre compte. Vérifiez si des sous-réseaux que vous avez trouvés à l'étape 1 sont manquants dans la liste des sous-réseaux de votre compte. Cela signifie que votre cluster utilise un sous-réseau qui a été supprimé, ce qui entraîne l'échec de votre équilibreur de charge.
ibmcloud sl subnet listibmcloud sl subnet detail SUBNET-ID -
Pour chaque sous-réseau qui a été supprimé, recréez-le. Si vous avez besoin d'adresses IP publiques pour vos ALB ou LoadBalancers, indiquez l'ID VLAN public de vos nœuds de travail ; pour les IP privées, indiquez l'ID VLAN privé de vos nœuds de travail.
ibmcloud oc cluster subnet create -c CLUSTER --size 8 --vlan VLAN-ID -
Recherchez les LoadBalancers qui utilisent des adresses IP dans les sous-réseaux portables supprimés, sauvegardez-les, puis supprimez-les. Ne supprimez pas les LoadBalancers dans l'espace de nom
openshift-ingress, car ils sont supprimés ultérieurement dans ces étapes.- Recherchez les détails de votre LoadBalancer et notez les adresses IP qu'ils utilisent.
kubectl get svc -A -o wide | grep LoadBalancer ``` 1. Pour chaque LoadBalancer qui ne se trouve pas dans l'espace de nom `openshift-ingress` qui utilise une adresse IP portable, sauvegardez les paramètres dans un fichier YAML. ```sh {: pre} kubectl get svc -o yaml -n LB-NAMESPACE LB-NAME > LB-NAMESPACE.LB-NAME.yaml- Supprimez l' LoadBalancer.
```sh {: pre} kubectl delete svc -n LB-NAMESPACE LB-NAME ``` -
Effectuez les étapes suivantes rapidement, car le sous-réseau portable doit être déconnecté avant que le pod
openshift-ingress-operatorne redémarre et ne recrée les LoadBalancers.- Réduire l'opérateur Ingress.
kubectl scale deploy -n openshift-ingress-operator ingress-operator --replicas 0 ``` 1. Supprimez les LoadBalancers dans l'espace de nom `openshift-ingress`. ```sh {: pre} kubectl delete svc -n openshift-ingress LB-NAME ``` 1. Déconnectez les sous-réseaux portables de votre cluster. ```sh {: pre} ibmcloud oc cluster subnet detach -c CLUSTER-ID --subnet-id SUBNET-ID ``` -
Attendez quelques minutes que la commande de déconnexion se termine, puis vérifiez qu'elle a été déconnectée en consultant la
ibm-cloud-provider-vlan-ip-configmappe de configuration ConfigMap qui stocke les sous-réseaux et les adresses IP.kubectl get cm -n kube-system ibm-cloud-provider-vlan-ip-config -o yamlLe processus de détachement peut prendre entre 5 et 10 minutes. En attendant, vous pouvez vous assurer que les nouveaux sous-réseaux portables que vous avez créés pour ce cluster apparaissent également sur le site ConfigMap.
-
Vérifiez si les LoadBalancers de l'espace de nom
openshift-ingressont été recréés et, si tel est le cas, vérifiez si les adresses IP utilisées proviennent des nouveaux sous-réseaux. S'ils proviennent des anciens sous-réseaux, supprimez-les à nouveau à l'aide de la commandekubectl delete svc -n openshift-ingress LOADBALANCER_NAME. -
Après avoir recréé les
openshift-ingressLoadBalancers avec les adresses IP des nouveaux sous-réseaux, ajoutez les nouvelles adresses IP à l'enregistrement DNS.- Répertoriez les entrées DNS.
ibmcloud oc nlb-dns ls -c CLUSTER-ID ``` 1. Dans la sortie, recherchez les entrées `openshift-ingress` et ajoutez-leur les nouvelles adresses IP à l'aide de la commande suivante. ```sh {: pre} ibmcloud ks nlb-dns add -c CLUSTER-ID --ip NEW-LOADBALANCE-IP --nlb-host INGRESS-DOMAIN-NAME ``` 1. Supprimez les anciennes adresses IP. ```sh {: pre} ibmcloud oc nlb-dns rm classic -c CLUSTER-ID --ip OLD-LOADBALANCER-IP --nlb-host INGRESS-DOMAIN-NAME ``` -
Recréez toutes les instances « LoadBalancers » ne figurant pas dans l'espace de noms «
openshift-ingress» que vous avez supprimées à l'étape 3, à l'aide du fichier YAML que vous avez enregistré précédemment.kubectl apply -f LB-NAMESPACE.LB-NAME.yaml