Observação:

Usar um Catálogo de Aplicativos com o Oracle Cloud Native Environment

Introdução

Um catálogo de aplicativos é um repositório de software pesquisável que você pode instalar em um cluster do Kubernetes do Oracle CNE (Oracle Cloud Native Environment). O Oracle CNE suporta dois catálogos de aplicativos: o catálogo Oracle fornecido com o Oracle CNE e o catálogo externo compatível com o Artifact Hub.

O catálogo da Oracle fornece uma seleção selecionada de software fornecido pela Oracle. O Oracle CNE é fornecido com um catálogo incorporado chamado embedded. Você pode usar o catálogo incorporado sem implantar um cluster do Kubernetes. O catálogo incorporado é atualizado quando você atualiza a CLI ocne.

O outro catálogo fornecido com o Oracle CNE é chamado de Catálogo de Aplicativos do Oracle Cloud Native Environment. Este catálogo é implantado no cluster do Kubernetes como o pod ocne-catalog no namespace ocne-system.

O catálogo incorporado é atualizado quando você atualiza a CLI ocne, e o Catálogo Oracle é atualizado quando você atualiza a versão do Kubernetes. Esse comportamento significa que o conteúdo dos dois catálogos fornecidos pela Oracle pode ser diferente.

Objetivos

Neste tutorial, você aprenderá:

Pré-requisitos

Configurar o Oracle CNE

Observação: Se estiver em execução em sua própria tenancy, leia o projeto linux-virt-labs GitHub README.md e conclua os pré-requisitos antes de implantar o ambiente de laboratório.

  1. Abra um terminal no Luna Desktop.

  2. Clone o projeto linux-virt-labs GitHub.

    git clone https://github.com/oracle-devrel/linux-virt-labs.git
    
  3. Altere para o diretório de trabalho.

    cd linux-virt-labs/ocne2
    
  4. Instale as coleções necessárias.

    ansible-galaxy collection install -r requirements.yml
    
  5. Implante o ambiente de laboratório.

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

    O ambiente de laboratório gratuito requer a variável extra local_python_interpreter, que define ansible_python_interpreter para execuções em execução no localhost. Essa variável é necessária porque o ambiente instala o pacote RPM do SDK para Python do Oracle Cloud Infrastructure, localizado nos módulos python3.6.

    A forma de implantação padrão usa a CPU AMD e o Oracle Linux 8. Para usar uma CPU Intel ou Oracle Linux 9, adicione -e instance_shape="VM.Standard3.Flex" ou -e os_version="9" ao comando de implantação.

    Importante: Aguarde a execução bem-sucedida do playbook e atinja a tarefa de pausa. Nesta etapa do manual, a instalação do Oracle CNE está concluída e as instâncias estão prontas. Tome nota da reprodução anterior, que imprime os endereços IP públicos e privados dos nós que ele implanta e qualquer outra informação de implantação necessária durante a execução do laboratório.

Acessar o Cluster do Kubernetes

  1. Abra um terminal e estabeleça conexão via SSH com a instância ocne.

    ssh oracle@<ip_address_of_instance>
    
  2. Aguarde a estabilização do cluster e todos os pods relatem em um estado de execução.

    watch kubectl get pods -A
    

    Depois que todos os pods mostrarem um STATUS de Em Execução, digite ctrl-c para sair do comando watch.

  3. Confirme quantos nós estão presentes.

    kubectl get nodes
    

Gerenciando um Catálogo

  1. Liste os catálogos disponíveis.

    ocne catalog list
    
  2. Exibir detalhes sobre o catálogo Oracle.

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

    Exemplo de Saída:

    [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. Liste todos os aplicativos no catálogo da Oracle.

    ocne catalog search
    

    Exemplo de Saída:

    [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. Pesquise algo específico no catálogo da Oracle.

    ocne catalog search --pattern 'prom*'
    

    Exemplo de Saída:

    [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  
    

Revisando Aplicativos Instalados

  1. Liste os aplicativos instalados no cluster.

    ocne application list -A
    

    Exemplo de Saída:

    [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  
    

    Observação: Esta é uma maneira útil de confirmar quais aplicativos de um catálogo você implantou no cluster.

  2. Verifique os detalhes do aplicativo instalado.

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

    Onde:

    • --namespace - O namespace no qual o aplicativo é implantado.
    • --release - O nome do aplicativo
    • --computed - Não usado neste exemplo, mas retorna detalhes da implantação YAML usada pelo aplicativo implantado.

    Exemplo de saída:

    [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
    

Instalar uma Aplicação

  1. Instale o aplicativo kube-prometheus-stack.

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

    Exemplo de Saída:

    [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 a instalação do aplicativo.

    ocne application list -A
    

    Exemplo de Saída:

    [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 se todos os Pods estão em execução.

    kubectl get pods -n default
    

    Exemplo de Saída:

    [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. Redirecione o tráfego local para o serviço Prometheus em seu cluster.

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

    Exemplo de Saída:

    [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
    

Acessar a UI do Prometheus

  1. Abra uma nova janela de terminal e configure um túnel SSH para a instância ocne.

    ssh -L 9093:localhost:9091 oracle@<ip_address_of_node>
    
  2. Abra um navegador da Web e insira o URL.

    http://localhost:9093/metrics
    

    prometheus-métricas

    Essa saída confirma que kube-state-metrics, exportadores de nó e Alert Manager, que são componentes do kube-prometheus-stack, estão raspando ativamente as métricas no Prometheus.

  3. Feche o browser e saia da janela do terminal com o túnel SSH, pois eles não são mais necessários.

  4. Alterne para a sessão do terminal que está executando a porta para frente.

  5. Interrompa a porta para frente digitando ctrl-c.

Desinstalar um aplicativo

  1. Desinstale o aplicativo kube-prometheus-stack.

    Esta etapa remove os componentes do Kubernetes associados ao aplicativo e exclui a instância.

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

    Exemplo de Saída:

    [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 se ele está desinstalado.

    ocne application list -A
    
  3. Remova as CRD (Custom Resource Definitions) do Kubernetes associadas ao kube-prometheus-stack.

    Alguns aplicativos exigem que você execute etapas manuais após a desinstalação do aplicativo usando o comando ocne application uninstall. Você pode encontrar detalhes de cada aplicativo no diretório charts do projeto GitHub do 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
    

    Exemplo de Saída:

    [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
    

    O aplicativo, neste exemplo, kube-prometheus-stack, agora foi completamente removido do cluster do Kubernetes,

Próximas Etapas

Este tutorial apresentou para o que você usa um Catálogo. Em seguida, como instalar, executar e remover um aplicativo de um Catálogo no cluster do Oracle CNE Kubernetes. Consulte a documentação do Oracle CNE para obter mais detalhes.

Mais Recursos de Aprendizagem

Explore outros laboratórios em docs.oracle.com/learn ou acesse mais conteúdo de aprendizado gratuito no canal Oracle Learning YouTube. Além disso, visite education.oracle.com/learning-explorer para se tornar um Oracle Learning Explorer.

Para obter a documentação do produto, visite o Oracle Help Center.