附註:
- 此教學課程可在 Oracle 提供的免費實驗室環境中取得。
- 它使用 Oracle Cloud Infrastructure 證明資料、租用戶及區間的範例值。完成實驗室時,請將這些值取代為您雲端環境特定的值。
使用應用程式目錄搭配 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 提供的目錄。
- 如何從 Oracle 提供的目錄安裝應用程式。
必要條件
- 安裝 Oracle Cloud Native Environment
- 單一控制節點與一個工作節點
設定 Oracle CNE
注意:如果在您自己的租用戶中執行,請先閱讀 linux-virt-labs
GitHub 專案 README.md 並完成先決條件,再部署實驗室環境。
-
在 Luna 桌面上開啟終端機。
-
複製
linux-virt-labs
GitHub 專案。git clone https://github.com/oracle-devrel/linux-virt-labs.git
-
變更至工作目錄。
cd linux-virt-labs/ocne2
-
安裝所需的集合。
ansible-galaxy collection install -r requirements.yml
-
部署實驗室環境。
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 叢集
-
開啟終端機並透過 SSH 連線至
ocne
執行處理。ssh oracle@<ip_address_of_instance>
-
等待叢集穩定,而且所有 Pod 都處於執行中狀態。
watch kubectl get pods -A
當所有 Pod 顯示執行中的 STATUS 之後,請輸入
ctrl-c
以結束watch
命令。 -
確認有多少個節點存在。
kubectl get nodes
管理目錄
-
列出可用的型錄。
ocne catalog list
-
顯示 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
-
列出 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
-
搜尋特定項目的 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
複查已安裝的應用程式
-
列出叢集中已安裝的應用程式。
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
注意:這是確認您建置到叢集之目錄中的應用程式非常有用的方法。
-
複查已安裝應用程式的詳細資料。
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
安裝應用程式
-
安裝 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
-
確認應用程式的安裝。
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
-
確認所有 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
-
將本機流量重新導向至您叢集中的 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
-
開啟新的終端機視窗,然後設定
ocne
執行處理的 SSH 通道。ssh -L 9093:localhost:9091 oracle@<ip_address_of_node>
-
開啟 Web 瀏覽器並輸入 URL。
http://localhost:9093/metrics
此輸出會確認 kube-state-metrics 、節點匯出程式以及「警示管理程式」(屬於 kube-prometheus-stack 的元件) 正在將度量擷取至 Prometheus。
-
關閉瀏覽器並透過 SSH 通道結束終端機視窗,因為不再需要這些通道。
-
切換至正向執行連接埠的終端機階段作業。
-
鍵入
ctrl-c
以停止通訊埠轉寄。
解除安裝應用程式
-
解除安裝 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
-
確認已解除安裝。
ocne application list -A
-
移除與 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 。
Use an Application Catalog with Oracle Cloud Native Environment
G30884-01
Copyright ©2025, Oracle and/or its affiliates.