Nota

Usa un catalogo applicazioni con Oracle Cloud Native Environment

Introduzione

Un catalogo di applicazioni è un repository software ricercabile che è possibile installare su un cluster Kubernetes Oracle Cloud Native Environment (Oracle CNE). Oracle CNE supporta due cataloghi di applicazioni: il catalogo Oracle fornito con Oracle CNE e il catalogo esterno compatibile con Artifact Hub.

Il catalogo Oracle offre una selezione curata di software forniti da Oracle. Oracle CNE viene fornito con un catalogo integrato denominato incorporato. È possibile utilizzare il catalogo incorporato senza distribuire un cluster Kubernetes. Il catalogo incorporato viene aggiornato quando si aggiorna l'interfaccia CLI ocne.

L'altro catalogo fornito con Oracle CNE è denominato Oracle Cloud Native Environment Application Catalog. Questo catalogo viene distribuito nel cluster Kubernetes come pod ocne-catalog nello spazio di nomi ocne-system.

Il catalogo incorporato viene aggiornato quando si aggiorna l'interfaccia CLI ocne e l'Oracle Catalog viene aggiornato quando si aggiorna la versione di Kubernetes. Questo comportamento indica che i contenuti dei due cataloghi forniti da Oracle potrebbero differire.

Obiettivi

In questo tutorial imparerai:

Prerequisiti

Configura Oracle CNE

Nota: se è in esecuzione nella propria tenancy, leggere il progetto linux-virt-labs GitHub README.md e completare i prerequisiti prima di distribuire l'ambiente di esercitazione pratica.

  1. Aprire un terminale sul Luna Desktop.

  2. Duplica il progetto linux-virt-labs GitHub.

    git clone https://github.com/oracle-devrel/linux-virt-labs.git
    
  3. Passare alla directory di lavoro.

    cd linux-virt-labs/ocne2
    
  4. Installare le raccolte richieste.

    ansible-galaxy collection install -r requirements.yml
    
  5. Implementa l'ambiente di laboratorio.

    ansible-playbook create_instance.yml -e localhost_python_interpreter="/usr/bin/python3.6" -e install_ocne_rpm=true -e create_ocne_cluster=true -e "ocne_cluster_node_options='-n 1 -w 1'"
    

    L'ambiente di laboratorio gratuito richiede la variabile aggiuntiva local_python_interpreter, che imposta ansible_python_interpreter per le riproduzioni in esecuzione su localhost. Questa variabile è necessaria perché l'ambiente installa il pacchetto RPM per l'SDK Oracle Cloud Infrastructure per Python, situato sotto i moduli python3.6.

    La forma di distribuzione predefinita utilizza la CPU AMD e Oracle Linux 8. Per utilizzare una CPU Intel o Oracle Linux 9, aggiungere -e instance_shape="VM.Standard3.Flex" o -e os_version="9" al comando di distribuzione.

    Importante: attendere la corretta esecuzione della guida e raggiungere il task di sospensione. In questa fase della guida, l'installazione di Oracle CNE è stata completata e le istanze sono pronte. Prendi nota della riproduzione precedente, che stampa gli indirizzi IP pubblici e privati dei nodi che distribuisce e qualsiasi altra informazione di distribuzione necessaria durante l'esecuzione del laboratorio.

Accedi al cluster Kubernetes

  1. Aprire un terminale e connettersi tramite SSH all'istanza ocne.

    ssh oracle@<ip_address_of_instance>
    
  2. Attendere la stabilizzazione del cluster e la segnalazione di tutti i pod in esecuzione.

    watch kubectl get pods -A
    

    Dopo che tutti i pod hanno mostrato uno STATUS di In esecuzione, digitare ctrl-c per uscire dal comando watch.

  3. Confermare il numero di nodi presenti.

    kubectl get nodes
    

Gestione di un catalogo

  1. Elenca i cataloghi disponibili.

    ocne catalog list
    
  2. Visualizzare i dettagli relativi al catalogo Oracle.

    ocne catalog get --name 'Oracle Cloud Native Environment Application Catalog'
    

    Output di esempio:

    [oracle@ocne ~]$ ocne catalog get --name 'Oracle Cloud Native Environment Application Catalog'
    
    Catalog
    --------
    apiVersion: v1
    entries:
      bootstrap-capi:
      - apiVersion: v2
        appVersion: 1.9.4
        created: "2025-02-24T01:37:20.540493324Z"
        description: A Helm chart for Cluster API bootstrap providers
    ...
    ...
        name: ui
        sources:
        - https://github.com/headlamp-k8s/headlamp/tree/main/charts/headlamp
        - https://github.com/headlamp-k8s/headlamp
        type: application
        urls:
        - ui-2.0.0.tgz
        version: 2.0.0
    
  3. Elenca tutte le applicazioni nel catalogo Oracle.

    ocne catalog search
    

    Output di esempio:

    [oracle@ocne ~]$ ocne catalog search
    APPLICATION             	VERSION
    bootstrap-capi          	1.9.4  
    bootstrap-capi          	1.7.1  
    cert-manager            	1.14.5
    ...
    ...
    tigera-operator         	1.29.3 
    ui                      	2.0.0  
    
  4. Cercare un elemento specifico nel catalogo Oracle.

    ocne catalog search --pattern 'prom*'
    

    Output di esempio:

    [oracle@ocne ~]$ ocne catalog search --pattern 'prom*'
    APPLICATION             	VERSION
    kube-prometheus-stack   	0.63.0 
    kube-proxy              	2.0.0  
    prometheus              	2.31.1 
    prometheus-adapter      	0.10.0 
    prometheus-node-exporter	1.6.1  
    

