Nota:
- Questa esercitazione richiede l'accesso a Oracle Cloud. Per iscriversi 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.
Usare le istanze contenitore OCI per pianificare l'avvio e l'arresto per le istanze di computazione OCI
Introduzione
Oracle Cloud Infrastructure (OCI) Container Istanze è un servizio di calcolo serverless che consente di eseguire i contenitori in modo rapido e semplice senza gestire alcun server.
È possibile utilizzare il servizio Compute OCI per creare istanze di computazione Bare Metal o virtual machine (VM) per distribuire ed eseguire le applicazioni. OCI Compute ti consente di eseguire il provisioning e gestire gli host di computazione, noti come istanze.
Questa esercitazione descrive un esempio sull'uso delle istanze di container per gestire lo stato del ciclo di vita delle istanze di computazione in un compartimento (può essere estesa anche alla tenancy). Esistono casi in cui è necessario un metodo automatico per pianificare l'arresto o l'avvio delle istanze di computazione, ad esempio un job crontab. Ad esempio, hai bisogno che alcune delle tue istanze di computazione vengano eseguite il giorno stesso e interromperle durante la notte per risparmiare sui costi. Questo tipo di job "crontab" può essere creato utilizzando il servizio Istanza contenitore OCI.
In sostanza, l'istanza del container esegue codice Python alla ricerca di un tag in formato libero specifico in ogni istanza di computazione, in un loop. Se trova la tag specifica, confronterà il valore della tag con l'ora corrente (quando lo script viene eseguito) per stabilire se l'istanza di computazione deve essere in esecuzione o arrestata in tale momento e decide di arrestare o avviare l'istanza di computazione.
Obiettivi
- Creare un'immagine Docker
- Creare un'istanza di container da un'immagine personale
- Collabora con Oracle Cloud Infrastructure Registry
- Passare un argomento al contenitore ENTRYPOINT
Prerequisiti
- Conoscenza di Docker, immagini, registro.
- I privilegi dell'utente per poter creare gruppi dinamici e criteri (questi consentiranno all'istanza del contenitore di gestire le istanze di computazione). Se l'utente non dispone di questi privilegi, un amministratore della tenancy può creare il gruppo dinamico e il criterio.
- Docker in esecuzione sul computer in cui esegui questa esercitazione.
- Privilegi utente per utilizzare le immagini (push, pull, tag) in Oracle Cloud Infrastructure Registry e un token creato per il login a Oracle Cloud Infrastructure Registry.
- Acquisire familiarità con il push delle immagini in Oracle Cloud Infrastructure Registry.
Task 1: creare un gruppo dinamico per consentire all'istanza del contenitore di gestire le istanze di computazione
-
Questa operazione è necessaria per consentire (utilizzando un criterio) all'istanza del contenitore in esecuzione di gestire le istanze di computazione nel compartimento.
-
Creare una regola di corrispondenza per il gruppo dinamico come mostrato nel comando seguente.
ALL {resource.type = 'computecontainerinstance', resource.compartment.id = 'ocid1.compartment.oc1…… '}
Task 2: creare un criterio per consentire alle risorse del gruppo dinamico di gestire le istanze di computazione
-
Creare il criterio seguente.
allow dynamic-group <dynamic group name> to manage instances in compartment <compartment name>
Task 3: creare l'immagine Docker
-
Creare una cartella locale.
-
Estrarre il contenuto di files.zip e copiare tutti i file nella cartella locale.
-
Il file
requirements.txt
contiene pacchetti Python che verranno installati. Per il momento, è sufficiente il pacchetto oci. -
Crea l'immagine utilizzando Docker.
docker build -t start_stop_compute:latest .
Task 4: caricare l'immagine in Oracle Cloud Infrastructure Registry
-
Eseguire il login prima di eseguire il push dell'immagine in Oracle Cloud Infrastructure Registry. Per ulteriori informazioni, consulta la sezione relativa al login a Oracle Cloud Infrastructure Registry.
-
Contrassegnare l'immagine appena creata come mostrato nell'esempio seguente. Per ulteriori informazioni su come impostare l'identificativo immagine e la tag di destinazione per il repository di Oracle Cloud Infrastructure Registry, vedere Posing Images Using the Docker CLI.
docker tag start_stop_compute:latest fra.ocir.io/orasenatdpltintegration03/fvassrepo1/start_stop_compute:latest
-
Eseguire il push dell'immagine in Oracle Cloud Infrastructure Registry.
docker push fra.ocir.io/orasenatdpltintegration03/fvassrepo1/start_stop_compute:latest
Task 5: definire una tag in formato libero nell'istanza di computazione
-
Se si utilizza il codice fornito in questa esercitazione, il tag in formato libero deve essere denominato
myschedule
. Il motivo è che il codice Python in esecuzione all'interno del contenitore sta cercando una tag in formato libero (nei metadati di calcolo) denominatamyschedule
. -
Se desideri che le istanze di computazione siano gestite in base a quanto previsto da questa esercitazione, devi aggiungere la tag in formato libero denominata
myschedule
a ogni istanza di computazione. -
Il valore del tag in formato libero deve essere indicato nella sezione seguente, dove "s" significa STOPPED e "r" significa RUNNING.
s,s,s,s,s,s,s,s,r,r,r,r,r,r,r,r,r,s,s,s,s,s,s,s
-
Ogni elemento dell'elenco corrisponde a un'ora del giorno che inizia con mezzanotte (da 00 a 01 AM). Pertanto, l'elemento 0 corrisponde all'intervallo tra 00 e 01 AM del giorno e "s" indica che l'istanza deve essere arrestata.
myschedule[0] from 00 to 01 AM => s means instance should be stopped myschedule[8] from 08 to 09 AM => r means instance should be running
-
In base ai dettagli sopra riportati, l'istanza dovrebbe essere eseguita come mostrato nella sezione riportata di seguito.
00-08 stopped 08-17 running 17-00 stopped
Task 6: creare l'istanza del contenitore
-
Seguire il workflow dalla console Web OCI e creare una nuova istanza di contenitore.
-
Scegliere l'immagine di cui è stato eseguito il push in Oracle Cloud Infrastructure Registry nel task 4.
-
Passare come argomento del punto di ingresso l'OCID del compartimento in cui gestire le istanze di computazione con il codice indicato nella seguente immagine.
Collegamenti correlati
Approvazioni
- Francisc Vass (Principal Cloud Architect)
Altre risorse di apprendimento
Esplora altri laboratori su docs.oracle.com/learn o accedi a contenuti di formazione gratuiti sul canale YouTube di Oracle Learning. Inoltre, visitare education.oracle.com/learning-explorer per diventare Explorer di Oracle Learning.
Per la documentazione sul prodotto, visitare il sito Oracle Help Center.
Use OCI Container Instances to schedule start and stop for OCI Compute Instances
F79241-01
March 2023
Copyright © 2023, Oracle and/or its affiliates.