3.2. odo 이해

Red Hat OpenShift Developer CLI(odo)는 OpenShift Container Platform 및 Kubernetes에서 애플리케이션을 생성하는 툴입니다. odo 를 사용하면 플랫폼을 깊이 이해하지 못해도 Kubernetes 클러스터에서 마이크로서비스 기반 애플리케이션을 개발, 테스트, 디버그, 배포할 수 있습니다.

odo생성 및 푸시 워크플로를 따릅니다. 사용자가 를 생성할 때 정보(또는 매니페스트)가 구성 파일에 저장됩니다. 를 푸시 하면 Kubernetes 클러스터에 해당 리소스가 생성됩니다. 이 모든 구성은 원활한 접근성 및 기능을 위해 Kubernetes API에 저장됩니다.

odoservicelink 명령을 사용하여 구성 요소 및 서비스를 서로 연결합니다. 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 을 모두 나열할 수 있습니다.

절차

  1. odo를 사용하여 클러스터에 로그인합니다.

    $ odo login -u developer -p developer
  2. 사용 가능한 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

odo 는 운영 체제, RAM, CPU, 코어 수, odo 버전, 오류, 성공/실패, 완료하는 데 걸리는 기간을 포함하여 사용 중인 방법에 대한 정보를 수집합니다.

odo preference 명령을 사용하여 Telemetry 동의를 수정할 수 있습니다.

  • odo preference set ConsentTelemetry true 로 Telemetry에 동의합니다.
  • odo preference unset ConsentTelemetry 는 Telemetry를 비활성화합니다.
  • odo preference 뷰에 는 현재 기본 설정이 표시됩니다.