Nota:
- Questa esercitazione è disponibile in un ambiente di laboratorio gratuito fornito da Oracle.
- Utilizza valori di esempio per le credenziali, la tenancy e i compartimenti di Oracle Cloud Infrastructure. Al termine del laboratorio, sostituire questi valori con quelli specifici del proprio ambiente cloud.
Distribuisci un load balancer esterno con Oracle Cloud Native Environment
Introduzione
Oracle Cloud Native Environment è una suite completamente integrata per lo sviluppo e la gestione di applicazioni cloud native. Il modulo Kubernetes è il modulo principale. Viene utilizzato per distribuire e gestire i container, nonché per installare e configurare automaticamente CRI-O, runC e Kata Containers. CRI-O gestisce il runtime del contenitore per un cluster Kubernetes. Il runtime può essere runC o Kata Containers.
Obiettivi
Questo tutorial/laboratorio dimostra come:
- Configura il cluster Kubernetes con il load balancer di Oracle Cloud Infrastructure per consentire l'alta disponibilità
- Configura Oracle Cloud Native Environment su un cluster a 5 nodi
- Verifica del failover di Load balancer tra i nodi del piano di controllo completato correttamente
Nota di supporto: l'uso di un load balancer esterno, ad esempio IS Oracle Cloud Instructure Load Balancer, consigliato per le distribuzioni di produzione.
Prerequisiti
In questa sezione sono elencati i sistemi host per eseguire i passi di questa esercitazione. È necessario:
-
6 sistemi Oracle Linux da utilizzare come:
- Nodo operatore (ocne-operator)
- 3 nodi del piano di controllo Kubernetes (ocne-control01, ocne-control02, ocne-control03)
- 2 nodi di lavoro Kubernetes (ocne-worker01, ocne-worker02)
- 1 sistema Oracle Linux con kubectl installato (sysop01)
Nota: in un ambiente di produzione, si consiglia di disporre di un cluster con almeno cinque nodi del piano di controllo e almeno tre nodi di lavoro.
-
Ogni sistema deve avere almeno uno dei seguenti supporti installati:
- Oracle Linux 8 (x86_64) più recente installato ed in esecuzione su Unbreakable Enterprise Kernel Release 6 (UEK R6)
-
Questo ambiente è preconfigurato con i seguenti elementi:
- Account utente
oraclecreato (utilizzato durante l'installazione) - Accesso
sudoall'accountoracleconcesso - Impostare tra le istanze SSH basato su chiave, noto anche come SSH senza password.
- Oracle Cloud Native Environment Release 1.5 installato (ma non è stato creato alcun ambiente)
- Account utente
Configura laboratorio
Nota: quando si utilizza l'ambiente di laboratorio gratuito, vedere Oracle Linux Lab Basics per informazioni sulla connessione e altre istruzioni sull'uso.
Questo laboratorio coinvolge più sistemi, ognuno dei quali richiede diverse fasi da eseguire. Si consiglia di iniziare aprendo una finestra o una scheda del terminale e collegandosi ai seguenti nodi. In questo modo, non dovrai più accedere ed eseguire il logout. I nodi sono:
- operatore OCNE
- Uno tra:
- ocne-control01
- ocne-control02
- ocne-control03
- sysop01
-
Aprire un terminale e connettersi tramite ssh a ciascun nodo.
ssh oracle@<ip_address_of_ol_node>
Impostare il load balancer (facoltativo)
Nota: se si utilizza l'ambiente di laboratorio gratuito, i passi presentati nella sezione non sono necessari perché la fase iniziale di distribuzione del laboratorio li ha completati. Gli utenti del laboratorio Luna devono invece procedere direttamente alla pagina successiva: Creare un file di configurazione CLI della piattaforma e continuare da lì. In caso contrario, i dettagli su come configurarli vengono forniti agli utenti che desiderano replicare questi passi nella propria tenancy di Oracle Cloud Infrastructure.
Crea un load balancer Oracle Cloud Infrastructure
-
Eseguire il login alla console cloud.

-
Fare clic sul menu hamburger (in alto a sinistra), quindi su Networking e Load balancer.

-
Viene visualizzata la pagina Load balancer.

-
Individuare il compartimento utilizzato dall'elenco a discesa.

-
Fare clic sul pulsante Crea load balancer.

-
Nella finestra di dialogo popup fare clic sul pulsante Crea load balancer per selezionare il tipo di load balancer predefinito.

Aggiorna dettagli load balancer
-
Individuare la sezione predefinita Tipo di visibilità e fare clic sull'opzione Privato.

-
Scorrere più avanti la pagina fino alla sezione Scegliere la rete.
-
Selezionare il valore fornito nella casella di riepilogo a discesa per Visual Cloud Network e Subnet.
Nota: i valori mostrati nell'immagine saranno diversi ogni volta che viene avviato il laboratorio.

-
Fare clic su Avanti per spostarsi al passo successivo.
Imposta criteri e protocollo load balancer
-
Ora impostare il protocollo per i criteri di bilanciamento del carico e il controllo dello stato.
- Accettare il criterio di bilanciamento del carico predefinito, Weighted Round Robin
-
Nella sezione Specificare il criterio di controllo dello stato immettere le impostazioni mostrate.
- In Protocollo selezionare TCP
- Modificare il valore della porta da 80 a 6443

Aggiungi nodi backend
-
Fare clic sul pulsante Aggiungi backend per visualizzare una finestra.

-
Selezionare i nodi riportati di seguito e fare clic sul pulsante Aggiungi backend selezionati.
- ocne-control01
- ocne-control02
- ocne-control03
-
Aggiornare la colonna Porta per ogni server backend appena selezionato dal valore predefinito 80 al valore 6443.

-
Fare clic sul pulsante Avanti per passare alla fase successiva.
Configurare il listener del load balancer
-
Selezionare il pulsante TCP.
-
Modificare la porta utilizzata per il traffico di indirizzo da 443 a 6443
I valori immessi devono avere questo aspetto.

-
Fare clic sul pulsante Avanti.
Configurare i log del load balancer
-
Il passaggio finale durante il processo di installazione è costituito dalle opzioni Gestisci log.

Poiché non sono necessarie modifiche per questo scenario, fare clic sul pulsante Sottometti per creare il Load balancer.
Informazioni sui load balancer
-
Una volta creato, viene visualizzata una pagina di panoramica per il load balancer appena creato.

Nota: le sezioni Integral Health e Backend Sets Health potrebbero non essere visualizzate come OK (verde). Questo perché Oracle Cloud Native Environment non è stato ancora creato sul piano di controllo e sui nodi di lavoro Kubernetes. Le fasi successive affronteranno questo problema.
Creare un file di configurazione CLI piattaforma
Gli amministratori possono utilizzare un file di configurazione per semplificare la creazione e la gestione di ambienti e moduli. Il file di configurazione, scritto con una sintassi YAML valida, include tutte le informazioni sugli ambienti e sui moduli da creare. L'uso di un file di configurazione consente di salvare le voci ripetute delle opzioni del comando CLI della piattaforma.
Nota: se vengono immessi più nodi del piano di controllo nel file myenvironment.yaml utilizzato per configurare Oracle Cloud Native Environment, olcnectl richiede che i dettagli di un load balancer (nel caso in cui si tratti del load balancer Oracle Cloud Infrastructure) vengano immessi nel file myenvironment.yaml. Per ottenere questo risultato, immettere un nuovo argomento (
load-balancer: <enter-your-OCI-LB-ip-here>) in myenvironment.yaml.
File di configurazione di esempio:
environments: - environment-name: myenvironment globals: api-server: 127.0.0.1:8091 secret-manager-type: file olcne-ca-path: /etc/olcne/configs/certificates/production/ca.cert olcne-node-cert-path: /etc/olcne/configs/certificates/production/node.cert olcne-node-key-path: /etc/olcne/configs/certificates/production/node.key modules: - module: kubernetes name: mycluster args: container-registry: container-registry.oracle.com/olcne load-balancer: 10.0.0.<XXX>:6443 master-nodes: ocne-control01:8090,ocne-control02:8090,ocne-control03:8090 worker-nodes: ocne-worker01:8090,ocne-worker02:8090 selinux: enforcing restrict-service-externalip: true restrict-service-externalip-ca-cert: /etc/olcne/configs/certificates/restrict_external_ip/production/ca.cert restrict-service-externalip-tls-cert: /etc/olcne/configs/certificates/restrict_external_ip/production/node.cert restrict-service-externalip-tls-key: /etc/olcne/configs/certificates/restrict_external_ip/production/node.key
Durante la distribuzione del laboratorio, viene generato automaticamente un file di configurazione che può essere utilizzato nell'esercizio. Per ulteriori informazioni sulla creazione manuale di un file di configurazione, consultare la documentazione disponibile all'indirizzo Using a Configuration File.
Aggiornare il file di configurazione
-
(Su ocne-operator) Visualizzare il contenuto del file di configurazione.
cat ~/myenvironment.yaml -
(Su ocne-operator) Aggiungere il valore dell'indirizzo IPv4 del load balancer al file myenvironment.yaml.
LB_IP=$(oci lb load-balancer list --auth instance_principal --compartment-id $COMPARTMENT_OCID | jq -r '.data[]."ip-addresses"[]."ip-address"') sed -i "14i\ load-balancer: $LB_IP:6443" ~/myenvironment.yamlAffinché il comando precedente riesca, è necessario eseguire i passi preparatori riportati di seguito sul nodo operatore. Questi passi vengono eseguiti automaticamente nell'ambito della distribuzione del laboratorio gratuito.
-
Interfaccia CLI di Oracle Cloud Infrastructure installata.
-
Cercare l'OCID del compartimento in cui distribuire Oracle Cloud Native Environment.
-
Le variabili di ambiente sono state aggiunte al file
~/.bashrcdegli utenti.COMPARTMENT_OCID=<compartment_ocid>LC_ALL=C.UTF-8LANG=C.UTF-8
-
-
(Su ocne-operator) Verificare che il valore load balancer sia stato aggiunto al file myenviroment.yaml.
cat ~/myenvironment.yaml
Creare l'ambiente e il modulo Kubernetes
-
(Su ocne-operator) Creare l'ambiente.
cd ~ olcnectl environment create --config-file myenvironment.yamlOutput di esempio:
[oracle@ocne-operator ~]$ olcnectl environment create --config-file myenvironment.yaml Environment myenvironment created. -
(Su ocne-operator) Creare il modulo Kubernetes.
olcnectl module create --config-file myenvironment.yamlOutput di esempio:
[oracle@ocne-operator ~]$ olcnectl module create --config-file myenvironment.yaml Modules created successfully. -
(Su ocne-operator) Convalidare il modulo Kubernetes.
olcnectl module validate --config-file myenvironment.yamlOutput di esempio:
[oracle@ocne-operator ~]$ olcnectl module validate --config-file myenvironment.yaml Validation of module mycluster succeeded.In questo ambiente di laboratorio gratuito non sono presenti errori di convalida. In caso di errori, i comandi necessari per correggere i nodi vengono forniti come output di questo comando.
-
(Su ocne-operator) Installare il modulo Kubernetes.
olcnectl module install --config-file myenvironment.yamlNota: il completamento della distribuzione di Kubernetes nei nodi richiederà alcuni minuti.
Output di esempio:
[oracle@ocne-operator ~]$ olcnectl module install --config-file myenvironment.yaml Modules installed successfully. -
(Su ocne-operator) Verificare la distribuzione del modulo Kubernetes.
olcnectl module instances --config-file myenvironment.yamlOutput di esempio:
[oracle@ocne-operator ~]$ olcnectl module instances --config-file myenvironment.yaml INSTANCE MODULE STATE mycluster kubernetes installed ocne-control01:8090 node installed ocne-control02:8090 node installed ocne-control03:8090 node installed ocne-worker01:8090 node installed ocne-worker02:8090 node installed [oracle@ocne-operator ~]$
Imposta kubectl
-
(Nel nodo ocne-controlxx) Impostare il comando
kubectl.mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config export KUBECONFIG=$HOME/.kube/config echo 'export KUBECONFIG=$HOME/.kube/config' >> $HOME/.bashrc -
(Su sysop01) Configurare il comando
kubectl.-
Copiare il file di configurazione da uno dei nodi del piano di controllo.
mkdir -p $HOME/.kube ssh -o StrictHostKeyChecking=no 10.0.0.150 "sudo cat /etc/kubernetes/admin.conf" > $HOME/.kube/config -
Esportare la configurazione per l'uso con il comando
kubectl.sudo chown $(id -u):$(id -g) $HOME/.kube/config export KUBECONFIG=$HOME/.kube/config echo 'export KUBECONFIG=$HOME/.kube/config' >> $HOME/.bashrc
-
-
(Su sysop01) Verificare che funzioni
kubectl.kubectl get nodesOutput di esempio:
[oracle@sysop01 ~]$ kubectl get nodes NAME STATUS ROLES AGE VERSION ocne-control01 Ready control-plane,master 5m10s v1.23.7+1.el8 ocne-control02 Ready control-plane,master 3m33s v1.23.7+1.el8 ocne-control03 Ready control-plane,master 4m29s v1.23.7+1.el8 ocne-worker01 Ready <none> 3m15s v1.23.7+1.el8 ocne-worker02 Ready <none> 3m8s v1.23.7+1.el8 [oracle@sysop01 ~]$
Conferma che il load balancer gestisce l'indisponibilità del nodo del piano di controllo
L'installazione di Oracle Cloud Native Environment con tre nodi del piano di controllo dietro un load balancer esterno è completa.
La sezione successiva conferma che il load balancer esterno rileverà quando si verifica un errore in un nodo del piano di controllo e lo rimuoverà dal criterio di distribuzione del traffico Round Robin. Il passo finale del test dimostra che quando il nodo "mancante" viene recuperato, si ricollega automaticamente al cluster e diventa disponibile per gestire di nuovo il traffico basato su cluster.
Conferma attivazione load balancer
Se si utilizza l'ambiente di laboratorio gratuito, accedere alla console cloud come mostrato nella documentazione di base di Oracle Linux Lab.
Accedere ai dettagli del load balancer
-
Se non è già connesso, eseguire il login alla console cloud.

-
Fare clic sul menu hamburger (in alto a sinistra), quindi su Networking e Load balancer.

-
Viene visualizzata la pagina Load balancer.

-
Individuare il compartimento utilizzato dall'elenco a discesa.

Se hai bisogno di istruzioni su questo passaggio, consulta Nozioni di base su Oracle Linux Lab per i dettagli.
-
I dettagli del riepilogo del load balancer creato in precedenza devono avere un aspetto simile a questa immagine.

-
Fare clic sul collegamento ocne-load-balancer.
-
Scorrere fino al collegamento Set backend (sul lato sinistro del browser sotto l'intestazione Risorse).
-
Fare clic sul collegamento Set backend.

-
Viene visualizzato un collegamento al set backend esistente. Fare clic sul collegamento (in questo esempio si chiama ocne-lb-backend-set).

-
Fare clic sul collegamento Backend (sul lato sinistro del browser sotto l'intestazione Risorse).

-
La schermata conferma la presenza di tre nodi in buono stato.

Arresta una delle istanze del nodo del piano di controllo
-
Fare clic sul menu hamburger (in alto a sinistra) e andare a Computazione, quindi a Istanze.

-
Viene visualizzata la pagina Istanze.

-
Fare clic su uno dei nodi del piano di controllo elencati (ad esempio: ocne-control01).
-
Vengono visualizzati i dettagli dell'istanza.

-
Fare clic sul pulsante *Arresta.
-
Nella finestra di dialogo popup selezionare la casella di controllo Forza arresto dell'istanza disattivandola immediatamente, quindi fare clic sul pulsante Forza arresto istanza.
Nota: NON eseguire questa operazione in un sistema di produzione in quanto potrebbe causare perdita di dati, danneggiamento o peggioramento dell'intero sistema.

-
Attendere che la pagina Dettagli istanza confermi che l'istanza è Interrotta.

Verifica l'errore del nodo del piano di controllo registrato da Oracle Cloud Infrastructure Load Balancer
-
Passare a Networking > Load balancer.
-
Fare clic sul collegamento ocne-load-balancer.
-
In Risorse nel pannello in basso a sinistra, fare clic su Set backend.
-
Fare quindi clic sul nome visualizzato nella tabella Set backend, ad esempio ocne-lb-backend-set.
-
Fare clic su Backend per visualizzare i nodi.
Lo stato in questa pagina deve essere aggiornato automaticamente. La modifica dello stato visualizzato richiede in genere 2-3 minuti.
-
Lo stato della fase iniziale indicata nel report deve essere Avvertenza.

-
Qualche minuto dopo (~2-3 minuti) lo stato verrà aggiornato allo stato Critico. Ciò significa che il processo del load balancer di Oracle Cloud Infrastructure ha confermato che il nodo non risponde, pertanto il load balancer non inoltra più le richieste in entrata al nodo del piano di controllo backend non disponibile.

Conferma le risposte del cluster Oracle Cloud Native Environment
Dato che nel cluster rimangono almeno due membri attivi, i nodi del piano di controllo attivi devono rispondere ai comandi kubectl.
-
(Su sysop01) Verificare che
kubectlrisponda e segnala il nodo del piano di controllo appena arrestato comeNotReady(non disponibile).kubectl get nodesOutput di esempio:
[oracle@sysop01 ~]$ kubectl get nodes NAME STATUS ROLES AGE VERSION ocne-control01 NotReady control-plane,master 26m v1.23.7+1.el8 ocne-control02 Ready control-plane,master 25m v1.23.7+1.el8 ocne-control03 Ready control-plane,master 24m v1.23.7+1.el8 ocne-worker01 Ready <none> 24m v1.23.7+1.el8 ocne-worker02 Ready <none> 26m v1.23.7+1.el8 [oracle@sysop01 ~]$Nota:* è probabile che siano trascorsi 2-3 minuti prima della visualizzazione dello stato **NotReady. Ripetere il comando
kubectl get nodesperiodicamente finché lo stato non passa da Pronto a NotReady.
Riavviare il nodo del piano di controllo arrestato
-
Passare a Computazione > Istanze.
-
Fare clic sul nodo del piano di controllo arrestato in precedenza.
-
Avviare l'istanza facendo clic sul pulsante Avvia.
Attendere che la sezione Stato diventi Verde e che l'istanza sia In esecuzione.

Verifica che il nodo del piano di controllo raggiunga il cluster del load balancer di Oracle Cloud Infrastructure
-
Passare a Networking > Load balancer.
-
Fare clic sul collegamento ocne-load-balancer.
-
In Risorse nel pannello in basso a sinistra, fare clic su Set backend.
-
Fare quindi clic sul nome visualizzato nella tabella Set backend, ad esempio ocne-lb-backend-set.
-
Fare clic su Backend per visualizzare i nodi.
Lo stato in questa pagina deve essere aggiornato automaticamente. La modifica dello stato visualizzato richiede in genere 2-3 minuti.
-
Stato globale mostrerà lo stato Avvertenza fino a quando non viene rilevato il nodo riavviato.

-
Una volta rilevato, l'integrità globale restituirà OK.

In questa fase il nodo di controllo si è ricongiunto al cluster e tutti e tre i nodi del piano di controllo partecipano alla deposit round di ripartizione del traffico in entrata nel cluster.
Recupera lo stato del nodo del piano di controllo
-
(Su sysop01) Verificare che
kubectlrisponda e segnala il nodo del piano di controllo che è stato riavviato con statoReady(Disponibile).kubectl get nodesOutput di esempio:
[oracle@sysop01 ~]$ kubectl get nodes NAME STATUS ROLES AGE VERSION ocne-control01 Ready control-plane,master 26m v1.23.7+1.el8 ocne-control02 Ready control-plane,master 25m v1.23.7+1.el8 ocne-control03 Ready control-plane,master 24m v1.23.7+1.el8 ocne-worker01 Ready <none> 24m v1.23.7+1.el8 ocne-worker02 Ready <none> 26m v1.23.7+1.el8 [oracle@sysop01 ~]$*Nota: le modifiche dello stato possono richiedere 2-3 minuti prima che venga visualizzato lo stato aggiornato. Ripetere il comando
kubectl get nodesperiodicamente finché lo stato non viene modificato.Ciò conferma che il load balancer è stato configurato correttamente e che sta accettando le richieste.
Per ulteriori informazioni
- Documentazione di Oracle Cloud Native Environment
- Formazione su Oracle Cloud Native Environment
- Sottoscrizione al corso di formazione su Oracle Linux
- Curriculum Oracle Linux
Altre risorse di apprendimento
Esplora altri laboratori su docs.oracle.com/learn o visita altri contenuti di formazione gratuiti sul canale Oracle Learning YouTube. Inoltre, visitare education.oracle.com/learning-explorer per diventare un Oracle Learning Explorer.
Per la documentazione sul prodotto, visitare Oracle Help Center.
Deploy an External Load Balancer with Oracle Cloud Native Environment
F61283-03
September 2022
Copyright © 2022, Oracle and/or its affiliates.