Note:

Uso de un catálogo de aplicaciones con Oracle Cloud Native Environment

Introducción

Un catálogo de aplicaciones es un repositorio de software con capacidad de búsqueda que puede instalar en un cluster de Kubernetes de Oracle Cloud Native Environment (Oracle CNE). Oracle CNE soporta dos catálogos de aplicaciones: el catálogo de Oracle que se envía con Oracle CNE y el catálogo externo compatible con Artifact Hub.

El catálogo de Oracle proporciona una selección seleccionada de software proporcionado por Oracle. Oracle CNE incluye un catálogo incorporado denominado embedded. Puede utilizar el catálogo embebido sin desplegar un cluster de Kubernetes. El catálogo embedded se actualiza al actualizar la CLI ocne.

El otro catálogo que se incluye con Oracle CNE se denomina Catálogo de aplicaciones de Oracle Cloud Native Environment. Este catálogo se despliega en el cluster de Kubernetes como el pod ocne-catalog en el espacio de nombres ocne-system.

El catálogo embebido se actualiza al actualizar la CLI de ocne y el catálogo de Oracle se actualiza al actualizar la versión de Kubernetes. Este comportamiento significa que el contenido de los dos catálogos proporcionados por Oracle puede variar.

Objetivos

En este tutorial aprenderá lo siguiente:

Requisitos

Configurar Oracle CNE

Nota: Si se ejecuta en su propio arrendamiento, lea el proyecto linux-virt-labs GitHub README.md y complete los requisitos antes de desplegar el entorno de prácticas.

  1. Abra un terminal en el escritorio Luna.

  2. Clone el proyecto linux-virt-labs GitHub.

    git clone https://github.com/oracle-devrel/linux-virt-labs.git
    
  3. Cambie al directorio de trabajo.

    cd linux-virt-labs/ocne2
    
  4. Instale las recopilaciones necesarias.

    ansible-galaxy collection install -r requirements.yml
    
  5. Despliegue el entorno de prácticas.

    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'"
    

    El entorno de prácticas gratuito necesita la variable adicional local_python_interpreter, que define ansible_python_interpreter para las reproducciones que se ejecutan en localhost. Esta variable es necesaria porque el entorno instala el paquete de RPM para el SDK para Python de Oracle Cloud Infrastructure, ubicado en los módulos python3.6.

    La unidad de despliegue por defecto utiliza la CPU AMD y Oracle Linux 8. Para utilizar una CPU de Intel u Oracle Linux 9, agregue -e instance_shape="VM.Standard3.Flex" o -e os_version="9" al comando de despliegue.

    Importante: Espere a que el cuaderno de estrategias se ejecute correctamente y alcance la tarea de pausa. En esta etapa del manual, la instalación del CNE de Oracle está completa y las instancias están listas. Tome nota de la reproducción anterior, que imprime las direcciones IP públicas y privadas de los nodos que despliega y cualquier otra información de despliegue necesaria durante la ejecución del laboratorio.

Acceso al cluster de Kubernetes

  1. Abra un terminal y conéctese mediante SSH a la instancia ocne.

    ssh oracle@<ip_address_of_instance>
    
  2. Espere a que el cluster se estabilice y todos los pods informen en estado de ejecución.

    watch kubectl get pods -A
    

    Una vez que todos los pods muestren un STATUS de Running, escriba ctrl-c para salir del comando watch.

  3. Confirme cuántos nodos están presentes.

    kubectl get nodes
    

Gestión de un Catálogo

  1. Muestre los catálogos disponibles.

    ocne catalog list
    
  2. Muestre detalles sobre el catálogo de Oracle.

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

    Salida de ejemplo:

    [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. Muestre todas las aplicaciones del catálogo de Oracle.

    ocne catalog search
    

    Salida de ejemplo:

    [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. Busque en el catálogo de Oracle algo específico.

    ocne catalog search --pattern 'prom*'
    

    Salida de ejemplo:

    [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  
    

Revisión de aplicaciones instaladas

  1. Muestre las aplicaciones instaladas en el cluster.

    ocne application list -A
    

    Salida de ejemplo:

    [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: Esta es una forma útil de confirmar qué aplicaciones de un catálogo ha desplegado en el cluster.

  2. Revise los detalles de la aplicación instalada.

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

    Dónde:

    • --namespace: espacio de nombres en el que se despliega la aplicación.
    • --release: nombre de la aplicación
    • --computed: no se utiliza en este ejemplo, pero devuelve detalles del despliegue de YAML utilizado por la aplicación desplegada.

    Ejemplo de salida:

    [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
    

Instalación de Aplicación

  1. Instale la aplicación kube-prometheus-stack.

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

    Salida de ejemplo:

    [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. Confirme la instalación de la aplicación.

    ocne application list -A
    

    Salida de ejemplo:

    [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. Confirme que todos los pods se están ejecutando.

    kubectl get pods -n default
    

    Salida de ejemplo:

    [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. Redirija el tráfico local al servicio Prometheus en el cluster.

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

    Salida de ejemplo:

    [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
    

Acceder a la interfaz de usuario de Prometheus

  1. Abra una nueva ventana de terminal y configure un túnel SSH a la instancia ocne.

    ssh -L 9093:localhost:9091 oracle@<ip_address_of_node>
    
  2. Abra un explorador web e introduzca la URL.

    http://localhost:9093/metrics
    

    prometheus-metrics

    Esta salida confirma que kube-state-metrics, los exportadores de nodos y Alert Manager, que son componentes de kube-prometheus-stack, están raspando activamente las métricas en Prometheus.

  3. Cierre el explorador y salga de la ventana de terminal con el túnel SSH, ya que ya no son necesarios.

  4. Cambie a la sesión de terminal que ejecuta el puerto hacia adelante.

  5. Para detener el puerto hacia adelante, escriba ctrl-c.

Desinstalación de una aplicación

  1. Desinstale la aplicación kube-prometheus-stack.

    Este paso elimina los componentes de Kubernetes asociados a la aplicación y suprime la instancia.

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

    Salida de ejemplo:

    [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. Confirme que se ha desinstalado.

    ocne application list -A
    
  3. Elimine las definiciones de recursos personalizados (CRD) de Kubernetes asociadas a kube-prometheus-stack.

    Algunas aplicaciones requieren que complete los pasos manuales después de desinstalar la aplicación mediante el comando ocne application uninstall. Puede encontrar detalles para cada aplicación en el directorio charts del proyecto GitHub del CNE de Oracle.

    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
    

    Salida de ejemplo:

    [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
    

    La aplicación, en este ejemplo, kube-prometheus-stack, ahora se ha eliminado por completo del cluster de Kubernetes.

Pasos Siguientes

En este tutorial se presenta cómo se utiliza un catálogo. A continuación, cómo instalar, ejecutar y eliminar una aplicación de un catálogo en el cluster de Kubernetes CNE de Oracle. Consulte la documentación de Oracle CNE para obtener más información.

Más recursos de aprendizaje

Explore otros laboratorios en docs.oracle.com/learn o acceda a más contenido de formación gratuita en el canal YouTube de Oracle Learning. Además, visite education.oracle.com/learning-explorer para convertirse en un explorador de Oracle Learning.

Para obtener documentación sobre el producto, visite Oracle Help Center.