Cluster VPC: perché il programma di bilanciamento del carico di VPC per il controller Ingress esegue l'instradamento solo a una zona?
Cloud virtuale privato
Crei un cluster VPC multizona. Tuttavia, quando esegui ibmcloud is load-balancers per trovare il programma di bilanciamento del carico VPC che espone il controllore Ingress, viene elencata la sottorete VPC per una sola zona nel tuo
cluster invece delle sottoreti per tutte le zone nel tuo cluster. Nell'output, cercare il nome del bilanciatore di carico VPC che inizia con 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 si crea un cluster Red Hat OpenShift su un'infrastruttura VPC nella CLI, il cluster viene inizialmente creato con nodi worker in una sola zona. Rendi quindi il cluster multizona aggiungendo manualmente le zone ai tuoi pool di nodi di lavoro
con il comando ibmcloud oc zone add vpc-gen2. Attualmente, quando aggiungi zone al tuo cluster, il controller Ingress non viene aggiornato con le sottoreti VPC delle nuove zone e non instrada le richieste alle applicazioni nelle
nuove zone.
Riavviare il controller Ingress in modo che venga creato un nuovo programma di bilanciamento del carico VPC, che registra il controller Ingress dietro un nome host e inoltra il traffico al controller Ingress. Quindi, aggiorna il tuo dominio secondario Ingress per utilizzare il nuovo nome host del programma di bilanciamento del carico VPC.
-
Immetti il seguente comando per trovare il programma di bilanciamento del carico VPC che espone il controller Ingress. Nell'output, cercare il nome del bilanciatore di carico VPC che inizia con
kube-crtmgr-<cluster_ID>.ibmcloud is load-balancersOutput di esempio
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 -
Rimuovere il servizio
router-defaulte attendere che venga ricreato automaticamente.oc delete svc router-default -n openshift-ingressDopo aver eseguito il comando
delete svcper eliminare il servizio, potrebbe essere necessario rimuovere i finalizer per rimuovere completamente il servizio. Eseguire il seguente comando per eliminare i finalizzatori del servizio:oc get svc -n openshift-ingress router-default -o=json | jq '.metadata.finalizers = null' | kubectl apply -f - -
Verifica che il nuovo programma di bilanciamento del carico VPC che espone il controller Ingress abbia lo stato di provisioning di
activee uno Stato operativo dionline. Inoltre, verifica che l'elenco Subnets ora includa le sottoreti per ogni zona del tuo cluster.ibmcloud is load-balancersNell'output, cercare il nome del bilanciatore di carico VPC che inizia con
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 -
Per il servizio
router-default, copia il nome host assegnato dal nuovo programma di bilanciamento del carico VPC nel campo EXTERNAL - IP.oc get svc -n openshift-ingressOutput di esempio
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 -
Ottieni il dominio secondario Ingress per il tuo cluster.
ibmcloud oc cluster get -c <cluster_name_or_ID> | grep 'Ingress Subdomain'Output di esempio
Ingress Subdomain: mycluster-35366fb2d3d90fd50548180f69e7d12a-0000.us-south.containers.appdomain.cloud -
Aggiorna la registrazione DNS del dominio secondario Ingress per utilizzare il nuovo nome host del programma di bilanciamento del carico VPC.
ibmcloud oc nlb-dns replace --cluster <cluster_name_or_ID> --nlb-subdomain <Ingress_subdomain> --lb-host <vpc_lb_hostname> -
Verifica che la registrazione DNS del dominio secondario di ingresso sia aggiornata per includere il nuovo nome host del programma di bilanciamento del carico VPC per il tuo controller Ingress.
ibmcloud oc nlb-dns ls -c <cluster_name_or_ID>Output di esempio
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