He eliminado una subred portátil y ahora los equilibradores de carga de mi clúster Classic están fallando. ¿Cómo puedo recuperar?
Clásico
Soluciona los problemas que surjan al recuperar subredes en la red de tu clúster.
Su cluster está experimentando errores de red.
Se ha suprimido una subred portátil.
Realice los siguientes pasos.
-
Para el clúster que está experimentando problemas, ejecute el mandato siguiente y anote el ID de clúster.
ibmcloud oc cluster ls -
Liste las subredes que utiliza el clúster. En la salida, anote las subredes que utiliza el clúster.
ibmcloud oc subnets --provider PROVIDER | grep CLUSTER-ID -
Liste las subredes de su cuenta. Compruebe si faltan las subredes que ha encontrado en el paso 1 en la lista de subredes de su cuenta. Esto significa que el clúster está utilizando una subred que se ha suprimido, lo que hace que el equilibrador de carga falle.
ibmcloud sl subnet listibmcloud sl subnet detail SUBNET-ID -
Para cada subred que se ha suprimido, vuelva a crearla. Si necesita direcciones IP públicas para sus ALBs o LoadBalancers, especifique el ID de la VLAN pública de sus nodos trabajadores; para IPs privadas especifique el ID de la VLAN privada de sus nodos trabajadores.
ibmcloud oc cluster subnet create -c CLUSTER --size 8 --vlan VLAN-ID -
Busque cualquier LoadBalancers que utilice direcciones IP en las subredes portátiles suprimidas, guárdelas y, a continuación, suprímalas. No suprima los LoadBalancers en el espacio de nombres
openshift-ingress, ya que se suprimen más adelante en estos pasos.- Busque los detalles de LoadBalancer y anote las direcciones IP que utilizan.
kubectl get svc -A -o wide | grep LoadBalancer ``` 1. Para cada LoadBalancer que no esté en el espacio de nombres de `openshift-ingress` que utilice una dirección IP portátil, guarde los valores en un archivo YAML. ```sh {: pre} kubectl get svc -o yaml -n LB-NAMESPACE LB-NAME > LB-NAMESPACE.LB-NAME.yaml- Suprima LoadBalancer.
```sh {: pre} kubectl delete svc -n LB-NAMESPACE LB-NAME ``` -
Complete los pasos siguientes rápidamente, porque la subred portátil debe desconectarse antes de que se reinicie el pod de
openshift-ingress-operatory vuelva a crear los LoadBalancers.- Reducir la escala del operador de Ingress.
kubectl scale deploy -n openshift-ingress-operator ingress-operator --replicas 0 ``` 1. Suprima los LoadBalancers en el espacio de nombres `openshift-ingress`. ```sh {: pre} kubectl delete svc -n openshift-ingress LB-NAME ``` 1. Desconecte las subredes portátiles del clúster. ```sh {: pre} ibmcloud oc cluster subnet detach -c CLUSTER-ID --subnet-id SUBNET-ID ``` -
Espere unos minutos a que finalice el mandato detach y, a continuación, compruebe que se han desconectado revisando el
ibm-cloud-provider-vlan-ip-configConfigMap que almacena las subredes y las direcciones IP.kubectl get cm -n kube-system ibm-cloud-provider-vlan-ip-config -o yamlLa desconexión puede tardar entre 5 y 10 minutos en completarse. Mientras espera, puede asegurarse de que las nuevas subredes portátiles que ha creado para este clúster también aparecen en ConfigMap.
-
Compruebe si los LoadBalancers del espacio de nombres
openshift-ingressse han vuelto a crear y, si es así, compruebe si las direcciones IP utilizadas proceden de las nuevas subredes. Si son de las subredes antiguas, vuélvalo a suprimir utilizando el mandatokubectl delete svc -n openshift-ingress LOADBALANCER_NAME. -
Después de que los
openshift-ingressLoadBalancers vuelvan a crear con direcciones IP de las nuevas subredes, añada las nuevas direcciones IP al registro DNS.- Liste las entradas DNS.
ibmcloud oc nlb-dns ls -c CLUSTER-ID ``` 1. En la salida, busque las entradas `openshift-ingress` y añada las nuevas direcciones IP a las mismas utilizando el mandato siguiente. ```sh {: pre} ibmcloud ks nlb-dns add -c CLUSTER-ID --ip NEW-LOADBALANCE-IP --nlb-host INGRESS-DOMAIN-NAME ``` 1. Elimine las IP antiguas. ```sh {: pre} ibmcloud oc nlb-dns rm classic -c CLUSTER-ID --ip OLD-LOADBALANCER-IP --nlb-host INGRESS-DOMAIN-NAME ``` -
Vuelve a crear cualquier objeto « LoadBalancers » que no pertenezca al espacio de nombres «
openshift-ingress» y que hayas eliminado en el paso 3, utilizando el archivo YAML que guardaste anteriormente.kubectl apply -f LB-NAMESPACE.LB-NAME.yaml