Clústeres de VPC: ¿Por qué el equilibrador de carga de VPC para el controlador de Ingress solo se dirige a una zona?
Nube privada virtual
Crea un clúster multizona VPC. Sin embargo, cuando ejecuta ibmcloud is load-balancers para encontrar el equilibrador de carga de VPC que expone el controlador de Ingress, se lista la subred de VPC solo para una zona del clúster, en
lugar de las subredes para todas las zonas del clúster. En la salida, busque el nombre del equilibrador de carga de la VPC que empiece por 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
Cuando se crea un clúster Red Hat OpenShift en una infraestructura VPC en la CLI, el clúster se crea inicialmente con nodos trabajadores en una sola zona. A continuación, convierta el clúster en multizona mediante la adición manual de zonas a
las agrupaciones de nodos trabajadores con el mandato ibmcloud oc zone add vpc-gen2. Actualmente, cuando añade zonas al clúster, el controlador de Ingress no se actualiza con las subredes de VPC para las nuevas zonas y no direcciona
solicitudes a apps en las nuevas zonas.
Reinicie el controlador de Ingress para que se cree un nuevo equilibrador de carga de VPC, que registra el controlador de Ingress detrás de un nombre de host y reenvía el tráfico al controlador de Ingress. A continuación, actualice el subdominio de Ingress para que utilice el nuevo nombre de host del equilibrador de carga de VPC.
-
Ejecute el mandato siguiente para buscar el equilibrador de carga de VPC que expone el controlador de Ingress. En la salida, busque el nombre del equilibrador de carga de VPC que empieza por
kube-crtmgr-<cluster_ID>.ibmcloud is load-balancersSalida de ejemplo
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 -
Elimine el servicio de
router-defaulty espere a que se vuelva a crear automáticamente.oc delete svc router-default -n openshift-ingressDespués de ejecutar el mandato
delete svcpara suprimir el servicio, es posible que tenga que eliminar los finalizadores para eliminar completamente el servicio. Ejecute el siguiente comando para eliminar los finalizadores en el servicio:oc get svc -n openshift-ingress router-default -o=json | jq '.metadata.finalizers = null' | kubectl apply -f - -
Verifique que el nuevo equilibrador de carga de VPC que expone el controlador de Ingress tenga un Estado de provisión
activey un Estado operativoonline. Verifique también que ahora la lista de Subredes incluye subredes para cada zona del clúster.ibmcloud is load-balancersEn la salida, busque el nombre del equilibrador de carga de VPC que empieza por
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 el servicio
router-default, copie el nombre de host asignado por el nuevo equilibrador de carga de VPC en el campo EXTERNAL-IP.oc get svc -n openshift-ingressSalida de ejemplo
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 -
Obtenga el subdominio de Ingress para el clúster.
ibmcloud oc cluster get -c <cluster_name_or_ID> | grep 'Ingress Subdomain'Salida de ejemplo
Ingress Subdomain: mycluster-35366fb2d3d90fd50548180f69e7d12a-0000.us-south.containers.appdomain.cloud -
Actualice el registro DNS del subdominio de Ingress para que utilice el nuevo nombre de host del equilibrador de carga de VPC.
ibmcloud oc nlb-dns replace --cluster <cluster_name_or_ID> --nlb-subdomain <Ingress_subdomain> --lb-host <vpc_lb_hostname> -
Verifique que el registro DNS del subdominio de Ingress se haya actualizado para incluir el nuevo nombre de host del equilibrador de carga de VPC del controlador de Ingress.
ibmcloud oc nlb-dns ls -c <cluster_name_or_ID>Salida de ejemplo
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