3.2. odo 이해
Red Hat OpenShift Developer CLI(odo
)는 OpenShift Container Platform 및 Kubernetes에서 애플리케이션을 생성하는 툴입니다. odo
를 사용하면 플랫폼을 깊이 이해하지 못해도 Kubernetes 클러스터에서 마이크로서비스 기반 애플리케이션을 개발, 테스트, 디버그, 배포할 수 있습니다.
odo
는 생성 및 푸시 워크플로를 따릅니다. 사용자가 를 생성할 때 정보(또는 매니페스트)가 구성 파일에 저장됩니다. 를 푸시 하면 Kubernetes 클러스터에 해당 리소스가 생성됩니다. 이 모든 구성은 원활한 접근성 및 기능을 위해 Kubernetes API에 저장됩니다.
odo
는 service 및 link 명령을 사용하여 구성 요소 및 서비스를 서로 연결합니다. odo
는 클러스터의 Kubernetes Operator를 기반으로 서비스를 생성하고 배포하여 이를 수행합니다. Operator Hub에서 사용 가능한 Operator를 사용하여 서비스를 생성할 수 있습니다. 서비스를 연결한 후 odo
는 서비스 구성을 구성 요소에 삽입합니다. 그러면 애플리케이션에서 이 구성을 사용하여 Operator 지원 서비스와 통신할 수 있습니다.
3.2.1. odo 주요 기능
odo
는 다음과 같은 기능을 통해 개발자에게 친숙한 Kubernetes 인터페이스로 설계되었습니다.
- 새 매니페스트를 생성하거나 기존 매니페스트를 사용하여 Kubernetes 클러스터에 애플리케이션을 빠르게 배포합니다.
- Kubernetes 구성 파일을 이해하고 유지 관리할 필요 없이 명령을 사용하여 매니페스트를 쉽게 생성하고 업데이트합니다.
- Kubernetes 클러스터에서 실행되는 애플리케이션에 대한 보안 액세스 제공
- Kubernetes 클러스터에서 애플리케이션의 추가 스토리지 추가 및 제거
- Operator 지원 서비스를 생성하고 애플리케이션을 연결합니다.
-
odo
구성 요소로 배포된 여러 마이크로 서비스 간 링크 생성 -
IDE에서
odo
를 사용하여 배포한 원격 애플리케이션 디버깅 -
odo
를 사용하여 Kubernetes에 배포된 애플리케이션을 쉽게 테스트
3.2.2. odo 핵심 개념
odo
는 Kubernetes 개념을 개발자에게 친숙한 용어로 요약합니다.
- 애플리케이션
특정 작업을 수행하는 데 사용되는 클라우드 네이티브 접근 방식으로 개발된 일반적인 애플리케이션입니다.
애플리케이션의 예로는 온라인 비디오 스트리밍, 온라인 구매 및 호텔 예약 시스템이 있습니다.
- 구성 요소
별도로 실행하고 배포할 수 있는 Kubernetes 리소스 집합입니다. 클라우드 네이티브 애플리케이션은 작고 독립적이며 느슨하게 연결된 구성 요소의 컬렉션입니다.
구성 요소의 예로는 API 백엔드, 웹 인터페이스, 결제 백엔드가 포함됩니다.
- 프로젝트
- 소스 코드, 테스트 및 라이브러리가 포함된 단일 단위입니다.
- 컨텍스트
-
단일 구성 요소에 대한 소스 코드, 테스트, 라이브러리 및
odo
구성 파일이 포함된 디렉터리입니다. - URL
- 클러스터 외부에서 액세스할 수 있는 구성 요소를 노출하는 메커니즘입니다.
- 스토리지
- 클러스터의 영구 스토리지. 다시 시작해도 데이터를 유지하고 구성 요소를 다시 빌드합니다.
- Service
구성 요소에 추가 기능을 제공하는 외부 애플리케이션입니다.
서비스의 예로는 PostgreSQL, MySQL, Redis 및 RabbitMQ가 있습니다.
odo
에서는 서비스가 OpenShift 서비스 카탈로그에서 프로비저닝되며, 클러스터 내에서 활성화되어야 합니다.- devfile
개발자 툴에서 워크플로를 단순화하고 가속화할 수 있도록 컨테이너화된 개발 환경을 정의하기 위한 오픈 표준입니다. 자세한 내용은 https://devfile.io 의 문서를 참조하십시오.
공개적으로 사용 가능한 devfile 레지스트리에 연결하거나 보안 레지스트리를 설치할 수 있습니다.
3.2.3. odo의 구성 요소 나열
odo
는 이식 가능한 devfile 형식을 사용하여 구성 요소 및 관련 URL, 스토리지 및 서비스를 설명합니다. odo
는 다양한 devfile 레지스트리에 연결하여 다양한 언어 및 프레임워크의 devfile을 다운로드할 수 있습니다. odo
에서 devfile 정보를 검색하는 데 사용하는 레지스트리를 관리하는 방법에 대한 자세한 내용은 odo registry
명령 설명서를 참조하십시오.
odo catalog list components
명령을 사용하여 다양한 레지스트리에서 사용할 수 있는 devfile 을 모두 나열할 수 있습니다.
절차
odo
를 사용하여 클러스터에 로그인합니다.$ odo login -u developer -p developer
사용 가능한
odo
구성 요소를 나열합니다.$ odo catalog list components
출력 예
Odo Devfile Components: NAME DESCRIPTION REGISTRY dotnet50 Stack with .NET 5.0 DefaultDevfileRegistry dotnet60 Stack with .NET 6.0 DefaultDevfileRegistry dotnetcore31 Stack with .NET Core 3.1 DefaultDevfileRegistry go Stack with the latest Go version DefaultDevfileRegistry java-maven Upstream Maven and OpenJDK 11 DefaultDevfileRegistry java-openliberty Java application Maven-built stack using the Open Liberty ru... DefaultDevfileRegistry java-openliberty-gradle Java application Gradle-built stack using the Open Liberty r... DefaultDevfileRegistry java-quarkus Quarkus with Java DefaultDevfileRegistry java-springboot Spring Boot® using Java DefaultDevfileRegistry java-vertx Upstream Vert.x using Java DefaultDevfileRegistry java-websphereliberty Java application Maven-built stack using the WebSphere Liber... DefaultDevfileRegistry java-websphereliberty-gradle Java application Gradle-built stack using the WebSphere Libe... DefaultDevfileRegistry java-wildfly Upstream WildFly DefaultDevfileRegistry java-wildfly-bootable-jar Java stack with WildFly in bootable Jar mode, OpenJDK 11 and... DefaultDevfileRegistry nodejs Stack with Node.js 14 DefaultDevfileRegistry nodejs-angular Stack with Angular 12 DefaultDevfileRegistry nodejs-nextjs Stack with Next.js 11 DefaultDevfileRegistry nodejs-nuxtjs Stack with Nuxt.js 2 DefaultDevfileRegistry nodejs-react Stack with React 17 DefaultDevfileRegistry nodejs-svelte Stack with Svelte 3 DefaultDevfileRegistry nodejs-vue Stack with Vue 3 DefaultDevfileRegistry php-laravel Stack with Laravel 8 DefaultDevfileRegistry python Python Stack with Python 3.7 DefaultDevfileRegistry python-django Python3.7 with Django DefaultDevfileRegistry
3.2.4. odo에서 Telemetry
는 운영 체제, RAM, CPU, 코어 수, odo
odo
버전, 오류, 성공/실패, 완료하는 데 걸리는 기간을 포함하여 사용 중인 방법에 대한 정보를 수집합니다.
odo preference
명령을 사용하여 Telemetry 동의를 수정할 수 있습니다.
-
odo preference set ConsentTelemetry true
로 Telemetry에 동의합니다. -
odo preference unset ConsentTelemetry
는 Telemetry를 비활성화합니다. -
odo preference 뷰에
는 현재 기본 설정이 표시됩니다.