Clusters VPC: por que o balanceador de carga VPC para o controlador de ingresso roteia apenas para uma zona?
Nuvem privada virtual
Você cria um cluster VPC multizona. No entanto, ao executar ibmcloud is load-balancers para localizar o balanceador de carga VPC que expõe o controlador de ingresso, a sub-rede VPC para apenas uma zona em seu cluster é listada em
vez das sub-redes para todas as zonas em seu cluster. Na saída, procure o nome do balanceador de carga VPC que começa com kube-crtmgr-<cluster_ID>.
ID Name Family Subnets Is public Provision status Operating status Resource group
r006-d044af9b-92bf-4047-8f77-a7b86efcb923 kube-bsaucubd07dhl66e4tgg-1f4f408ce6d2485499bcbdec0fa2d306 Application mysubnet-us-south-3 true active online default
Quando você cria um cluster Red Hat OpenShift na infraestrutura VPC na CLI, o cluster é criado inicialmente com nós de trabalho em apenas uma zona. Em seguida, você torna o cluster multizona incluindo manualmente as zonas em seus conjuntos de
trabalhadores com o comando ibmcloud oc zone add vpc-gen2. Atualmente, ao incluir zonas em seu cluster, o controlador do Ingress não é atualizado com as sub-redes VPC para as novas zonas e não roteia as solicitações para apps nas
novas zonas.
Reinicie o controlador de ingresso para que um novo balanceador de carga VPC seja criado, o qual registra o controlador de ingresso por trás de um nome de host e encaminha o tráfego para o controlador de ingresso. Em seguida, atualize seu subdomínio do Ingress para usar o novo nome do host do balanceador de carga de VPC.
-
Execute o comando a seguir para localizar o balanceador de carga VPC que expõe o controlador de ingresso. Na saída, procure o nome do balanceador de carga VPC que começa com
kube-crtmgr-<cluster_ID>.ibmcloud is load-balancersSaída de exemplo
ID Name Family Subnets Is public Provision status Operating status Resource group r006-d044af9b-92bf-4047-8f77-a7b86efcb923 kube-bsaucubd07dhl66e4tgg-1f4f408ce6d2485499bcbdec0fa2d306 Application mysubnet-us-south-3 true active online default -
Remova o serviço
router-defaulte aguarde que ele seja automaticamente recriado.oc delete svc router-default -n openshift-ingressDepois de executar o comando
delete svcpara excluir o serviço, você pode precisar remover os finalizadores para remover totalmente o serviço. Execute o seguinte comando para excluir os finalizadores do serviço:oc get svc -n openshift-ingress router-default -o=json | jq '.metadata.finalizers = null' | kubectl apply -f - -
Verifique se o novo balanceador de carga VPC que expõe o controlador de ingresso tem Status de provisão de
activee um Status de operação deonline. Além disso, verifique se a lista Sub-redes agora inclui sub-redes para cada zona de seu cluster.ibmcloud is load-balancersNa saída, procure o nome do balanceador de carga VPC que começa com
kube-crtmgr-<cluster_ID>.ID Name Family Subnets Is public Provision status Operating status Resource group r006-d044af9b-92bf-4047-8f77-a7b86efcb923 kube-bsaucubd07dhl66e4tgg-1f4f408ce6d2485499bcbdec0fa2d306 Application mysubnet-us-south-1, mysubnet-us-south-2, mysubnet-us-south-3 true active online default -
Para o serviço
router-default, copie o nome do host que é designado pelo novo balanceador de carga de VPC no campo EXTERNAL-IP.oc get svc -n openshift-ingressSaída de exemplo
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE router-default LoadBalancer 172.21.47.119 1234abcd-us-south.lb.appdomain.cloud 80:32637/TCP,443:31719/TCP 2m router-internal-default ClusterIP 172.21.51.30 <none> 80/TCP,443/TCP,1936/TCP 2m -
Obtenha o subdomínio do Ingress para seu cluster.
ibmcloud oc cluster get -c <cluster_name_or_ID> | grep 'Ingress Subdomain'Saída de exemplo
Ingress Subdomain: mycluster-35366fb2d3d90fd50548180f69e7d12a-0000.us-south.containers.appdomain.cloud -
Atualize o registro de DNS do subdomínio do Ingress para usar o novo nome do host do balanceador de carga de VPC.
ibmcloud oc nlb-dns replace --cluster <cluster_name_or_ID> --nlb-subdomain <Ingress_subdomain> --lb-host <vpc_lb_hostname> -
Verifique se o registro DNS de subdomínio do ingresso está atualizado para incluir o novo nome de host do balanceador de carga VPC para seu controlador de ingresso.
ibmcloud oc nlb-dns ls -c <cluster_name_or_ID>Saída de exemplo
Subdomain Load Balancer Hostname SSL Cert Status SSL Cert Secret Name Secret Namespace mycluster-d84d4d2137685d8446c88eacf59b5038-0000.us-south.containers.appdomain.cloud 1234abcd-us-south.lb.appdomain.cloud created cluster-d84d4d2137685d8446c88eacf59b5038-0000 openshift-ingress