Apaguei uma sub-rede portátil e agora os balanceadores de carga do meu cluster Classic estão apresentando falhas. Como posso me recuperar?
Clássico
Resolva problemas relacionados à recuperação de sub-redes na rede do seu cluster.
Seu cluster está apresentando erros de rede.
Uma sub-rede móvel foi excluída.
Conclua as etapas a seguir.
-
Para o cluster que está tendo problemas, execute o comando a seguir e anote o ID do cluster..
ibmcloud oc cluster ls -
Liste as sub-redes que o seu cluster está usando Na saída, anote as sub-redes que o seu cluster está usando.
ibmcloud oc subnets --provider PROVIDER | grep CLUSTER-ID -
Liste as sub-redes em sua conta Verifique se alguma sub-rede localizada na etapa 1 está ausente da lista de sub-redes em sua conta. Isso significa que o cluster está usando uma sub-rede que foi excluída, o que está causando a falha do balanceador de carga.
ibmcloud sl subnet listibmcloud sl subnet detail SUBNET-ID -
Para cada sub-rede excluída, recrie-a. Se você precisar de endereços IP públicos para seus ALBs ou LoadBalancers, especifique a ID da VLAN pública dos nós de trabalho; para IPs privados, especifique a ID da VLAN privada dos nós de trabalho.
ibmcloud oc cluster subnet create -c CLUSTER --size 8 --vlan VLAN-ID -
Localize qualquer LoadBalancers que use endereços IP nas sub-redes móveis excluídas, salve-as e, em seguida, exclua-as. Não exclua os LoadBalancers no namespace
openshift-ingress, pois eles serão excluídos posteriormente nessas etapas..- Localize os detalhes do LoadBalancer e anote os endereços IP que eles usam
kubectl get svc -A -o wide | grep LoadBalancer ``` 1. Para cada LoadBalancer não no namespace `openshift-ingress` que usa um endereço IP móvel, salve as configurações em um arquivo YAML. ```sh {: pre} kubectl get svc -o yaml -n LB-NAMESPACE LB-NAME > LB-NAMESPACE.LB-NAME.yaml- Exclua o LoadBalancer..
```sh {: pre} kubectl delete svc -n LB-NAMESPACE LB-NAME ``` -
Conclua as etapas a seguir rapidamente, porque a sub-rede móvel deve ser removida antes que o pod
openshift-ingress-operatorseja reiniciado e recrie os LoadBalancers.- Reduzir a escala do operador do Ingress.
kubectl scale deploy -n openshift-ingress-operator ingress-operator --replicas 0 ``` 1. Exclua o LoadBalancers no namespace `openshift-ingress`. ```sh {: pre} kubectl delete svc -n openshift-ingress LB-NAME ``` 1. Remova as sub-redes móveis de seu cluster. ```sh {: pre} ibmcloud oc cluster subnet detach -c CLUSTER-ID --subnet-id SUBNET-ID ``` -
Aguarde alguns minutos para que o comando de remoção seja concluído e, em seguida, verifique se eles foram removidos revisando o
ibm-cloud-provider-vlan-ip-configConfigMap que armazena as sub-redes e os endereços IP.kubectl get cm -n kube-system ibm-cloud-provider-vlan-ip-config -o yamlPode levar de 5 a 10 minutos para que a separação seja concluída. Enquanto espera, você pode garantir que as novas sub-redes portáteis que você criou para esse cluster também apareçam no site ConfigMap.
-
Verifique se os LoadBalancers no namespace
openshift-ingressforam recriados e, se sim, verifique se os endereços IP usados são das novas sub-redes. Se forem das sub-redes antigas, exclua-as novamente usando o comandokubectl delete svc -n openshift-ingress LOADBALANCER_NAME. -
Após os
openshift-ingressLoadBalancers serem recriados com endereços IP das novas sub-redes, inclua os novos endereços IP no registro DNS.- Listar as entradas de DNS
ibmcloud oc nlb-dns ls -c CLUSTER-ID ``` 1. Na saída, localize as entradas `openshift-ingress` e inclua os novos endereços IP neles usando o comando a seguir. ```sh {: pre} ibmcloud ks nlb-dns add -c CLUSTER-ID --ip NEW-LOADBALANCE-IP --nlb-host INGRESS-DOMAIN-NAME ``` 1. Remova os IPs antigos ```sh {: pre} ibmcloud oc nlb-dns rm classic -c CLUSTER-ID --ip OLD-LOADBALANCER-IP --nlb-host INGRESS-DOMAIN-NAME ``` -
Recrie qualquer
LoadBalancersque não esteja no namespaceopenshift-ingresse que você tenha excluído na etapa 3, utilizando o arquivo YAML que você salvou anteriormente.kubectl apply -f LB-NAMESPACE.LB-NAME.yaml