Esporre le app con le rotte in Red Hat OpenShift 4
Esponi i servizi nel tuo cluster Red Hat® OpenShift® on IBM Cloud® sull'indirizzo IP esterno del router utilizzando un instradamento.
Queste informazioni si riferiscono ai cluster che eseguono la versione 4 di Red Hat OpenShift.
Non sapete se utilizzare i percorsi Red Hat OpenShift o Ingress? Consulta Scelta tra le soluzioni di bilanciamento del carico.
Panoramica
Per impostazione predefinita, nel cluster viene distribuito un controller di ingresso Red Hat OpenShift che funge da endpoint di ingresso per il traffico di rete esterno.
È possibile utilizzare il controller Ingress di Red Hat OpenShift per creare percorsi per le applicazioni. Alle rotte viene assegnato un hostname accessibile pubblicamente o privatamente dal sottodominio del controller Ingress, che i client esterni possono utilizzare per inviare richieste all'applicazione. Si può scegliere di creare rotte non protette o protette, utilizzando il certificato TLS del controller di Ingress per proteggere l'hostname. Quando una richiesta esterna raggiunge il vostro hostname, il controller Ingress effettua un proxing della richiesta e la inoltra all'indirizzo IP privato su cui l'applicazione è in ascolto.
Il tipo di controller di Ingress creato per impostazione predefinita varia a seconda del fornitore dell'infrastruttura del cluster e della configurazione dell'endpoint del servizio.
- Cluster classici / cluster VPC con endpoint di servizio cloud pubblico: il cluster viene creato con un controller Ingress pubblico per impostazione predefinita. Il controller Ingress assegna percorsi accessibili al pubblico per le applicazioni e ascolta le richieste alle applicazioni sull'interfaccia di rete dell'host pubblico. Quando riceve una richiesta, il controller Ingress la indirizza all'indirizzo IP privato su cui l'app è in ascolto. Se invece si desidera esporre privatamente le proprie applicazioni, è necessario creare prima un controller Ingress privato e poi creare percorsi privati.
- Cluster VPC solo con endpoint del servizio cloud privato: il cluster viene creato con un controller Ingress privato per impostazione predefinita. Il controller Ingress assegna percorsi accessibili privatamente per le applicazioni e ascolta l'interfaccia di rete privata dell'host. Solo i client connessi alla tua rete VPC privata possono accedere alle applicazioni esposte da un instradamento privato. Se invece si desidera esporre pubblicamente le proprie applicazioni, è necessario creare prima un controllore Ingress pubblico e poi creare rotte pubbliche.
Se si dispone di un cluster multizona, nel cluster viene distribuito un controller Ingress ad alta disponibilità e viene creato un servizio di controller Ingress in ogni zona. Sono necessari due nodi worker per zona, in modo che le due repliche
del controller Ingress possano essere distribuite e aggiornate correttamente. Si noti che il servizio di controller Ingress nella prima zona in cui sono presenti nodi lavoratori si chiama sempre router-default
, mentre i servizi
di controller Ingress nelle zone aggiunte successivamente al cluster hanno nomi come router-dal12
.
- Per vedere i servizi del controllore Ingress in ogni zona del cluster, eseguire
oc get svc -n openshift-ingress
. - Per vedere il sottodominio del controllore Ingress per il cluster e gli indirizzi IP per il servizio del controllore Ingress in ogni zona, eseguire
ibmcloud oc nlb-dns ls -c <cluster_name_or_ID>
e cercare il sottodominio formattato come<cluster_name>-<random_hash>-0000.<region>.containers.appdomain.cloud
.
Nella dashboard dell'infrastruttura VPC, il bilanciatore di carico VPC segnala come sani solo i due nodi worker che eseguono i pod di replica del controller Ingress, perché questi nodi worker sono configurati come ascoltatori del bilanciatore di carico VPC. Anche se solo i nodi worker degli ascoltatori sono segnalati come sani, il pool di nodi worker del backend degli ascoltatori viene mantenuto aggiornato da Red Hat OpenShift on IBM Cloud, in modo che tutti i nodi worker del cluster possano continuare a ricevere richieste dal bilanciatore di carico VPC.
Flusso del traffico in un cluster classico a zona singola
Il seguente diagramma mostra in che modo un router indirizza il traffico di rete da internet a un'applicazione in un cluster classico a zona singola.
-
Una richiesta alla tua applicazione utilizza il nome host dell'instradamento che hai configurato per la tua applicazione.
-
Un servizio DNS risolve il dominio secondario nell'indirizzo IP pubblico portatile del servizio router.
-
Il router riceve la richiesta e la inoltra all'indirizzo IP privato del pod dell'applicazione sulla rete privata. L'indirizzo IP di origine del pacchetto di richieste viene modificato nell'indirizzo IP pubblico del nodo di lavoro su cui viene eseguito il pod router. Se nel cluster vengono distribuite più istanze dell'applicazione, il router invia le richieste tra i pod dell'applicazione.
-
Quando l'applicazione restituisce un pacchetto di risposta, utilizza l'indirizzo IP del nodo di lavoro in cui è presente il router che ha inoltrato la richiesta client. Il router invia quindi il pacchetto di risposta tramite il servizio del programma di bilanciamento del carico al client.
Flusso del traffico in un cluster classico multizona
Il seguente diagramma mostra in che modo un router indirizza il traffico di rete da internet a un'applicazione in un cluster classico multizona.
-
Una richiesta alla tua applicazione utilizza il nome host dell'instradamento che hai configurato per la tua applicazione.
-
Un servizio DNS risolve il dominio secondario di instradamento nell'indirizzo IP pubblico portatile di un servizio router che è stato segnalato come integro da MZLB (multizone load balancer). MZLB controlla continuamente gli indirizzi IP pubblici portatili dei servizi che espongono il router in ciascuna zona del tuo cluster. Le richieste vengono gestite dai servizi router in varie zone in un ciclo round-robin.
-
In base all'indirizzo IP risolto del servizio router, il router riceve la richiesta.
-
Il router inoltra la richiesta all'indirizzo IP privato del pod dell'applicazione sulla rete privata. L'indirizzo IP di origine del pacchetto di richieste viene modificato nell'indirizzo IP pubblico del nodo di lavoro su cui viene eseguito il pod router. Ogni router invia le richieste alle istanze dell'applicazione nella propria zona e alle istanze dell'applicazione in altre zone. Inoltre, se più istanze dell'applicazione vengono distribuite in una zona, il router alterna le richieste tra i pod dell'applicazione.
-
Quando l'applicazione restituisce un pacchetto di risposta, utilizza l'indirizzo IP del nodo di lavoro in cui è presente il router che ha inoltrato la richiesta client. Il router invia quindi il pacchetto di risposta tramite il servizio del programma di bilanciamento del carico al client.
Flusso di traffico in un cluster VPC multizona con un endpoint di servizio cloud pubblico
Quando si crea un cluster VPC multizona con l'endpoint del servizio cloud pubblico abilitato, per impostazione predefinita viene creato un controller di ingresso pubblico. Il controller Ingress assegna percorsi accessibili al pubblico per le applicazioni e ascolta le richieste alle applicazioni sull'interfaccia di rete dell'host pubblico.
Il diagramma seguente mostra come un controller Ingress dirige il traffico di rete da Internet a un'applicazione in un cluster VPC multizona.
-
Una richiesta alla tua applicazione utilizza il nome host dell'instradamento che hai configurato per la tua applicazione.
-
Un servizio DNS risolve il sottodominio della rotta all'hostname del bilanciatore di carico VPC assegnato ai servizi per il controller di ingresso. Nei cluster VPC, gli indirizzi IP esterni dei servizi del controller di Ingress sono fluttuanti e vengono mantenuti dietro un hostname assegnato al VPC.
-
Il bilanciatore di carico VPC risolve l'hostname VPC con un indirizzo IP esterno disponibile di un servizio di controller di Ingress segnalato come sano. Il bilanciatore di carico VPC controlla continuamente gli indirizzi IP esterni dei servizi che espongono il controller di ingresso in ogni zona del cluster.
-
In base all'indirizzo IP risolto, il bilanciatore di carico VPC invia la richiesta a un servizio di ingress controller.
-
Il controller di Ingress inoltra la richiesta all'indirizzo IP privato dell'app pod attraverso la rete privata. L'indirizzo IP di origine del pacchetto di richiesta viene modificato in quello del nodo worker su cui gira il pod del controller di Ingress. Ogni controller di Ingress invia richieste alle istanze di app nella propria zona e alle istanze di app in altre zone. Inoltre, se più istanze di app sono distribuite in una zona, il controller Ingress alterna le richieste tra i pod delle app.
-
Quando l'applicazione restituisce un pacchetto di risposta, utilizza l'indirizzo IP del nodo worker in cui è presente il controller di Ingress che ha inoltrato la richiesta del client. Il controller di ingresso invia quindi il pacchetto di risposta al client attraverso il bilanciatore di carico VPC.
Flusso di traffico in un cluster VPC multizona con un solo endpoint di servizio cloud privato
Quando si crea un cluster VPC multizona con il solo endpoint del servizio cloud privato, per impostazione predefinita viene creato un controller di ingresso privato. Il controller Ingress assegna percorsi accessibili privatamente per le applicazioni e ascolta l'interfaccia di rete privata dell'host. Solo i client connessi alla tua rete VPC privata possono accedere alle applicazioni esposte da un instradamento privato.
Il diagramma seguente mostra come un controller Ingress dirige il traffico di rete dalle reti private a un'applicazione in un cluster VPC multizona.
-
Un client connesso alla tua rete VPC privata invia una richiesta alla tua applicazione utilizzando l'instradamento privato dell'applicazione. Ad esempio, potresti utilizzare la VPN Virtual Private Cloud, IBM Cloud Transit Gateway o IBM Cloud Direct Link per consentire le richieste da una rete in loco, da un altro VPC o dall'infrastruttura classica IBM Cloud alle applicazioni che vengono eseguite nel tuo cluster.
-
Un servizio DNS risolve il sottodominio della rotta all'hostname del bilanciatore di carico VPC assegnato ai servizi per il controller di ingresso. Nei cluster VPC, gli indirizzi IP dei servizi del controller di Ingress sono fluttuanti e vengono mantenuti dietro un hostname assegnato al VPC. Tieni presente che sebbene il record DNS per il dominio secondario di instradamento sia registrato nel sistema DNS pubblico, i server di risoluzione DNS sono raggiungibili dal VPC.
-
Il bilanciatore di carico VPC privato risolve l'hostname VPC con un indirizzo IP privato disponibile di un servizio di controller Ingress segnalato come sano. Il bilanciatore di carico VPC controlla continuamente gli indirizzi IP dei servizi che espongono il controller di ingresso in ogni zona del cluster.
-
In base all'indirizzo IP risolto, il bilanciatore di carico VPC invia la richiesta a un servizio di ingress controller.
-
Il controller di Ingress inoltra la richiesta all'indirizzo IP privato dell'app pod attraverso la rete privata. L'indirizzo IP di origine del pacchetto di richiesta viene modificato in quello del nodo worker su cui gira il pod del controller di Ingress. Ogni controller di Ingress invia richieste alle istanze di app nella propria zona e alle istanze di app in altre zone. Inoltre, se più istanze di app sono distribuite in una zona, il controller Ingress alterna le richieste tra i pod delle app.
-
Quando l'applicazione restituisce un pacchetto di risposta, utilizza l'indirizzo IP del nodo worker in cui è presente il controller di Ingress che ha inoltrato la richiesta del client. Il controller di ingresso invia quindi il pacchetto di risposta attraverso il bilanciatore di carico VPC e attraverso la VPN IBM Cloud VPC, Transit Gateway o Direct Link al client.
Tipi di instradamento e terminazione TLS
Red Hat OpenShift offre quattro tipi di percorsi in base al tipo di terminazione TLS richiesta dall'applicazione. Ogni tipo di instradamento è supportato per gli instradamenti pubblici e privati.
Tipo di instradamento | Caso d'uso |
---|---|
Semplice | Se non è necessaria la crittografia TLS, creare una rotta semplice per gestire il traffico HTTP non crittografato. |
Passthrough | Quando vuoi che le connessioni TLS passino ininterrottamente dal client al tuo pod dell'applicazione, crea un instradamento passthrough. Il router non è coinvolto nella terminazione TLS per il traffico HTTPS crittografato, per cui il pod dell'applicazione deve terminare la connessione TLS. Questo tipo può anche essere utilizzato per gli endpoint TLS HTTP/2 e non HTTP. |
Edge | Quando il pod dell'applicazione è esposto su un endpoint HTTP non crittografato ma devi gestire il traffico HTTPS crittografato, crea un instradamento edge. La connessione TLS tra il client e il servizio router viene terminata e la connessione tra il servizio router e il pod dell'applicazione non è crittografata. Per ulteriori informazioni, consultare la documentazione relativa al percorso edge Red Hat OpenShift. |
Ricrittografia | Quando il pod dell'applicazione è esposto su un endpoint HTTPS crittografato e devi gestire il traffico HTTPS, crea un instradamento di ricrittografia. La connessione TLS tra il client e il servizio router viene terminata e viene creata una nuova connessione TLS tra il servizio router e il pod dell'applicazione. Per ulteriori informazioni, consultare la documentazione sulla crittografia ripetuta del percorso Red Hat OpenShift. |
Se non hai bisogno di utilizzare un dominio personalizzato, puoi utilizzare un nome host di instradamento fornito da IBMnel formato <service_name>-<project>.<cluster_name>-<random_hash>-0000.<region>.containers.appdomain.cloud
.
Controlli di integrità controller Ingress
Consenti l'accesso tramite politiche di rete o altre regole del firewall in modo che i tuoi servizi del controller Ingress siano raggiungibili dal controllo di integrità del controller Ingress.
Classico: se si utilizzano criteri di rete pre-DNAT Calico o un altro firewall personalizzato per bloccare il traffico in entrata nel cluster, è necessario consentire l'accesso in entrata sulla porta 443 dagli indirizzi IP di origine del monitor dello stato del dominio Ingress agli indirizzi IP dei servizi Ingress Controller, in modo che il provider del dominio possa monitorare lo stato degli indirizzi registrati e restituire solo endpoint integri.
VPC: se si configurano gruppi di sicurezza VPC o elenchi di controllo degli accessi VPC(ACL) per proteggere la rete del cluster, assicurarsi di consentire l'accesso in ingresso sulla porta 443 dagli indirizzi IP di origine del monitor dello stato del dominio Ingress agli indirizzi IP dei servizi Ingress Controller, in modo che il provider del dominio possa monitorare lo stato degli indirizzi registrati e restituire solo endpoint integri.
Configurazione degli instradamenti pubblici
Utilizzare un controller Ingress pubblico per esporre le app nel cluster.
Il metodo per configurare gli instradamenti pubblici varia in base al provider dell'infrastruttura del tuo cluster e alla configurazione dell'endpoint del servizio.
- Impostazione di rotte pubbliche in cluster classici o in cluster VPC con un endpoint di servizio cloud pubblico
- Impostazione di rotte pubbliche in cluster VPC con un endpoint di servizio solo per il cloud privato
Impostazione di rotte pubbliche in cluster classici o in cluster VPC con un endpoint di servizio cloud pubblico
Se il cluster viene creato su un'infrastruttura classica o se il cluster viene creato su un'infrastruttura VPC e si è abilitato l'endpoint del servizio cloud pubblico durante la creazione del cluster, il cluster viene creato con un controller Ingress pubblico per impostazione predefinita. È possibile utilizzare questo controllore Ingress per creare rotte pubbliche per la propria applicazione.
-
Crea un servizio
ClusterIP
Kubernetes per la distribuzione della tua applicazione. Il servizio fornisce un indirizzo IP interno per l'applicazione a cui il controller Ingress può inviare il traffico.oc expose deploy <app_deployment_name> --name my-app-svc
-
Scegli un dominio per la tua applicazione. Nota che gli URL di instradamento devono avere una lunghezza massima di 130 caratteri IBM: se non hai bisogno di utilizzare un dominio personalizzato, viene generato un nome host di instradamento nel formato
<service_name>-<project>.<cluster_name>-<random_hash>-0000.<region>.containers.appdomain.cloud
. Dominio personalizzato: per specificare un dominio personalizzato, collabora con il tuo provider DNS o IBM Cloud® Internet Services.-
Ottenere l'indirizzo IP pubblico del servizio pubblico del controllore di ingresso in ciascuna zona nella colonna EXTERNAL-IP. Si noti che il servizio di controller Ingress nella prima zona in cui sono presenti nodi lavoratori si chiama sempre
router-default
, mentre i servizi di controller Ingress nelle zone aggiunte successivamente al cluster hanno nomi comerouter-dal12
.oc get svc -n openshift-ingress
-
Crea un dominio personalizzato con il tuo provider DNS. Se vuoi utilizzare lo stesso dominio secondario per più servizi nel tuo cluster, puoi registrare un dominio secondario jolly, come ad esempio
*.example.com
. -
Mappare il dominio personalizzato all'indirizzo IP pubblico del controller di Ingress, aggiungendo l'indirizzo IP come record A.
-
-
Configura un instradamento basato sul tipo di terminazione TLS richiesto dalla tua applicazione. Se non hai un dominio personalizzato, non includere l'opzione
--hostname
. Viene generato un hostname di rotta nel formato<service_name>-<project>.<cluster_name>-<random_hash>-0000.<region>.containers.appdomain.cloud
. Se hai registrato un dominio secondario jolly, specifica un dominio secondario univoco in ogni instradamento che crei. Ad esempio, potresti specificare--hostname svc1.example.com
in questo instradamento e--hostname svc2.example.com
in un altro instradamento.- Semplice:
oc expose service <app_service_name> [--hostname <subdomain>]
- Passthrough:
Devi gestire le connessioni HTTP/2? Dopo aver creato la rotta, eseguireoc create route passthrough --service <app_service_name> [--hostname <subdomain>]
oc edit route <app_service_name>
e modificare il valoretargetPort
della rotta inhttps
. È possibile testare il percorso eseguendocurl -I --http2 https://<route> --insecure
. - Bordo: se si utilizza un dominio personalizzato, includere le opzioni
--hostname
,--cert
,--key
e, facoltativamente, l'opzione--ca-cert
. Per ulteriori informazioni sui requisiti del certificato TLS, consultare la documentazione del percorso edge Red Hat OpenShift.oc create route edge --service <app_service_name> [--hostname <subdomain> --cert <tls.crt> --key <tls.key> --ca-cert <ca.crt>]
- Crittografare nuovamente: Se si utilizza un dominio personalizzato, includere le opzioni
--hostname
,--cert
, e--key
e, facoltativamente, l'opzione--ca-cert
. Per ulteriori informazioni sui requisiti del certificato TLS, consultare la documentazione sulla crittografia ripetuta del percorso Red Hat OpenShift.oc create route reencrypt --service <app_service_name> --dest-ca-cert <destca.crt> [--hostname <subdomain> --cert <tls.crt> --key <tls.key> --ca-cert <ca.crt>]
- Semplice:
-
Verifica che l'instradamento per il tuo servizio dell'applicazione sia stato creato.
oc get routes
-
Opzionale: Personalizzare le regole di routing predefinite con configurazioni opzionali. Ad esempio, puoi utilizzare le annotazioni route - specific HAProxy.
Impostazione di rotte pubbliche in cluster VPC con un endpoint di servizio solo per il cloud privato
Se il cluster è stato creato su un'infrastruttura VPC e durante la creazione del cluster è stato abilitato solo l'endpoint del servizio cloud privato, il cluster viene creato con un router privato per impostazione predefinita. Per esporre pubblicamente le vostre applicazioni, dovete prima creare una risorsa pubblica IngressController e configurarla con un sottodominio. L'operatore Ingress crea e configura automaticamente un nuovo controllore Ingress pubblico basato su IngressController, che si può usare per creare rotte pubbliche per le proprie applicazioni.
Si noti che, anche se nei passaggi successivi si crea una risorsa IngressController, IngressController deve solo creare e configurare il controller di Ingress necessario. Dopo che il controllore Ingress è stato creato, puoi utilizzare direttamente il controllore Ingress per creare le rotte.
-
Preparare il dominio che si desidera utilizzare per il controller di Ingress.
- Dominio personalizzato: per registrare un dominio personalizzato, collabora con il tuo provider DNS (Domain Name Service) o il DNS IBM Cloud. Se vuoi utilizzare
lo stesso dominio secondario per più servizi nel tuo cluster, puoi registrare un dominio secondario jolly, come ad esempio
*.example.com
. Se si utilizza un dominio personalizzato, è necessario specificare anche il certificato di dominio nella propria specificaIngressController
. Per ulteriori informazioni, vedi Impostazione di un certificato predefinito personalizzato - Dominio fornito da IBM:
- Elenca i domini secondari esistenti nel tuo cluster. Nella colonna Sottodominio dell'output, copiare il sottodominio che ha il valore più alto
000<n>
.
In questo esempio di output, il sottodominioibmcloud oc nlb-dns ls --cluster <cluster_name_or_id>
mycluster-a1b2cdef345678g9hi012j3kl4567890-0002.us-south.containers.appdomain.cloud
ha il valore000<n>
più alto di0002
.Subdomain Load Balancer Hostname Health Monitor SSL Cert Status SSL Cert Secret Name mycluster-a1b2cdef345678g9hi012j3kl4567890-0000.us-south.containers.appdomain.cloud ["1234abcd-us-south.lb.appdomain.cloud"] None created mycluster-a1b2cdef345678g9hi012j3kl4567890-0000 mycluster-a1b2cdef345678g9hi012j3kl4567890-0001.us-south.containers.appdomain.cloud ["5678efgh-us-south.lb.appdomain.cloud"] None created mycluster-a1b2cdef345678g9hi012j3kl4567890-0001 mycluster-a1b2cdef345678g9hi012j3kl4567890-0002.us-south.containers.appdomain.cloud ["9012ijkl-us-south.lb.appdomain.cloud"] None created mycluster-a1b2cdef345678g9hi012j3kl4567890-0002
- Nel sottodominio copiato, modificare il valore
000<n>
nel sottodominio in000<n+1>
. Ad esempio, il sottodominiomycluster-a1b2cdef345678g9hi012j3kl4567890-0002.us-south.containers.appdomain.cloud
viene modificato inmycluster-a1b2cdef345678g9hi012j3kl4567890-0003.us-south.containers.appdomain.cloud
. Registrerai questo dominio secondario nei passi successivi.
- Elenca i domini secondari esistenti nel tuo cluster. Nella colonna Sottodominio dell'output, copiare il sottodominio che ha il valore più alto
- Dominio personalizzato: per registrare un dominio personalizzato, collabora con il tuo provider DNS (Domain Name Service) o il DNS IBM Cloud. Se vuoi utilizzare
lo stesso dominio secondario per più servizi nel tuo cluster, puoi registrare un dominio secondario jolly, come ad esempio
-
Crea un file YAML che configura un controller Ingress pubblico con il dominio dal passo 1.
apiVersion: operator.openshift.io/v1 kind: IngressController metadata: name: public namespace: openshift-ingress-operator spec: # defaultCertificate: If you are using a custom domain, specify the domain certificate # name: custom-certs-default replicas: 2 domain: <domain> endpointPublishingStrategy: loadBalancer: scope: External type: LoadBalancerService
-
Creare la risorsa IngressController nello spazio dei nomi
openshift-ingress-operator
del cluster. Quando si crea IngressController,, un controllore Ingress pubblico viene creato automaticamente e distribuito nello spazio dei nomiopenshift-ingress
, in base alle impostazioni di IngressController. Inoltre, viene creato un servizio controller Ingress per esporre il controllore Ingress.oc create -f public.yaml -n openshift-ingress-operator
-
Ottieni il nome host VPC nel campo EXTERNAL IP del servizio
router-public
. Nei cluster VPC, gli indirizzi IP esterni dei tuoi servizi router sono mobili e vengono invece mantenuti dietro un nome host assegnato dal VPC.oc get svc router-public -n openshift-ingress
Output di esempio
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE router-public LoadBalancer 172.21.57.132 1234abcd-us-south.lb.appdomain.cloud 80/TCP,443/TCP,1940/TCP 3m
-
Registrare il nome host del servizio VPC con il dominio scelto al punto 1. Questo passo garantisce che gli indirizzi IP dei servizi del tuo controller Ingress, che sono conservati dietro il nome host VPC, siano registrati con il dominio che hai scelto per il controller Ingress.
-
Dominio personalizzato: collabora con il tuo provider DNS per aggiungere il nome host VPC del servizio come CNAME che viene associato al tuo dominio personalizzato.
-
Dominio fornito da IBM: crea una voce DNS per il nome host VPC del servizio. Quando si esegue il comando seguente, il sottodominio specificato al punto 2 viene generato automaticamente e registrato con il servizio controller Ingress.
ibmcloud oc nlb-dns create vpc-gen2 --cluster <cluster_name_or_ID> --lb-host <router_VPC_hostname>
-
-
Facoltativo: se vuoi utilizzare la frammentazione del controller Ingress in modo che specifici instradamenti siano gestiti da un controller Ingress specifico, ad esempio gli instradamenti privati sono ammessi solo a un router privato, puoi utilizzare le etichette di instradamento o le etichette dello spazio dei nomi per specificare il metodo di frammentazione. Per aggiungere il selettore durante il tempo di creazione, includilo nello yaml
ingresscontroller
inspec
. Ad esempio, per consentire a un controller Ingress di gestire solo ingress / instradamenti con etichettatype=sharded
, puoi aggiungere unrouteSelector
. Per ulteriori informazioni, vedi frammentazione del controller Ingress.routeSelector: matchLabels: type: sharded
-
Per aggiungere i selettori a un controller Ingress esistente, ottieni un elenco di controller Ingress.
oc get ingresscontroller -n openshift-ingress-operator
-
Aggiungi i selettori ai controller Ingress in cui vuoi utilizzare la frammentazione.
oc patch -n openshift-ingress-operator IngressController/<name> --type='merge' -p '{"spec":{"routeSelector":{"matchLabels":{"type":"sharded"}}}}'
-
Si noti che non vengono aggiunti selettori al IngressController, quindi tutte le rotte sono ancora ammesse al controllore Ingress predefinito del cluster. È possibile utilizzare l'instradamento pertinente o un selettore di etichetta dello spazio dei nomi per modificare questo comportamento. Ad esempio, per regolare il router predefinito per ignorare ingress / routes con etichetta
type=sharded
, esegui il seguente comando patch.oc patch -n openshift-ingress-operator IngressController/default --type='merge' -p '{"spec":{"routeSelector":{"matchExpressions":[{"key":"type","operator":"NotIn","values":["sharded"]}]}}}'
Diverse rotte e ingressi sul cluster dipendono dal controller di ingresso pubblico predefinito. Assicurarsi che le modifiche siano corrette prima di modificare il controllore Ingress predefinito. Per ulteriori informazioni, vedi frammentazione del controller Ingress.
-
-
Crea un servizio
ClusterIP
Kubernetes per la distribuzione della tua applicazione. Il servizio fornisce un indirizzo IP interno per l'applicazione a cui il controller Ingress può inviare il traffico.oc expose deploy <app_deployment_name> --name <app_service_name> -n <app_project>
-
Configura un instradamento basato sul tipo di terminazione TLS richiesto dalla tua applicazione. Se non si include l'opzione
--hostname
, il nome host della rotta viene generato nel formato<app_service_name>-<app_project>.<router-subdomain>
.- Semplice:
oc expose service <app_service_name> [--hostname <subdomain>]
- Passthrough:
Devi gestire le connessioni HTTP/2? Dopo aver creato la rotta, eseguireoc create route passthrough --service <app_service_name> [--hostname <subdomain>]
oc edit route <app_service_name>
e modificare il valoretargetPort
della rotta inhttps
. È possibile testare il percorso eseguendocurl -I --http2 https://<route> --insecure
. - Bordo: se si utilizza un dominio personalizzato, includere le opzioni
--hostname
,--cert
,--key
e, facoltativamente, l'opzione--ca-cert
. Per ulteriori informazioni sui requisiti del certificato TLS, consultare la documentazione del percorso edge Red Hat OpenShift.oc create route edge --service <app_service_name> [--hostname <subdomain> --cert <tls.crt> --key <tls.key> --ca-cert <ca.crt>]
- Crittografare nuovamente: Se si utilizza un dominio personalizzato, includere le opzioni
--hostname
,--cert
, e--key
e, facoltativamente, l'opzione--ca-cert
. Per ulteriori informazioni sui requisiti del certificato TLS, consultare la documentazione sulla crittografia ripetuta del percorso Red Hat OpenShift.oc create route reencrypt --service <app_service_name> --dest-ca-cert <destca.crt> [--hostname <subdomain> --cert <tls.crt> --key <tls.key> --ca-cert <ca.crt>]
- Semplice:
-
Verifica che l'instradamento per la tua applicazione sia stato creato.
oc get routes
-
Facoltativo: personalizza le regole di instradamento del controller Ingress pubblico con configurazioni facoltative. Ad esempio, puoi utilizzare le annotazioni route - specific HAProxy.
-
Per creare percorsi per più applicazioni utilizzando lo stesso sottodominio, è possibile ripetere i passaggi da 7 a 10 in modo che il percorso sia generato dallo stesso controller pubblico di Ingress. Se si desidera creare percorsi per più applicazioni utilizzando un sottodominio diverso, ripetere tutti i passaggi di questa sezione per creare un nuovo controller Ingress pubblico con un dominio diverso.
Configurazione degli instradamenti privati
Utilizzare un controller Ingress privato per esporre le applicazioni del cluster sulla rete privata.
Il metodo per configurare gli instradamenti privati varia in base al provider dell'infrastruttura del tuo cluster e alla configurazione dell'endpoint del servizio.
- Impostazione di rotte private in cluster classici o in cluster VPC con un endpoint di servizio cloud pubblico
- Impostazione di rotte private in cluster VPC con un solo endpoint di servizio cloud privato
Impostazione di rotte private in cluster classici o in cluster VPC con un endpoint di servizio cloud pubblico
Se il cluster viene creato su un'infrastruttura classica o se il cluster viene creato su un'infrastruttura VPC e si è abilitato l'endpoint del servizio cloud pubblico durante la creazione del cluster, per impostazione predefinita il cluster viene creato solo con un controller di ingresso pubblico. Per esporre privatamente le applicazioni, occorre prima creare una risorsa privata IngressController e configurare il controllore con un sottodominio. L'operatore Ingress crea e configura automaticamente un nuovo controller Ingress privato, che può essere utilizzato per creare percorsi privati per le applicazioni.
Si noti che anche se si crea una risorsa IngressController nei passaggi successivi, la risorsa IngressController è necessaria solo per creare e configurare il controller di Ingress necessario. Dopo che il controller Ingress è stato creato, utilizzi il router direttamente per creare gli instradamenti.
-
Preparare il dominio che si desidera utilizzare per il controller di Ingress.
- Dominio personalizzato, cluster classici o VPC: per registrare un dominio personalizzato, collabora con il tuo provider DNS (Domain Name Service) o il DNS IBM Cloud.
Se vuoi utilizzare lo stesso dominio secondario per più servizi nel tuo cluster, puoi registrare un dominio secondario jolly, come ad esempio
*.example.com
. - Dominio fornito da IBM, solo cluster VPC:
- Elenca i domini secondari esistenti nel tuo cluster. Nella colonna Sottodominio dell'output, copiare il sottodominio che ha il valore più alto
000<n>
.
In questo esempio di output, il sottodominioibmcloud oc nlb-dns ls --cluster <cluster_name_or_id>
mycluster-a1b2cdef345678g9hi012j3kl4567890-0002.us-south.containers.appdomain.cloud
ha il valore000<n>
più alto di0002
.Subdomain Load Balancer Hostname Health Monitor SSL Cert Status SSL Cert Secret Name mycluster-a1b2cdef345678g9hi012j3kl4567890-0000.us-south.containers.appdomain.cloud ["1234abcd-us-south.lb.appdomain.cloud"] None created mycluster-a1b2cdef345678g9hi012j3kl4567890-0000 mycluster-a1b2cdef345678g9hi012j3kl4567890-0001.us-south.containers.appdomain.cloud ["5678efgh-us-south.lb.appdomain.cloud"] None created mycluster-a1b2cdef345678g9hi012j3kl4567890-0001 mycluster-a1b2cdef345678g9hi012j3kl4567890-0002.us-south.containers.appdomain.cloud ["9012ijkl-us-south.lb.appdomain.cloud"] None created mycluster-a1b2cdef345678g9hi012j3kl4567890-0002
- Nel sottodominio copiato, modificare il valore
000<n>
nel sottodominio in000<n+1>
. Ad esempio, il sottodominiomycluster-a1b2cdef345678g9hi012j3kl4567890-0002.us-south.containers.appdomain.cloud
viene modificato inmycluster-a1b2cdef345678g9hi012j3kl4567890-0003.us-south.containers.appdomain.cloud
. Registrerai questo dominio secondario nei passi successivi.
- Elenca i domini secondari esistenti nel tuo cluster. Nella colonna Sottodominio dell'output, copiare il sottodominio che ha il valore più alto
- Dominio personalizzato, cluster classici o VPC: per registrare un dominio personalizzato, collabora con il tuo provider DNS (Domain Name Service) o il DNS IBM Cloud.
Se vuoi utilizzare lo stesso dominio secondario per più servizi nel tuo cluster, puoi registrare un dominio secondario jolly, come ad esempio
-
Crea un file di configurazione che configura un controller Ingress privato con il dominio dal passo 1.
apiVersion: operator.openshift.io/v1 kind: IngressController metadata: name: private namespace: openshift-ingress-operator spec: replicas: 2 domain: <domain> endpointPublishingStrategy: loadBalancer: scope: Internal type: LoadBalancerService
-
Creare la risorsa IngressController nello spazio dei nomi
openshift-ingress-operator
del cluster. Quando si crea la risorsa IngressController, viene automaticamente creato un controllore Ingress privato e distribuito nello spazio dei nomiopenshift-ingress
, in base alle impostazioni di IngressController. Inoltre, viene creato un servizio di controller Ingress per esporre il controller Ingress con un indirizzo IP (cluster classici) o un hostname VPC (cluster VPC).oc create -f private.yaml -n openshift-ingress-operator
-
Ottieni l'indirizzo IP o il nome host VPC nel campo EXTERNAL IP del servizio
router-private
.oc get svc router-private -n openshift-ingress
Output di esempio per i cluster classici:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE router-private LoadBalancer 172.21.57.132 10.XX.XX.XX 80/TCP,443/TCP,1940/TCP 3m
Output di esempio per i cluster VPC:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE router-private LoadBalancer 172.21.57.132 1234abcd-us-south.lb.appdomain.cloud 80/TCP,443/TCP,1940/TCP 3m
-
Registra l'indirizzo IP esterno o il nome host VPC del servizio con il dominio che hai scelto nel passo 1.
- Dominio personalizzato, cluster classico o VPC: Collaborate con il vostro provider DNS per aggiungere l'indirizzo IP esterno del servizio come record A (cluster classici) o l'hostname VPC come CNAME (cluster VPC) che corrisponde al vostro dominio personalizzato.
- IBM-dominio fornito, solo cluster VPC: Creare una voce DNS per il nome host del servizio VPC. Quando si esegue il comando seguente, il sottodominio specificato al punto 2 viene generato automaticamente e registrato con
il servizio controller Ingress.
ibmcloud oc nlb-dns create vpc-gen2 --cluster <cluster_name_or_ID> --lb-host <router_VPC_hostname>
-
Facoltativo: se vuoi utilizzare la frammentazione del controller Ingress in modo che specifici instradamenti siano gestiti da un controller Ingress specifico, ad esempio gli instradamenti privati sono ammessi solo a un router privato, puoi utilizzare le etichette di instradamento o le etichette dello spazio dei nomi per specificare il metodo di frammentazione. Per aggiungere il selettore durante il tempo di creazione, includilo nello yaml
ingresscontroller
inspec
. Ad esempio, per consentire a un controller Ingress di gestire solo ingress / instradamenti con etichettatype=sharded
, puoi aggiungere unrouteSelector
. Per ulteriori informazioni, vedi frammentazione del controller Ingress.routeSelector: matchLabels: type: sharded
-
Per aggiungere i selettori a un controller Ingress esistente, ottieni un elenco di controller Ingress.
oc get ingresscontroller -n openshift-ingress-operator
-
Aggiungi i selettori ai controller Ingress in cui vuoi utilizzare la frammentazione.
oc patch -n openshift-ingress-operator IngressController/<name> --type='merge' -p '{"spec":{"routeSelector":{"matchLabels":{"type":"sharded"}}}}'
-
Si noti che non vengono aggiunti selettori al IngressController, quindi tutte le rotte sono ancora ammesse al controllore Ingress predefinito del cluster. È possibile utilizzare l'instradamento pertinente o un selettore di etichetta dello spazio dei nomi per modificare questo comportamento. Ad esempio, per regolare il router predefinito per ignorare ingress / routes con etichetta
type=sharded
, esegui il seguente comando patch.oc patch -n openshift-ingress-operator IngressController/default --type='merge' -p '{"spec":{"routeSelector":{"matchExpressions":[{"key":"type","operator":"NotIn","values":["sharded"]}]}}}'
-
-
Crea un servizio
ClusterIP
Kubernetes per la distribuzione della tua applicazione. Il servizio fornisce un indirizzo IP interno per l'applicazione a cui il controller Ingress può inviare il traffico.oc expose deploy <app_deployment_name> --name <app_service_name> -n <app_project>
-
Configura un instradamento basato sul tipo di terminazione TLS richiesto dalla tua applicazione. Specificare il nome host impostato nel passo 5.
- Semplice:
oc expose service <app_service_name> --hostname <subdomain>
- Passthrough:
Devi gestire le connessioni HTTP/2? Dopo aver creato la rotta, eseguireoc create route passthrough --service <app_service_name> --hostname <subdomain>
oc edit route <app_service_name>
e modificare il valoretargetPort
della rotta inhttps
. È possibile testare il percorso eseguendocurl -I --http2 https://<route> --insecure
. - Bordo: se si utilizza un dominio personalizzato, includere le opzioni
--cert
e--key
e, facoltativamente, l'opzione--ca-cert
. Per ulteriori informazioni sui requisiti del certificato TLS, consultare la documentazione del percorso edge Red Hat OpenShift.oc create route edge --service <app_service_name> --hostname <subdomain> [--cert <tls.crt> --key <tls.key> --ca-cert <ca.crt>]
- Crittografare nuovamente: Se si utilizza un dominio personalizzato, includere le opzioni
--cert
e--key
e, facoltativamente, l'opzione--ca-cert
. Per ulteriori informazioni sui requisiti del certificato TLS, consultare la documentazione sulla crittografia ripetuta del percorso Red Hat OpenShift.oc create route reencrypt --service <app_service_name> --dest-ca-cert <destca.crt> --hostname <subdomain> [--cert <tls.crt> --key <tls.key> --ca-cert <ca.crt>]
- Semplice:
-
Verifica che l'instradamento per la tua applicazione sia stato creato.
oc get routes
-
Facoltativo: personalizza le regole di instradamento del controller Ingress privato con configurazioni facoltative. Ad esempio, puoi utilizzare le annotazioni route - specific HAProxy.
-
Per creare percorsi per più applicazioni utilizzando lo stesso sottodominio, è possibile ripetere i passaggi da 7 a 10 in modo che il percorso sia generato dallo stesso controller Ingress privato. Se si desidera creare percorsi per più app utilizzando un sottodominio diverso, ripetere tutti i passaggi di questa sezione per creare un nuovo controller Ingress privato.
Impostazione di rotte private in cluster VPC con un solo endpoint di servizio cloud privato
Se il cluster è stato creato su un'infrastruttura VPC e si è abilitato l'unico endpoint del servizio cloud privato durante la creazione del cluster, il cluster viene creato con un controller Ingress privato per impostazione predefinita. È possibile utilizzare questo controller Ingress per creare percorsi privati per la propria applicazione.
-
Crea un servizio
ClusterIP
Kubernetes per la distribuzione della tua applicazione. Il servizio fornisce un indirizzo IP interno per l'applicazione a cui il controller Ingress può inviare il traffico.oc expose deploy <app_deployment_name> --name my-app-svc
-
Scegli un dominio per la tua applicazione.
- IBM-dominio fornito: Se non avete bisogno di un dominio personalizzato, viene generato un sottodominio di percorso nel formato
<service_name>-<project>.<cluster_name>-<random_hash>-0000.<region>.containers.appdomain.cloud
. - Dominio personalizzato: per specificare un dominio personalizzato, collabora con il tuo provider DNS o IBM Cloud® Internet Services.
-
Ottenere l'indirizzo IP esterno per il servizio di controller di ingresso privato in ciascuna zona nella colonna EXTERNAL-IP. Si noti che il servizio di controller Ingress nella prima zona in cui sono presenti nodi lavoratori si chiama sempre
router-default
, mentre i servizi di controller Ingress nelle zone aggiunte successivamente al cluster hanno nomi comerouter-dal12
.oc get svc -n openshift-ingress
-
Crea un dominio personalizzato con il tuo provider DNS. Se vuoi utilizzare lo stesso dominio secondario per più servizi nel tuo cluster, puoi registrare un dominio secondario jolly, come ad esempio
*.example.com
. -
Mappare il dominio personalizzato all'indirizzo IP privato dei servizi del controller di Ingress aggiungendo gli indirizzi IP come record A.
-
- IBM-dominio fornito: Se non avete bisogno di un dominio personalizzato, viene generato un sottodominio di percorso nel formato
-
Impostare un percorso in base al tipo di terminazione TLS richiesta dall'applicazione. Se non hai un dominio personalizzato, non includere l'opzione
--hostname
. Viene generato un sottodominio di percorso nel formato<service_name>-<project>.<cluster_name>-<random_hash>-0000.<region>.containers.appdomain.cloud
. Se hai registrato un dominio secondario jolly, specifica un dominio secondario univoco in ogni instradamento che crei. Ad esempio, potresti specificare--hostname svc1.example.com
in questo instradamento e--hostname svc2.example.com
in un altro instradamento.-
Semplice:
oc expose service <app_service_name> [--hostname <subdomain>]
-
Passthrough:
oc create route passthrough --service <app_service_name> [--hostname <subdomain>]
Devi gestire le connessioni HTTP/2? Dopo aver creato la rotta, eseguire
oc edit route <app_service_name>
e modificare il valoretargetPort
della rotta inhttps
. È possibile testare il percorso eseguendocurl -I --http2 https://<route> --insecure
. -
Bordo: se si utilizza un dominio personalizzato, includere le opzioni
--hostname
,--cert
,--key
e, facoltativamente, l'opzione--ca-cert
. Per ulteriori informazioni sui requisiti del certificato TLS, consultare la documentazione del percorso edge Red Hat OpenShift.oc create route edge --service <app_service_name> [--hostname <subdomain> --cert <tls.crt> --key <tls.key> --ca-cert <ca.crt>]
-
Crittografare nuovamente: Se si utilizza un dominio personalizzato, includere le opzioni
--hostname
,--cert
, e--key
e, facoltativamente, l'opzione--ca-cert
. Per ulteriori informazioni sui requisiti del certificato TLS, consultare la documentazione sulla crittografia ripetuta del percorso Red Hat OpenShift.oc create route reencrypt --service <app_service_name> --dest-ca-cert <destca.crt> [--hostname <subdomain> --cert <tls.crt> --key <tls.key> --ca-cert <ca.crt>]
-
-
Verifica che l'instradamento per il tuo servizio dell'applicazione sia stato creato.
oc get routes
-
Opzionale: Personalizzare le regole di routing predefinite con configurazioni opzionali. Ad esempio, puoi utilizzare le annotazioni route - specific HAProxy.
Spostamento dei servizi del controller di ingresso tra le VLAN nei cluster classici
Quando si modificano le connessioni VLAN dei nodi worker, i nodi worker vengono collegati alla nuova VLAN e assegnati a nuovi indirizzi IP pubblici o privati. Tuttavia, i servizi del controller di ingresso non possono migrare automaticamente alla nuova VLAN, perché viene loro assegnato un indirizzo IP pubblico o privato stabile e portatile da una sottorete appartenente alla vecchia VLAN. Quando i nodi worker e i controller di Ingress sono collegati a VLAN diverse, i controller di Ingress non possono inoltrare il traffico di rete in entrata ai pod delle app sui nodi worker. Per spostare i servizi del controller di ingresso su una VLAN diversa, è necessario creare il servizio del controller di ingresso sulla nuova VLAN ed eliminare il servizio del controller di ingresso sulla vecchia VLAN.
-
Creare un servizio controller Ingress sulla nuova VLAN.
- Creare un file di configurazione YAML per un nuovo servizio controller Ingress. Specificare la zona in cui viene distribuito il servizio controller Ingress. Salvate il file come
router-new-<zone>.yaml
.- Servizio controller Ingress pubblico:
apiVersion: v1 kind: Service metadata: annotations: service.kubernetes.io/ibm-load-balancer-cloud-provider-zone: <zone> service.kubernetes.io/ibm-load-balancer-cloud-provider-ip-type: public finalizers: - service.kubernetes.io/load-balancer-cleanup labels: app: router ingresscontroller.operator.openshift.io/deployment-ingresscontroller: default router: router-default name: router-new-<zone> namespace: openshift-ingress spec: externalTrafficPolicy: Local ports: - name: http port: 80 protocol: TCP targetPort: http - name: https port: 443 protocol: TCP targetPort: https selector: ingresscontroller.operator.openshift.io/deployment-ingresscontroller: default sessionAffinity: None type: LoadBalancer
- Servizio controller ingresso privato:
apiVersion: v1 kind: Service metadata: annotations: service.kubernetes.io/ibm-load-balancer-cloud-provider-zone: <zone> service.kubernetes.io/ibm-load-balancer-cloud-provider-ip-type: private finalizers: - service.kubernetes.io/load-balancer-cleanup labels: app: router ingresscontroller.operator.openshift.io/deployment-ingresscontroller: private router: router-private name: router-new-<zone> namespace: openshift-ingress spec: externalTrafficPolicy: Local ports: - name: http port: 80 protocol: TCP targetPort: http - name: https port: 443 protocol: TCP targetPort: https selector: ingresscontroller.operator.openshift.io/deployment-ingresscontroller: private sessionAffinity: None type: LoadBalancer
- Servizio controller Ingress pubblico:
- Crea il nuovo servizio controller Ingress.
oc apply -f router-new-<zone>.yaml -n openshift-ingress
- Ottenere l'indirizzo EXTERNAL-IP del nuovo servizio Ingress controller. Questo indirizzo IP viene da una sottorete sulla nuova VLAN.
Esempio di output per un servizio pubblico di controllore di Ingress:oc get svc router-new -n openshift-ingress
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE router-new LoadBalancer 172.21.XX.XX 169.XX.XXX.XX 80:31049/TCP,443:30219/TCP 2m
- Cluster multizona: Se si sono modificate le VLAN per i nodi worker in più zone, ripetere questi passaggi per creare un servizio di controller Ingress sulle nuove VLAN in ogni zona.
- Creare un file di configurazione YAML per un nuovo servizio controller Ingress. Specificare la zona in cui viene distribuito il servizio controller Ingress. Salvate il file come
-
Nota il Nome host del controllore Ingress. Nell'output, cercare il nome dell'host formattato come
<cluster_name>-<random_hash>-0001.<region>.containers.appdomain.cloud
.ibmcloud oc nlb-dns ls -c <cluster_name_or_ID>
Output di esempio
Hostname IP(s) Health Monitor SSL Cert Status SSL Cert Secret Name Secret Namespace mycluster-35366fb2d3d90fd50548180f69e7d12a-0001.us-east.containers.appdomain.cloud 169.XX.XXX.XX None created roks-ga-35366fb2d3d90fd50548180f69e7d12a-0001 default ...
-
Aggiungere l'indirizzo IP del nuovo servizio del controller di Ingress individuato al punto 1 all'hostname del controller di Ingress. Se si sono creati servizi per più zone al punto 1, includere ogni indirizzo IP separatamente nelle opzioni ripetute di
--ip
.ibmcloud oc nlb-dns add -c <cluster_name_or_ID> --ip <new_IP> --nlb-host <subdomain>
Il servizio del controller di Ingress sulla nuova VLAN è ora registrato nel dominio del controller di Ingress predefinito nel cluster e può inoltrare le richieste in arrivo alle applicazioni.
-
Ottenere l'indirizzo IP del vecchio servizio di controller di ingresso sulla vecchia VLAN. Cluster multizona: Se sono state modificate le VLAN per i nodi worker in più zone, ottenere l'indirizzo IP per il servizio del controller di ingresso in ogni zona in cui sono state modificate le VLAN. Si noti che il servizio di controller Ingress nella prima zona in cui sono presenti nodi lavoratori si chiama sempre
router-default
, mentre i servizi di controller Ingress nelle zone aggiunte successivamente al cluster hanno nomi comerouter-dal12
.oc get svc -n openshift-ingress
Output di esempio per un cluster multizona:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE router-dal12 LoadBalancer 172.21.190.62 169.XX.XX.XX 80:32318/TCP,443:30915/TCP 51d router-default LoadBalancer 172.21.47.119 169.XX.XX.XX 80:31311/TCP,443:32561/TCP 78d router-internal-default ClusterIP 172.21.51.30 <none> 80/TCP,443/TCP,1936/TCP 78d
-
Rimuovere l'indirizzo IP del vecchio servizio del controller Ingress individuato al punto 2 dall'hostname del controller Ingress. Cluster multizona: Includere ogni indirizzo IP separatamente nelle opzioni ripetute di
--ip
.ibmcloud oc nlb-dns rm classic -c <cluster_name_or_ID> --ip <old_IP> --nlb-host <hostname>
-
Verificare che l'hostname del controller di Ingress sia registrato con il nuovo indirizzo IP. Dopo che l'hostname del controller di Ingress è stato aggiornato con l'indirizzo IP del nuovo servizio, non sono necessarie ulteriori modifiche al controller di Ingress o alle rotte.
ibmcloud oc nlb-dns ls -c <cluster_name_or_ID>
-
Cancellare il servizio del controllore di ingresso sulla vecchia VLAN.
oc delete svc <old_router_svc> -n openshift-ingress
-
Facoltativo: se non hai più bisogno delle sottoreti delle vecchie VLAN, puoi rimuoverle.