注意:
- 此教程位于 Oracle 提供的免费实验室环境中。
- 它对 Oracle Cloud Infrastructure 身份证明、租户和区间使用示例值。完成实验室后,请使用特定于云环境的那些值替换这些值。
将应用程序目录与 Oracle Cloud Native Environment 一起使用
简介
应用程序目录是可搜索的软件资料档案库,您可以将其安装在 Oracle Cloud Native Environment (Oracle CNE) Kubernetes 集群上。Oracle CNE 支持两个应用程序目录:附带 Oracle CNE 的 Oracle 目录以及与 Artifact Hub 兼容的外部目录。
Oracle 目录提供了由 Oracle 提供的精选软件。Oracle CNE 附带了一个名为嵌入的内置目录。您可以在不部署 Kubernetes 集群的情况下使用嵌入式目录。更新 ocne
CLI 时,会更新 embedded 目录。
Oracle CNE 附带的另一个目录称为 Oracle Cloud Native Environment Application Catalog 。此目录作为 ocne-system 名称空间中的 ocne-catalog 云池部署到 Kubernetes 集群上。
更新 ocne
CLI 时会更新 embedded 目录,更新 Kubernetes 版本时会更新 Oracle 目录。此行为意味着 Oracle 提供的两个目录的内容可能有所不同。
目标
在本教程中,您将了解:
- 如何管理 Oracle 提供的目录。
- 如何从 Oracle 提供的目录安装应用程序。
先决条件
- 安装 Oracle Cloud Native Environment
- 单个控制节点和一个 Worker 节点
配置 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
,该变量为在 localhost 上运行的播放设置ansible_python_interpreter
。此变量是必需的,因为环境为 Python 的 Oracle Cloud Infrastructure SDK 安装 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>
-
等待集群稳定,所有云池报告都处于正在运行状态。
watch kubectl get pods -A
所有 pod 显示 STATUS Running 后,键入
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 定制资源定义 (Custom Resource Definitions,CRD)。
某些应用程序要求您在使用
ocne application uninstall
命令卸载应用程序后完成手动步骤。您可以在 Oracle CNE GitHub 项目的 charts 目录中找到每个应用程序的详细信息。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 集群中完全删除,
后续步骤
本教程介绍了目录的用途。然后,如何从 Oracle CNE Kubernetes 集群上的目录中安装、运行和删除应用程序。有关详细信息,请参阅 Oracle CNE 文档。
相关链接
更多学习资源
浏览 docs.oracle.com/learn 上的其他实验室,或者访问 Oracle Learning YouTube 渠道上的更多免费学习内容。此外,请访问 education.oracle.com/learning-explorer 成为 Oracle Learning Explorer。
有关产品文档,请访问 Oracle 帮助中心。
Use an Application Catalog with Oracle Cloud Native Environment
G30883-01
Copyright ©2025, Oracle and/or its affiliates.