Analisi delle applicazioni installate

  1. Elencare le applicazioni installate nel cluster.

    ocne application list -A
    

    Output di esempio:

    [oracle@ocne ~]$ ocne application list -A
    Releases
    NAME                       	NAMESPACE   	CHART                      	STATUS  	REVISION	APPVERSION
    core-dns                   	kube-system 	coredns                    	deployed	1       	2.0.0     
    flannel                    	kube-flannel	flannel                    	deployed	1       	2.0.0     
    kube-proxy                 	kube-system 	kube-proxy                 	deployed	1       	2.0.0     
    kubernetes-gateway-api-crds	kube-system 	kubernetes-gateway-api-crds	deployed	1       	1.2.1     
    oci-ccm                    	kube-system 	oci-ccm                    	deployed	1       	1.30.0    
    ocne-catalog               	ocne-system 	ocne-catalog               	deployed	1       	2.0.0     
    ui                         	ocne-system 	ui                         	deployed	1       	2.0.0  
    

    Nota: questo è un modo utile per confermare quali applicazioni di un catalogo sono state distribuite nel cluster.

  2. Rivedere i dettagli dell'applicazione installata.

    ocne application show --namespace ocne-system --release ui
    

    dove:

    • --namespace: lo spazio di nomi in cui viene distribuita l'applicazione.
    • --release: il nome dell'applicazione
    • --computed: non utilizzato in questo esempio, ma restituisce i dettagli della distribuzione YAML utilizzata dall'applicazione distribuita.

    Output di esempio:

    [oracle@ocne ~]$ ocne application show --namespace ocne-system --release ui
    image:
      tag: current
    ----------------
    NAME: ui
    NAMESPACE: ocne-system
    CHART: ui
    STATUS: deployed
    REVISION: 1
    APPVERSION: 2.0.0
    

Installa un'applicazione

  1. Installare l'applicazione kube-prometheus-stack.

    ocne application install --release kube-prometheus-stack --namespace default --name kube-prometheus-stack
    

    Output di esempio:

    [oracle@ocne ~]$ ocne application install --release kube-prometheus-stack --namespace default --name kube-prometheus-stack
    INFO[2025-03-21T16:24:58Z] Application installed successfully  
    
  2. Confermare l'installazione dell'applicazione.

    ocne application list -A
    

    Output di esempio:

    [oracle@ocne ~]$ ocne application list -A
    Releases
    NAME                       	NAMESPACE   	CHART                      	STATUS  	REVISION	APPVERSION
    core-dns                   	kube-system 	coredns                    	deployed	1       	2.0.0     
    flannel                    	kube-flannel	flannel                    	deployed	1       	2.0.0     
    kube-prometheus-stack      	default     	kube-prometheus-stack      	deployed	1       	0.63.0    
    kube-proxy                 	kube-system 	kube-proxy                 	deployed	1       	2.0.0     
    kubernetes-gateway-api-crds	kube-system 	kubernetes-gateway-api-crds	deployed	1       	1.2.1     
    oci-ccm                    	kube-system 	oci-ccm                    	deployed	1       	1.30.0    
    ocne-catalog               	ocne-system 	ocne-catalog               	deployed	1       	2.0.0     
    ui                         	ocne-system 	ui                         	deployed	1       	2.0.0  
    
  3. Verificare che tutti i pod siano in esecuzione.

    kubectl get pods -n default
    

    Output di esempio:

    [oracle@ocne ~]$ kubectl get pods -n default
    NAME                                                       READY   STATUS    RESTARTS   AGE
    alertmanager-kube-prometheus-stack-alertmanager-0          2/2     Running   0          2m30s
    kube-prometheus-stack-kube-state-metrics-f5869c58f-fnncf   1/1     Running   0          2m37s
    kube-prometheus-stack-operator-76b9d6954f-7rnqc            1/1     Running   0          2m37s
    kube-prometheus-stack-prometheus-node-exporter-g6b6n       1/1     Running   0          2m37s
    kube-prometheus-stack-prometheus-node-exporter-prqxd       1/1     Running   0          2m37s
    kube-prometheus-stack-prometheus-node-exporter-sppst       1/1     Running   0          2m37s
    kube-prometheus-stack-prometheus-node-exporter-vw797       1/1     Running   0          2m37s
    prometheus-kube-prometheus-stack-prometheus-0              2/2     Running   0          2m30s
    
  4. Reindirizza il traffico locale al servizio Prometheus nel cluster.

    kubectl port-forward -n default svc/kube-prometheus-stack-prometheus 9091:9090
    

    Output di esempio:

    [oracle@ocne ~]$ kubectl port-forward -n default svc/kube-prometheus-stack-prometheus 9091:9090
    Forwarding from 127.0.0.1:9091 -> 9090
    Forwarding from [::1]:9091 -> 9090
    

