Remarques :

Utiliser un catalogue d'applications avec Oracle Cloud Native Environment

Introduction

Un catalogue d'applications est un référentiel de logiciels pouvant faire l'objet d'une recherche et que vous pouvez installer sur un cluster Kubernetes Oracle Cloud Native Environment (Oracle CNE). Oracle CNE prend en charge deux catalogues d'applications : le catalogue Oracle livré avec Oracle CNE et le catalogue externe compatible avec Artifact Hub.

Le catalogue Oracle fournit une sélection organisée de logiciels fournis par Oracle. Oracle CNE est livré avec un catalogue intégré appelé embedded. Vous pouvez utiliser le catalogue embedded sans déployer de cluster Kubernetes. Le catalogue embedded est mis à jour lorsque vous mettez à jour l'interface de ligne de commande ocne.

L'autre catalogue fourni avec Oracle CNE est appelé Catalogue d'applications Oracle Cloud Native Environment. Ce catalogue est déployé sur votre cluster Kubernetes en tant que pod ocne-catalog dans l'espace de noms ocne-system.

Le catalogue embedded est mis à jour lorsque vous mettez à jour l'interface de ligne de commande ocne, et le catalogue Oracle est mis à jour lorsque vous mettez à jour la version de Kubernetes. Ce comportement signifie que le contenu des deux catalogues fournis par Oracle peut être différent.

Objectifs

Dans ce tutoriel, vous allez apprendre :

Prérequis

Configurer Oracle CNE

Remarque : en cas d'exécution dans votre propre location, lisez le projet linux-virt-labs GitHub README.md et respectez les prérequis avant de déployer l'environnement d'atelier.

  1. Ouvrez un terminal sur le bureau Luna.

  2. Clonez le projet linux-virt-labs GitHub.

    git clone https://github.com/oracle-devrel/linux-virt-labs.git
    
  3. Accédez au répertoire de travail.

    cd linux-virt-labs/ocne2
    
  4. Installez les collections requises.

    ansible-galaxy collection install -r requirements.yml
    
  5. Déployez l'environnement d'exercice.

    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'environnement d'exercice gratuit nécessite la variable supplémentaire local_python_interpreter, qui définit ansible_python_interpreter pour les lectures exécutées sur localhost. Cette variable est nécessaire car l'environnement installe le package RPM pour le kit SDK Oracle Cloud Infrastructure pour Python, situé sous les modules python3.6.

    La forme de déploiement par défaut utilise la CPU AMD et Oracle Linux 8. Pour utiliser une CPU Intel ou Oracle Linux 9, ajoutez -e instance_shape="VM.Standard3.Flex" ou -e os_version="9" à la commande de déploiement.

    Important : attendez que le playbook s'exécute correctement et atteignez la tâche de pause. A ce stade du manuel, l'installation du CNE Oracle est terminée et les instances sont prêtes. Notez la lecture précédente, qui imprime les adresses IP publiques et privées des noeuds qu'elle déploie, ainsi que toute autre information de déploiement nécessaire lors de l'exécution de l'exercice.

Accéder au cluster Kubernetes

  1. Ouvrez un terminal et connectez-vous via SSH à l'instance ocne.

    ssh oracle@<ip_address_of_instance>
    
  2. Attendez que le cluster se stabilise et que tous les pods génèrent un rapport en cours d'exécution.

    watch kubectl get pods -A
    

    Une fois que tous les pods ont le statut STATUS Running, saisissez ctrl-c pour quitter la commande watch.

  3. Vérifiez le nombre de noeuds présents.

    kubectl get nodes
    

Gestion d'un catalogue

  1. Répertoriez les catalogues disponibles.

    ocne catalog list
    
  2. Affichez les détails du catalogue Oracle.

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

    Exemple de sortie :

    [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. Répertoriez toutes les applications du catalogue Oracle.

    ocne catalog search
    

    Exemple de sortie :

    [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. Recherchez un élément spécifique dans le catalogue Oracle.

    ocne catalog search --pattern 'prom*'
    

    Exemple de sortie :

    [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  
    

Consulter les applications installées

  1. Répertoriez les applications installées dans le cluster.

    ocne application list -A
    

    Exemple de sortie :

    [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  
    

    Remarque : il s'agit d'un moyen utile de vérifier les applications d'un catalogue que vous avez déployées sur votre cluster.

  2. Consultez les détails de l'application installée.

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

    Où :

    • --namespace : espace de noms dans lequel l'application est déployée.
    • --release : nom de l'application
    • --computed : non utilisé dans cet exemple, mais renvoie les détails du déploiement YAML utilisé par l'application déployée.

    Exemple de sortie :

    [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
    

Installer une application

  1. Installez l'application kube-prometheus-stack.

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

    Exemple de sortie :

    [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. Vérifiez l'installation de l'application.

    ocne application list -A
    

    Exemple de sortie :

    [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. Vérifiez que tous les pods sont en cours d'exécution.

    kubectl get pods -n default
    

    Exemple de sortie :

    [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. Redirigez le trafic local vers le service Prometheus de votre cluster.

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

    Exemple de sortie :

    [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
    

Accéder à l'interface utilisateur de Prometheus

  1. Ouvrez une nouvelle fenêtre de terminal et configurez un tunnel SSH vers l'instance ocne.

    ssh -L 9093:localhost:9091 oracle@<ip_address_of_node>
    
  2. Ouvrez un navigateur Web et saisissez l'URL.

    http://localhost:9093/metrics
    

    prométhée-métrique

    Cette sortie confirme que les kube-state-metrics, les exportateurs de noeuds et le gestionnaire d'alertes, qui sont des composants de la pile kube-prometheus-stack, transforment activement les mesures en Prométhée.

  3. Fermez le navigateur et quittez la fenêtre de terminal avec le tunnel SSH, car ils ne sont plus nécessaires.

  4. Basculez vers la session de terminal qui exécute le transfert de port.

  5. Arrêtez le port en avant en saisissant ctrl-c.

Désinstallation d'une application

  1. Désinstallez l'application kube-prometheus-stack.

    Cette étape enlève les composants Kubernetes associés à l'application et supprime l'instance.

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

    Exemple de sortie :

    [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. Confirmez sa désinstallation.

    ocne application list -A
    
  3. Enlevez les définitions de ressource personnalisées (CRD) Kubernetes associées à kube-prometheus-stack.

    Certaines applications nécessitent que vous effectuiez des étapes manuelles après avoir désinstallé l'application à l'aide de la commande ocne application uninstall. Vous trouverez les détails de chaque application dans le répertoire charts du projet GitHub Oracle CNE.

    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
    

    Exemple de sortie :

    [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'application, dans cet exemple, kube-prometheus-stack, est maintenant complètement enlevée de votre cluster Kubernetes.

Etapes suivantes

Ce tutoriel vous présente l'utilisation d'un catalogue. Ensuite, comment installer, exécuter et enlever une application d'un catalogue sur votre cluster Kubernetes Oracle CNE. Pour plus de détails, reportez-vous à la documentation Oracle CNE.

Ressources de formation supplémentaires

Explorez d'autres ateliers sur docs.oracle.com/learn ou accédez à d'autres contenus de formation gratuits sur le canal Oracle Learning YouTube. De plus, visitez le site education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.

Pour obtenir la documentation produit, consultez le site Oracle Help Center.