附註:

使用應用程式目錄搭配 Oracle Cloud Native Environment

簡介

應用程式目錄是可搜尋的軟體儲存區域,您可以安裝在 Oracle Cloud Native Environment (Oracle CNE) Kubernetes 叢集上。Oracle CNE 支援兩個應用程式目錄:隨 Oracle CNE 隨附的 Oracle 目錄,以及與使用者自建物件中心相容的外部目錄。

Oracle 目錄提供了精選的 Oracle 軟體。Oracle CNE 隨附一個名為 embedded 的內建目錄。您可以在不部署 Kubernetes 叢集的情況下使用內嵌目錄。當您更新 ocne CLI 時,會更新內嵌目錄。

隨附於 Oracle CNE 的另一個目錄稱為 Oracle Cloud Native Environment Application Catalog 。此目錄會以 ocne-system 命名空間中的 ocne-catalog Pod 身分部署到您的 Kubernetes 叢集上。

內嵌目錄會在您更新 ocne CLI 時更新,而 Oracle 目錄會在您更新 Kubernetes 版本時更新。這種行為表示兩個 Oracle 提供的目錄內容可能不同。

目標

在本教學課程中,您將學習:

必要條件

設定 Oracle CNE

注意:如果在您自己的租用戶中執行,請先閱讀 linux-virt-labs GitHub 專案 README.md 並完成先決條件,再部署實驗室環境。

  1. 在 Luna 桌面上開啟終端機。

  2. 複製 linux-virt-labs GitHub 專案。

    git clone https://github.com/oracle-devrel/linux-virt-labs.git
    
  3. 變更至工作目錄。

    cd linux-virt-labs/ocne2
    
  4. 安裝所需的集合。

    ansible-galaxy collection install -r requirements.yml
    
  5. 部署實驗室環境。

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

    自由實驗室環境需要額外的變數 local_python_interpreter,此變數會設定 ansible_python_interpreter 代表在 localhost 上執行的播放。環境會安裝 Oracle Cloud Infrastructure SDK for Python 的 RPM 套裝程式 (位於 python3.6 模組底下),因此需要此變數。

    預設部署資源配置使用 AMD CPU 和 Oracle Linux 8。若要使用 Intel CPU 或 Oracle Linux 9,請在部署命令中新增 -e instance_shape="VM.Standard3.Flex"-e os_version="9"

    重要事項:等待手冊順利執行並到達暫停工作。在手冊的這個階段,Oracle CNE 的安裝已完成,且執行處理已就緒。請注意先前的播放,其會列印部署節點的公用和專用 IP 位址,以及執行實驗室時所需的任何其他部署資訊。

存取 Kubernetes 叢集

  1. 開啟終端機並透過 SSH 連線至 ocne 執行處理。

    ssh oracle@<ip_address_of_instance>
    
  2. 等待叢集穩定,而且所有 Pod 都處於執行中狀態。

    watch kubectl get pods -A
    

    當所有 Pod 顯示執行中STATUS 之後,請輸入 ctrl-c 以結束 watch 命令。

  3. 確認有多少個節點存在。

    kubectl get nodes
    

管理目錄

  1. 列出可用的型錄。

    ocne catalog list
    
  2. 顯示 Oracle 目錄的詳細資訊。

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

    範例輸出:

    [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. 列出 Oracle 目錄中的所有應用程式。

    ocne catalog search
    

    範例輸出:

    [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. 搜尋特定項目的 Oracle 目錄。

    ocne catalog search --pattern 'prom*'
    

    範例輸出:

    [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  
    

複查已安裝的應用程式

  1. 列出叢集中已安裝的應用程式。

    ocne application list -A
    

    範例輸出:

    [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  
    

    注意:這是確認您建置到叢集之目錄中的應用程式非常有用的方法。

  2. 複查已安裝應用程式的詳細資料。

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

    其中:

    • --namespace - 部署應用程式的命名空間
    • --release - 應用程式的名稱
    • --computed - 在此範例中未使用,但會傳回已建置應用程式所使用之 YAML 建置的詳細資訊。

    範例輸出:

    [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
    

安裝應用程式

  1. 安裝 kube-prometheus-stack 應用程式。

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

    範例輸出:

    [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. 確認應用程式的安裝。

    ocne application list -A
    

    範例輸出:

    [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. 確認所有 Pod 在執行中。

    kubectl get pods -n default
    

    範例輸出:

    [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. 將本機流量重新導向至您叢集中的 Prometheus 服務。

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

    範例輸出:

    [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
    

存取 Prometheus UI

  1. 開啟新的終端機視窗,然後設定 ocne 執行處理的 SSH 通道。

    ssh -L 9093:localhost:9091 oracle@<ip_address_of_node>
    
  2. 開啟 Web 瀏覽器並輸入 URL。

    http://localhost:9093/metrics
    

    前衛測量

    此輸出會確認 kube-state-metrics 、節點匯出程式以及「警示管理程式」(屬於 kube-prometheus-stack 的元件) 正在將度量擷取至 Prometheus。

  3. 關閉瀏覽器並透過 SSH 通道結束終端機視窗,因為不再需要這些通道。

  4. 切換至正向執行連接埠的終端機階段作業。

  5. 鍵入 ctrl-c 以停止通訊埠轉寄。

解除安裝應用程式

  1. 解除安裝 kube-prometheus-stack 應用程式。

    此步驟會移除與應用程式關聯的 Kubernetes 元件,並且刪除執行處理。

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

    範例輸出:

    [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. 確認已解除安裝。

    ocne application list -A
    
  3. 移除與 kube-prometheus-stack 關聯的 Kubernetes 自訂資源定義 (CRD)。

    部分應用程式需要您在使用 ocne application uninstall 命令解除安裝應用程式之後,完成手動步驟。您可以在 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
    

    範例輸出:

    [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
    

    此範例中的應用程式 kube-prometheus-stack 現在已完全從您的 Kubernetes 叢集移除,

接下來的步驟

本教學課程介紹使用 Catalog 的項目。接著,如何從 Oracle CNE Kubernetes 叢集上的目錄安裝、執行及移除應用程式。如需詳細資訊,請參閱 Oracle CNE 文件。

其他學習資源

探索 docs.oracle.com/learn 上的其他實驗室,或存取 Oracle Learning YouTube 頻道上的更多免費學習內容。此外,請造訪 education.oracle.com/learning-explorer 以成為 Oracle Learning Explorer。

如需產品文件,請造訪 Oracle Help Center