Accedi all'interfaccia utente Prometheus

  1. Aprire una nuova finestra del terminale e configurare un tunnel SSH per l'istanza ocne.

    ssh -L 9093:localhost:9091 oracle@<ip_address_of_node>
    
  2. Aprire un browser Web e immettere l'URL.

    http://localhost:9093/metrics
    

    prometeo-metrica

    Questo output conferma che i parametri kube-state-metrics, gli esportatori di nodi e Alert Manager, che sono componenti di kube-prometheus-stack, stanno attivamente estraendo le metriche in Prometheus.

  3. Chiudere il browser e uscire dalla finestra del terminale con il tunnel SSH, in quanto non sono più necessari.

  4. Passare alla sessione terminale che esegue la porta in avanti.

  5. Arrestare la porta in avanti digitando ctrl-c.

Disinstallare un'applicazione

  1. Disinstallare l'applicazione kube-prometheus-stack.

    Questo passo rimuove i componenti Kubernetes associati all'applicazione ed elimina l'istanza.

    ocne application uninstall --release kube-prometheus-stack --namespace default
    

    Output di esempio:

    [oracle@ocne ~]$ ocne application uninstall --release kube-prometheus-stack --namespace default
    INFO[2025-03-21T18:52:59Z] Uninstalling release kube-prometheus-stack   
    INFO[2025-03-21T18:53:01Z] kube-prometheus-stack uninstalled successfully 
    
  2. Confermare che è stato disinstallato.

    ocne application list -A
    
  3. Rimuovere le definizioni delle risorse personalizzate (CRD) Kubernetes associate a kube-prometheus-stack.

    Alcune applicazioni richiedono di completare i passi manuali dopo aver disinstallato l'applicazione utilizzando il comando ocne application uninstall. I dettagli di ciascuna applicazione sono disponibili nella directory grafici del progetto Oracle CNE GitHub.

    kubectl delete crd alertmanagerconfigs.monitoring.coreos.com
    kubectl delete crd alertmanagers.monitoring.coreos.com
    kubectl delete crd podmonitors.monitoring.coreos.com
    kubectl delete crd probes.monitoring.coreos.com
    kubectl delete crd prometheuses.monitoring.coreos.com
    kubectl delete crd prometheusrules.monitoring.coreos.com
    kubectl delete crd servicemonitors.monitoring.coreos.com
    kubectl delete crd thanosrulers.monitoring.coreos.com
    

    Output di esempio:

    [oracle@ocne ~]$ kubectl delete crd alertmanagerconfigs.monitoring.coreos.com
    customresourcedefinition.apiextensions.k8s.io "alertmanagerconfigs.monitoring.coreos.com" deleted
    [oracle@ocne ~]$ kubectl delete crd alertmanagers.monitoring.coreos.com
    customresourcedefinition.apiextensions.k8s.io "alertmanagers.monitoring.coreos.com" deleted
    [oracle@ocne ~]$ kubectl delete crd podmonitors.monitoring.coreos.com
    customresourcedefinition.apiextensions.k8s.io "podmonitors.monitoring.coreos.com" deleted
    [oracle@ocne ~]$ kubectl delete crd probes.monitoring.coreos.com
    customresourcedefinition.apiextensions.k8s.io "probes.monitoring.coreos.com" deleted
    [oracle@ocne ~]$ kubectl delete crd prometheuses.monitoring.coreos.com
    customresourcedefinition.apiextensions.k8s.io "prometheuses.monitoring.coreos.com" deleted
    [oracle@ocne ~]$ kubectl delete crd prometheusrules.monitoring.coreos.com
    customresourcedefinition.apiextensions.k8s.io "prometheusrules.monitoring.coreos.com" deleted
    [oracle@ocne ~]$ kubectl delete crd servicemonitors.monitoring.coreos.com
    customresourcedefinition.apiextensions.k8s.io "servicemonitors.monitoring.coreos.com" deleted
    

    L'applicazione, in questo esempio, kube-prometheus-stack, è ora completamente rimossa dal cluster Kubernetes,

Passi successivi

In questa esercitazione viene descritto per cosa si utilizza un catalogo. Quindi, come installare, eseguire e rimuovere un'applicazione da un catalogo nel cluster Kubernetes Oracle CNE. Per ulteriori dettagli, consulta la documentazione di Oracle CNE.

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.