주:
- 이 자습서는 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는 embedded라는 내장 카탈로그와 함께 제공됩니다. Kubernetes 클러스터를 배포하지 않고도 내장 카탈로그를 사용할 수 있습니다. embedded 카탈로그는 ocne
CLI를 업데이트할 때 업데이트됩니다.
Oracle CNE와 함께 제공되는 다른 카탈로그를 Oracle Cloud Native Environment Application Catalog라고 합니다. 이 카탈로그는 Kubernetes 클러스터에 ocne-system 네임스페이스의 ocne-catalog Pod로 배치됩니다.
내장 카탈로그는 ocne
CLI를 업데이트할 때 업데이트되며, Kubernetes 버전을 업데이트할 때 Oracle Catalog가 업데이트됩니다. 이 동작은 두 Oracle 제공 카탈로그의 내용이 다를 수 있음을 의미합니다.
목표
이 자습서에서는 다음을 학습합니다.
- Oracle 제공 카탈로그를 관리하는 방법
- Oracle 제공 카탈로그에서 응용 프로그램을 설치하는 방법
필요 조건
- Oracle Cloud Native Environment 설치
- 단일 제어 노드 및 하나의 작업자 노드
Oracle CNE 구성
주: 고유 테넌시에서 실행 중인 경우 랩 환경을 배치하기 전에 linux-virt-labs
GitHub 프로젝트 README.md을 읽고 필요 조건을 완료하십시오.
-
Luna Desktop에서 터미널을 엽니다.
-
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
-
lab 환경을 배치합니다.
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
를 설정합니다. 환경이 python3.6 모듈 아래에 있는 Oracle Cloud Infrastructure SDK for Python용 RPM 패키지를 설치하므로 이 변수가 필요합니다.기본 배치 구성은 AMD CPU 및 Oracle Linux 8을 사용합니다. Intel CPU 또는 Oracle Linux 9를 사용하려면 배치 명령에
-e instance_shape="VM.Standard3.Flex"
또는-e os_version="9"
를 추가합니다.중요: 플레이북이 성공적으로 실행될 때까지 기다렸다가 일시 중지 작업에 도달합니다. 이 플레이북 단계에서는 Oracle CNE 설치가 완료되고 인스턴스가 준비됩니다. 배치하는 노드의 공용(public) 및 전용(private) IP 주소와 실습을 실행하는 동안 필요한 기타 배치 정보를 출력하는 이전 플레이를 기록해 둡니다.
Kubernetes 클러스터 액세스
-
터미널을 열고 SSH를 통해
ocne
인스턴스에 연결합니다.ssh oracle@<ip_address_of_instance>
-
클러스터가 안정화되고 모든 Pod가 실행 중 상태로 보고될 때까지 기다립니다.
watch kubectl get pods -A
모든 포드가 실행 중의 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
- 응용 프로그램의 name--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>
-
웹 브라우저를 열고 URL을 입력합니다.
http://localhost:9093/metrics
이 출력은 kube-prometheus-stack의 구성 요소인 kube-state-metrics, 노드 내보내기 및 경보 관리자가 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 프로젝트의 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 채널에서 더 많은 무료 학습 콘텐츠에 액세스하세요. 또한 Oracle Learning Explorer가 되려면 education.oracle.com/learning-explorer을 방문하십시오.
제품 설명서는 Oracle Help Center를 참조하십시오.
Use an Application Catalog with Oracle Cloud Native Environment
G30881-01
Copyright ©2025, Oracle and/or its affiliates.