Nota
- Questa esercitazione richiede l'accesso a Oracle Cloud. Per iscriverti a un account gratuito, consulta Inizia a utilizzare Oracle Cloud Infrastructure Free Tier.
- Utilizza valori di esempio per le credenziali, la tenancy e i compartimenti di Oracle Cloud Infrastructure. Al termine del laboratorio, sostituisci questi valori con quelli specifici del tuo ambiente cloud.
Gestisci il motore Kubernetes OCI con tipi di capacità diversi e risolvi problemi comuni sui nodi prerilasciabili
Introduzione
Mentre continuiamo attraverso ogni ciclo di trasformazione digitale, le aziende continuano a innovare e iterare, spingendo i confini di ciò che è possibile per l'infrastruttura, le applicazioni e la gestione su larga scala. Una delle tecnologie più recenti e ampiamente adottate utilizzate per supportare la gestione dell'infrastruttura e delle applicazioni è Kubernetes. Prima di immergerci ulteriormente in Kubernetes, dobbiamo prima guardare sotto il cofano il concetto di container.
I container sono un pacchetto software che include una raccolta di codice specifico dell'applicazione insieme al runtime necessario e alle librerie di programmi per supportare l'esecuzione affidabile di un'applicazione. I container sono configurati per essere eseguiti all'interno di uno spazio utente all'interno del sistema operativo del server di base. Questa architettura consente il disaccoppiamento dei servizi di base e delle dipendenze per una distribuzione leggera di un'applicazione. I vantaggi della containerizzazione delle applicazioni includono miglioramenti nell'isolamento del carico di lavoro, nell'efficienza delle risorse, nella scalabilità e nella tolleranza agli errori.
Per sfruttare la potenza e l'efficienza dei container su larga scala, abbiamo bisogno di una sorta di strumenti per interfacciare o gestire le nostre implementazioni basate su container. Kubernetes, noto anche come K8s, è uno strumento di orchestrazione dei container open source che automatizza la distribuzione dei container creando un cluster di server per i quali è possibile eseguire, ridimensionare e distribuire i container agli utenti. L'architettura del cluster Kubernetes include un nodo principale (piano di controllo) e più nodi di lavoro. Ogni lavoratore ospita uno o più pod (raccolta di container) che distribuiscono l'applicazione.
Obiettivi
- Lavora con Oracle Cloud Infrastructure Kubernetes Engine (OCI Kubernetes Engine o OKE) per diversi tipi di capacità e risolvi i problemi comuni in modalità prerilasciabile.
Prerequisiti
- Accesso amministratore a una tenancy OCI e a un cluster OKE in esecuzione.
In che modo viene posizionato Oracle con la tecnologia dei container?
OKE è un servizio Kubernetes completamente gestito, scalabile e ad alta disponibilità che consente ai clienti di distribuire applicazioni containerizzate nel cloud. OKE offre ai clienti OCI la possibilità di ottimizzare l'utilizzo delle risorse di calcolo per soddisfare requisiti specifici dei carichi di lavoro e adattarsi rapidamente al variare dei requisiti dei carichi di lavoro. OKE offre una customer experience perfetta che offre ai clienti un rapporto qualità-prezzo senza precedenti, efficienza delle risorse, portabilità e affidabilità. OKE offre diverse integrazioni chiave con vari prodotti di gestione del ciclo di vita dei container, tra cui registri dei container, framework CI/CD, soluzioni di rete, opzioni di storage e funzioni di sicurezza di prim'ordine.
In OKE, è possibile specificare il tipo di cluster come cluster di base o avanzati. I cluster di base supportano tutte le funzionalità di base fornite da OKE. Per abilitare ulteriori funzionalità, i cluster avanzati supportano tutte le funzioni disponibili, tra cui i nodi virtuali, i nodi autogestiti, la gestione dei componenti aggiuntivi dei cluster, le configurazioni più granulari di Oracle Cloud Infrastructure Identity and Access Management (OCI IAM) e così via.
OKE su tipi di capacità diversi
-
Capacità su richiesta: la capacità su richiesta è la capacità disponibile standard di un determinato tipo di forma. Questo è il tipo di capacità predefinito ed è effettivamente pagato per l'utilizzo. Sebbene questa sia la scelta standard, a seconda del tipo di forma e della tempistica, può essere difficile soddisfare queste richieste per carichi di lavoro multi-istanza di grandi dimensioni.
-
Capacità riservata: le assegnazioni capacità possono essere utilizzate per eseguire il provisioning dei nodi gestiti OKE. Le assegnazioni capacità vengono generalmente utilizzate per garantire una capacità disponibile sufficiente per i carichi di lavoro business-critical durante gli eventi che incidono sulla produzione, tra cui la manutenzione pianificata, la crescita della domanda degli utenti e il disaster recovery. Le assegnazioni capacità comportano un costo dell'85% del prezzo di listino SKU mentre le risorse impegnate non vengono utilizzate attivamente. Per utilizzare un'assegnazione capacità, è innanzitutto necessario creare l'oggetto assegnazione capacità e specificare l'area o il dominio di disponibilità insieme al tipo di forma e alla dimensione. Dopo aver creato l'assegnazione capacità, è possibile specificare l'assegnazione specifica come tipo di capacità durante la distribuzione dei nodi nel pool di nodi.
-
Capacità prerilasciabile: ora è possibile eseguire il provisioning dei nodi gestiti OKE con forme di computazione prerilasciabili. Le forme prerilasciabili possono essere una fonte di risparmio sui costi (sconto del 50% dal prezzo di listino SKU), tuttavia, Oracle mantiene il diritto di recuperare queste risorse di calcolo se/quando necessario per una domanda con priorità più elevata. L'elaborazione prerilasciabile può essere una buona opzione se hai carichi di lavoro con tolleranza degli errori senza conservazione dello stato che possono resistere all'interruzione. Per la visibilità, puoi scegliere di ricevere una notifica quando un'istanza viene interrotta durante la distribuzione della computazione prerilasciabile. All'interno del cluster OKE, lo stato previsto del pool di nodi tenterà di avviare una nuova istanza o nuove istanze per sostituire le istanze recuperate.
Distribuzione OKE con pool di nodi prerilasciabili e OnDemand
Problemi noti con prerilasciabile
Esistono alcuni problemi noti quando si utilizza il prerilasciabile con OKE.
-
Problema: alcuni clienti ricevono l'errore NonRetryable BmcException: errore restituito dall'operazione LaunchInstance nel servizio di computazione. (400, InvalidParameter, false) Impossibile avviare un'istanza prerilasciabile con un ID assegnazione capacità durante la creazione delle forme prerilasciabili E3/E4.
- Soluzione: esiste un bug OKE noto con
<capacityreservationId>
vuoto e nodi di lavoro prerilasciabili. Se si tenta di utilizzare la capacità prerilasciabile durante la creazione di un pool di nodi tramite l'interfaccia della riga di comando di Oracle Cloud Infrastructure (OCI CLI) o il formato terra senza passare il parametro<capacityReservationId>
come parte della sezione di configurazione del posizionamento, è possibile creare nodi di lavoro prerilasciabili. Tuttavia, se si crea il pool di nodi tramite la console, viene passato un valore<capacityReservationId>
vuoto per impostazione predefinita che restituirà un errore durante il tentativo di utilizzare forme prerilasciabili. La soluzione consiste nell'impostare in modo esplicito<capacityReservationId>
su null nella configurazione del posizionamento.
- Soluzione: esiste un bug OKE noto con
-
Problema: quando si utilizzano due pool di nodi (uno con prerilasciabile, l'altro con on-demand) e si sfruttano gli espansori basati sulla priorità per il ridimensionatore automatico. Configurazione del pool di nodi prerilasciabile come pool di nodi su richiesta con priorità massima impostata da utilizzare se il pool di nodi prerilasciabile non è in buono stato a causa di un errore OutOfHostCapacity con capacità prerilasciabile. In alcuni casi, il ridimensionamento automatico del cluster non esegue il fallback al pool di nodi su richiesta anche se il pool di nodi prerilasciabile non è in buono stato se il pool di nodi ha 0 nodi.
- Soluzione: questa impostazione funzionerà, ma solo quando entrambi i pool di nodi hanno un minimo di 1 nodo ciascuno.
-
Problema: quando si seleziona la capacità prerilasciabile nella procedura guidata di provisioning OKE tramite la console, le forme AMD disponibili sono limitate a E3 e E4. E5 non è visualizzato. Tuttavia, la capacità prerilasciabile E5 è supportata per OKE.
-
Soluzione: creare pool di nodi gestiti con forma E5 prerilasciabile utilizzando l'API o l'interfaccia CLI.
--node-shape VM.Standard.E5.Flex
-
Task 1: passi per creare il pool di nodi di lavoro OKE prerilasciabile E5 mediante l'interfaccia della riga di comando (CLI, Command Line Interface)
-
Eseguire il login a OCI Console e fare clic sul menu Servizi.
-
Passare a Developer Services.
-
In Container e artifact, fare clic su Fare clic su Kubernetes Engine (OKE).
-
Fare clic su OCI Cloud shell per visualizzare l'interfaccia CLI.
-
Modificare l'OCID
node-pool
, l'OCIDcompartment
,subnet-id
,fault domain
, la configurazione e le dimensioni prima di eseguire i comandi CLI riportati di seguito nella tenancy.oci ce node-pool create --cluster-id ocid1.cluster.oc1.iad.aaaaaaaaxlokvt2r25b6dmdxxxxxxxxxxxxxxxxxkhdilj7kpehc5vke2ve5gq --compartment-id ocid1.compartment.oc1..aaaaaaaaqufgrkgzr4zb3dxxxxxxxxxxxxxxxxxxp7jx7yckglghxppfrui6a --name E5_Preemtible --node-shape VM.Standard.E5.Flex --placement-configs '[{"availabilityDomain": "FZyT:US-ASHBURN-AD-2", "preemptibleNodeConfig": {"preemptionAction":{"isPreserveBootVolume":true, "type": "TERMINATE"}}, "subnet-id": "ocid1.subnet.oc1.iad.aaaaaaaapmekowq4rqhu72xxxxxxxxxxxxxxxxxxxxtlkp4dmixebzhgrwdlmtteclq", "faultDomains":["FAULT-DOMAIN-1"]}]' --size 1 --node-image-id ocid1.image.oc1.iad.aaaaaaaajvtta4i5sq4xxxxxxxxxxxxxcskfxjwz4vwxz6ersmmax6q --node-shape-config '{"memoryInGBs": 6.0, "ocpus": 1.0}' --pod-subnet-ids '["ocid1.subnet.oc1.iad.aaaaaaaapmekowq4rqhxxxxxxxxxxxxxxxkp4dmixebzhgrwdlmtteclq"]'
Questa operazione restituirà l'OCID della richiesta di lavoro per la creazione del pool di nodi e creerà il nodo di lavoro prerilasciabile E5 nel cluster esistente, come mostrato nell'immagine seguente.
Collegamenti correlati
Conferme
- Autori - Payal Sharma (architetto senior di Enterprise Cloud), Anthony Vernava IV (architetto senior di Enterprise Cloud)
Altre risorse di apprendimento
Esplora altri laboratori su docs.oracle.com/learn o accedi a più contenuti gratuiti sulla formazione su Oracle Learning YouTube channel. Inoltre, visita education.oracle.com/learning-explorer per diventare un Oracle Learning Explorer.
Per la documentazione del prodotto, visita l'Oracle Help Center.
Manage OCI Kubernetes Engine with Different Capacity Types and Resolve Common Issues on Preemptible Nodes
G19913-01
November 2024