3.5. odo CLI 참조
3.5.1. odo build-images
odo
는 Dockerfile을 기반으로 컨테이너 이미지를 빌드하고 이러한 이미지를 레지스트리에 푸시할 수 있습니다.
odo build-images
명령을 실행할 때 odo
는 이미지
유형을 사용하여 devfile.yaml
의 모든 구성 요소를 검색합니다. 예를 들면 다음과 같습니다.
components: - image: imageName: quay.io/myusername/myimage dockerfile: uri: ./Dockerfile 1 buildContext: ${PROJECTS_ROOT} 2 name: component-built-from-dockerfile
각 이미지 구성 요소에 대해 odo는 podman
또는 docker
(이 순서대로 발견된 첫 번째)를 실행하여 지정된 Dockerfile, 빌드 컨텍스트 및 인수를 사용하여 이미지를 빌드합니다.
--push
플래그가 명령에 전달되면 이미지가 빌드 후 해당 레지스트리로 푸시됩니다.
3.5.2. odo catalog
odo
는 다양한 카탈로그 를 사용하여 구성 요소 및 서비스를 배포합니다.
3.5.2.1. components
odo
는 이식 가능한 devfile 형식을 사용하여 구성 요소를 설명합니다. 다양한 devfile 레지스트리에 연결하여 다양한 언어 및 프레임워크에 대한 devfile을 다운로드할 수 있습니다. 자세한 내용은 odo
Registry를 참조하십시오.
3.5.2.1.1. 구성 요소 나열
다른 레지스트리에서 사용 가능한 모든 devfile 을 나열하려면 명령을 실행합니다.
$ odo catalog list components
출력 예
NAME DESCRIPTION REGISTRY go Stack with the latest Go version DefaultDevfileRegistry java-maven Upstream Maven and OpenJDK 11 DefaultDevfileRegistry nodejs Stack with Node.js 14 DefaultDevfileRegistry php-laravel Stack with Laravel 8 DefaultDevfileRegistry python Python Stack with Python 3.7 DefaultDevfileRegistry [...]
3.5.2.1.2. 구성 요소에 대한 정보 가져오기
특정 구성 요소에 대한 자세한 내용을 보려면 명령을 실행합니다.
$ odo catalog describe component
예를 들어 다음 명령을 실행합니다.
$ odo catalog describe component nodejs
출력 예
* Registry: DefaultDevfileRegistry 1 Starter Projects: 2 --- name: nodejs-starter attributes: {} description: "" subdir: "" projectsource: sourcetype: "" git: gitlikeprojectsource: commonprojectsource: {} checkoutfrom: null remotes: origin: https://github.com/odo-devfiles/nodejs-ex.git zip: null custom: null
starter 프로젝트에서 프로젝트를 생성하는 방법에 대한 자세한 내용은 odo create
를 참조하십시오.
3.5.2.2. 서비스
odo
는 Operator 의 도움을 받아 서비스를 배포할 수 있습니다.
Operator Lifecycle Manager 를 사용하여 배포된 Operator만 odo에서 지원됩니다.
3.5.2.2.1. 서비스 나열
사용 가능한 Operator 및 관련 서비스를 나열하려면 명령을 실행합니다.
$ odo catalog list services
출력 예
Services available through Operators NAME CRDs postgresql-operator.v0.1.1 Backup, Database redis-operator.v0.8.0 RedisCluster, Redis
이 예에서는 클러스터에 두 개의 Operator가 설치되어 있습니다. postgresql-operator.v0.1.1
Operator는 PostgreSQL과 관련된 서비스를 배포합니다. 백업
및 데이터베이스
. redis-operator.v0.8.0
Operator는 Redis와 관련된 서비스를 배포합니다. RedisCluster
및 Redis
.
사용 가능한 모든 Operator 목록을 가져오기 위해 odo
는 Succeeded 단계에 있는 현재 네임스페이스의 CSV(ClusterServiceVersion) 리소스를 가져옵니다. 클러스터 전체 액세스를 지원하는 Operator의 경우 새 네임스페이스가 생성되면 해당 리소스가 자동으로 추가됩니다. 그러나 성공 단계에 있을 때까지 다소 시간이 걸릴 수 있으며 odo
는 리소스가 준비될 때까지 빈 목록을 반환할 수 있습니다.
3.5.2.2.2. 서비스 검색
키워드로 특정 서비스를 검색하려면 명령을 실행합니다.
$ odo catalog search service
예를 들어 PostgreSQL 서비스를 검색하려면 명령을 실행합니다.
$ odo catalog search service postgres
출력 예
Services available through Operators NAME CRDs postgresql-operator.v0.1.1 Backup, Database
해당 이름에 searched 키워드가 포함된 Operator 목록이 표시됩니다.
3.5.2.2.3. 서비스에 대한 정보 얻기
특정 서비스에 대한 자세한 내용을 보려면 명령을 실행합니다.
$ odo catalog describe service
예를 들면 다음과 같습니다.
$ odo catalog describe service postgresql-operator.v0.1.1/Database
출력 예
KIND: Database VERSION: v1alpha1 DESCRIPTION: Database is the Schema for the the Database Database API FIELDS: awsAccessKeyId (string) AWS S3 accessKey/token ID Key ID of AWS S3 storage. Default Value: nil Required to create the Secret with the data to allow send the backup files to AWS S3 storage. [...]
서비스는 CRD(CustomResourceDefinition) 리소스로 클러스터로 표시됩니다. 이전 명령은 이 사용자 정의 리소스의 인스턴스를 정의하는 데 사용할 수 있는 종류
,버전
, 필드 목록과 같은 CRD에 대한 세부 정보를 표시합니다.
필드 목록은 CRD에 포함된 OpenAPI 스키마 에서 추출됩니다. 이 정보는 CRD에서 선택 사항이며, 없는 경우 서비스를 나타내는 CSV(ClusterServiceVersion) 리소스에서 추출됩니다.
CRD 유형 정보를 제공하지 않고 Operator 지원 서비스에 대한 설명을 요청할 수도 있습니다. CRD 없이 클러스터에서 Redis Operator를 설명하려면 다음 명령을 실행합니다.
$ odo catalog describe service redis-operator.v0.8.0
출력 예
NAME: redis-operator.v0.8.0 DESCRIPTION: A Golang based redis operator that will make/oversee Redis standalone/cluster mode setup on top of the Kubernetes. It can create a redis cluster setup with best practices on Cloud as well as the Bare metal environment. Also, it provides an in-built monitoring capability using ... (cut short for beverity) Logging Operator is licensed under [Apache License, Version 2.0](https://github.com/OT-CONTAINER-KIT/redis-operator/blob/master/LICENSE) CRDs: NAME DESCRIPTION RedisCluster Redis Cluster Redis Redis
3.5.3. odo create
odo
는 devfile 을 사용하여 구성 요소의 구성을 저장하고 스토리지 및 서비스와 같은 구성 요소의 리소스를 설명합니다. odo create 명령은 이 파일을 생성합니다.
3.5.3.1. 구성 요소 생성
기존 프로젝트에 대한 devfile 을 생성하려면 구성 요소의 이름 및 유형으로 odo create
명령을 실행합니다(예: nodejs
또는 go
).
odo create nodejs mynodejs
예제에서 nodejs
는 구성 요소의 유형이며, mynodejs
는 odo
가 생성하는 구성 요소의 이름입니다.
지원되는 모든 구성 요소 유형 목록을 보려면 odo catalog list components
명령을 실행합니다.
소스 코드가 현재 디렉터리 외부에 있는 경우 --context
플래그를 사용하여 경로를 지정할 수 있습니다. 예를 들어 nodejs 구성 요소의 소스가 현재 작업 디렉터리를 기준으로 node-backend
라는 폴더에 있는 경우 명령을 실행합니다.
odo create nodejs mynodejs --context ./node-backend
--context
플래그는 상대 경로 및 절대 경로를 지원합니다.
구성 요소가 배포될 프로젝트 또는 앱을 지정하려면 --project
및 --app
플래그를 사용합니다. 예를 들어 backend
프로젝트 내의 myapp
앱의 일부인 구성 요소를 생성하려면 명령을 실행합니다.
odo create nodejs --app myapp --project backend
이러한 플래그를 지정하지 않으면 기본적으로 활성 앱 및 프로젝트로 설정됩니다.
3.5.3.2. 시작 프로젝트
기존 소스 코드가 없지만 devfile 및 구성 요소를 실험하기 위해 빠르게 실행하려는 경우 시작 프로젝트를 사용합니다. 시작 프로젝트를 사용하려면 --starter
플래그를 odo create
명령에 추가합니다.
구성 요소 유형에 사용 가능한 시작 프로젝트 목록을 가져오려면 odo catalog describe component
명령을 실행합니다. 예를 들어 nodejs 구성 요소 유형에 사용 가능한 모든 시작 프로젝트를 가져오려면 명령을 실행합니다.
odo catalog describe component nodejs
그런 다음 odo create
명령에서 --starter
플래그를 사용하여 원하는 프로젝트를 지정합니다.
odo create nodejs --starter nodejs-starter
이렇게 하면 선택한 구성 요소 유형(이 인스턴스에서 nodejs
)에 해당하는 예제 템플릿이 다운로드됩니다. 템플릿은 현재 디렉터리 또는 --context
플래그로 지정된 위치로 다운로드됩니다. 시작 프로젝트에 자체 devfile이 있는 경우 이 devfile은 유지됩니다.
3.5.3.3. 기존 devfile 사용
기존 devfile에서 새 구성 요소를 생성하려면 --devfile
플래그를 사용하여 devfile에 대한 경로를 지정하여 이를 수행할 수 있습니다. 예를 들어 GitHub의 devfile을 기반으로 mynodejs
라는 구성 요소를 생성하려면 다음 명령을 사용합니다.
odo create mynodejs --devfile https://raw.githubusercontent.com/odo-devfiles/registry/master/devfiles/nodejs/devfile.yaml
3.5.3.4. 대화형 생성
odo create
명령을 대화식으로 실행하여 구성 요소를 생성하는 데 필요한 단계를 안내할 수도 있습니다.
$ odo create
? Which devfile component type do you wish to create go
? What do you wish to name the new devfile component go-api
? What project do you want the devfile component to be created in default
Devfile Object Validation
✓ Checking devfile existence [164258ns]
✓ Creating a devfile component from registry: DefaultDevfileRegistry [246051ns]
Validation
✓ Validating if devfile name is correct [92255ns]
? Do you want to download a starter project Yes
Starter Project
✓ Downloading starter project go-starter from https://github.com/devfile-samples/devfile-stack-go.git [429ms]
Please use odo push
command to create the component with source deployed
구성 요소 유형, 이름 및 구성 요소에 대한 프로젝트를 선택하라는 메시지가 표시됩니다. starter 프로젝트를 다운로드할지 여부를 선택할 수도 있습니다. 완료되면 작업 디렉터리에 새 devfile.yaml
파일이 생성됩니다.
이러한 리소스를 클러스터에 배포하려면 odo push
명령을 실행합니다.
3.5.4. odo delete
odo delete
명령은 odo
에서 관리하는 리소스를 삭제하는 데 유용합니다.
3.5.4.1. 구성 요소 삭제
devfile 구성 요소를 삭제하려면 odo delete
명령을 실행합니다.
$ odo delete
구성 요소가 클러스터로 푸시되면 종속 스토리지, URL, 시크릿 및 기타 리소스와 함께 구성 요소가 클러스터에서 삭제됩니다. 구성 요소를 푸시하지 않은 경우 명령은 클러스터에서 리소스를 찾을 수 없다는 오류와 함께 종료됩니다.
확인 질문을 방지하려면 -f
또는 --force
플래그를 사용합니다.
3.5.4.2. devfile Kubernetes 구성 요소 배포
odo deploy
를 사용하여 배포된 devfile Kubernetes 구성 요소 배포를 취소하려면 --deploy
플래그를 사용하여 odo delete
명령을 실행합니다.
$ odo delete --deploy
확인 질문을 방지하려면 -f
또는 --force
플래그를 사용합니다.
3.5.4.3. 모두 삭제
다음 항목을 포함한 모든 아티팩트를 삭제하려면 --all
플래그를 사용하여 odo delete
명령을 실행합니다.
- devfile 구성 요소
-
odo deploy
명령을 사용하여 배포된 devfile Kubernetes 구성 요소 - devfile
- 로컬 구성
$ odo delete --all
3.5.4.4. 사용 가능한 플래그
-f
,--force
- 확인 질문을 방지하려면 이 플래그를 사용합니다.
-w
,--wait
- 이 플래그를 사용하여 구성 요소를 삭제하고 종속성을 기다립니다. 이 플래그는 배포 취소 시 작동하지 않습니다.
Common Flags 에 대한 설명서는 명령에 사용 가능한 플래그에 대한 자세한 정보를 제공합니다.
3.5.5. odo deploy
odo
는 CI/CD 시스템을 사용하여 배포되는 방식과 유사한 방식으로 구성 요소를 배포하는 데 사용할 수 있습니다. 먼저 odo
는 컨테이너 이미지를 빌드한 다음 구성 요소를 배포하는 데 필요한 Kubernetes 리소스를 배포합니다.
odo deploy
명령을 실행할 때odo
는 devfile에서 deploy
의 기본 명령을 검색하고 이 명령을 실행합니다. kind deploy
는 버전 2.2.0부터 devfile 형식에서 지원됩니다.
deploy
명령은 일반적으로 몇 가지 apply 명령으로 구성된 복합 명령입니다.
-
이미지
구성 요소를 참조하는 명령은 배포할 컨테이너 이미지를 빌드한 다음 해당 레지스트리로 내보냅니다. - Kubernetes 구성 요소를 참조하는 명령은 클러스터에 Kubernetes 리소스를 생성합니다.
다음 예제 devfile.yaml
파일을 사용하면 디렉터리에 있는 Dockerfile
을 사용하여 컨테이너 이미지가 빌드됩니다. 이미지는 레지스트리로 푸시된 다음 이 새로 빌드된 이미지를 사용하여 클러스터에 Kubernetes 배포 리소스가 생성됩니다.
schemaVersion: 2.2.0 [...] variables: CONTAINER_IMAGE: quay.io/phmartin/myimage commands: - id: build-image apply: component: outerloop-build - id: deployk8s apply: component: outerloop-deploy - id: deploy composite: commands: - build-image - deployk8s group: kind: deploy isDefault: true components: - name: outerloop-build image: imageName: "{{CONTAINER_IMAGE}}" dockerfile: uri: ./Dockerfile buildContext: ${PROJECTS_ROOT} - name: outerloop-deploy kubernetes: inlined: | kind: Deployment apiVersion: apps/v1 metadata: name: my-component spec: replicas: 1 selector: matchLabels: app: node-app template: metadata: labels: app: node-app spec: containers: - name: main image: {{CONTAINER_IMAGE}}
3.5.6. odo link
odo link
명령은 odo
구성 요소를 Operator 지원 서비스 또는 다른 odo
구성 요소에 연결하는 데 도움이 됩니다. Service Binding Operator 를 사용하여 이 작업을 수행합니다. 현재 odo
는 Service Binding 라이브러리를 사용하며 Operator 자체가 원하는 기능을 수행하지 않습니다.
3.5.6.1. 다양한 연결 옵션
odo
는 구성 요소를 Operator 지원 서비스 또는 다른 odo
구성 요소와 연결하는 다양한 옵션을 제공합니다. 이러한 모든 옵션(또는 플래그)은 구성 요소를 서비스 또는 다른 구성 요소에 연결하는지 여부에 관계없이 사용할 수 있습니다.
3.5.6.1.1. 기본 동작
기본적으로 odo link
명령은 구성 요소 디렉터리에 kubernetes/
라는 디렉터리를 생성하고 서비스 및 링크에 대한 정보(YAML 매니페스트)를 저장합니다. odo push
를 사용하는 경우odo
는 이러한 매니페스트를 Kubernetes 클러스터의 리소스 상태와 비교하고 사용자가 지정한 내용과 일치하도록 리소스를 생성, 수정 또는 삭제해야 하는지 결정합니다.
3.5.6.1.2. --inlined
플래그
--inlined
플래그를 odo link
명령에 지정하는 경우 odo
는 kubernetes/
디렉터리에 파일을 생성하는 대신 devfile.yaml
의 devfile.yaml에 링크 정보를 저장합니다. --inlined
플래그의 동작은 odo link
및 odo service create
명령 모두에서 유사합니다. 이 플래그는 모든 항목을 단일 devfile.yaml
에 저장하려는 경우 유용합니다. 각 odo link
와 함께 --inlined
플래그를 사용하고 구성 요소에 대해 실행하는 odo service create
명령을 사용해야 합니다.
3.5.6.1.3. --map
플래그
기본적으로 사용 가능한 항목 외에도 구성 요소에 더 많은 바인딩 정보를 추가할 수 있습니다. 예를 들어 구성 요소를 서비스와 연결하고 서비스 사양의 일부 정보를 바인딩하려는 경우 --map
플래그를 사용할 수 있습니다. odo
는 연결 중인 서비스 또는 구성 요소의 사양에 대한 유효성 검사를 수행하지 않습니다. Kubernetes YAML 매니페스트를 편리하게 사용하는 경우에만 이 플래그를 사용하는 것이 좋습니다.
3.5.6.1.4. --bind-as-files
플래그
지금까지 논의된 모든 연결 옵션에 대해 odo
는 바인딩 정보를 환경 변수로 구성 요소에 삽입합니다. 이 정보를 파일로 마운트하려면 --bind-as-files
플래그를 사용할 수 있습니다. 이로 인해 odo
가 바인딩 정보를 구성 요소의 Pod 내의 /bindings
위치에 파일로 삽입합니다. 환경 변수 시나리오와 비교하여 --bind-as-files
를 사용할 때 파일의 이름은 키 뒤에 지정되며 이러한 키의 값은 이러한 파일의 콘텐츠로 저장됩니다.
3.5.6.2. 예제
3.5.6.2.1. 기본 odo link
다음 예에서 백엔드 구성 요소는 기본 odo link
명령을 사용하여 PostgreSQL 서비스와 연결됩니다. 백엔드 구성 요소의 경우 구성 요소 및 서비스가 클러스터로 푸시되었는지 확인합니다.
$ odo list
샘플 출력
APP NAME PROJECT TYPE STATE MANAGED BY ODO app backend myproject spring Pushed Yes
$ odo service list
샘플 출력
NAME MANAGED BY ODO STATE AGE PostgresCluster/hippo Yes (backend) Pushed 59m41s
이제 odo 링크를
실행하여 백엔드 구성 요소를 PostgreSQL 서비스와 연결합니다.
$ odo link PostgresCluster/hippo
출력 예
✓ Successfully created link between component "backend" and service "PostgresCluster/hippo" To apply the link, please use `odo push`
그런 다음 odo push
를 실행하여 실제로 Kubernetes 클러스터에 링크를 생성합니다.
odo push
가 성공하면 다음과 같은 몇 가지 결과가 나타납니다.
백엔드 구성 요소에서 배포한 애플리케이션의 URL을 열면 데이터베이스에 할 일
항목
목록이 표시됩니다. 예를 들어odo url list
명령의 출력에서 polkit이나열되는
경로가 포함됩니다.$ odo url list
샘플 출력
Found the following URLs for component backend NAME STATE URL PORT SECURE KIND 8080-tcp Pushed http://8080-tcp.192.168.39.112.nip.io 8080 false ingress
URL의 올바른 경로는 http://8080-tcp.192.168.39.112.nip.io/api/v1/todos입니다. 정확한 URL은 설정에 따라 다릅니다. 또한 일부 항목을 추가하지 않는 한 데이터베이스에
todos
가 없으므로 URL에 빈 JSON 오브젝트만 표시될 수 있습니다.백엔드 구성 요소에 삽입된 Postgres 서비스와 관련된 바인딩 정보를 확인할 수 있습니다. 이 바인딩 정보는 기본적으로 환경 변수로 삽입됩니다. backend 구성 요소의 디렉터리에서
odo describe
명령을 사용하여 확인할 수 있습니다.$ odo describe
출력 예:
Component Name: backend Type: spring Environment Variables: · PROJECTS_ROOT=/projects · PROJECT_SOURCE=/projects · DEBUG_PORT=5858 Storage: · m2 of size 3Gi mounted to /home/user/.m2 URLs: · http://8080-tcp.192.168.39.112.nip.io exposed via 8080 Linked Services: · PostgresCluster/hippo Environment Variables: · POSTGRESCLUSTER_PGBOUNCER-EMPTY · POSTGRESCLUSTER_PGBOUNCER.INI · POSTGRESCLUSTER_ROOT.CRT · POSTGRESCLUSTER_VERIFIER · POSTGRESCLUSTER_ID_ECDSA · POSTGRESCLUSTER_PGBOUNCER-VERIFIER · POSTGRESCLUSTER_TLS.CRT · POSTGRESCLUSTER_PGBOUNCER-URI · POSTGRESCLUSTER_PATRONI.CRT-COMBINED · POSTGRESCLUSTER_USER · pgImage · pgVersion · POSTGRESCLUSTER_CLUSTERIP · POSTGRESCLUSTER_HOST · POSTGRESCLUSTER_PGBACKREST_REPO.CONF · POSTGRESCLUSTER_PGBOUNCER-USERS.TXT · POSTGRESCLUSTER_SSH_CONFIG · POSTGRESCLUSTER_TLS.KEY · POSTGRESCLUSTER_CONFIG-HASH · POSTGRESCLUSTER_PASSWORD · POSTGRESCLUSTER_PATRONI.CA-ROOTS · POSTGRESCLUSTER_DBNAME · POSTGRESCLUSTER_PGBOUNCER-PASSWORD · POSTGRESCLUSTER_SSHD_CONFIG · POSTGRESCLUSTER_PGBOUNCER-FRONTEND.KEY · POSTGRESCLUSTER_PGBACKREST_INSTANCE.CONF · POSTGRESCLUSTER_PGBOUNCER-FRONTEND.CA-ROOTS · POSTGRESCLUSTER_PGBOUNCER-HOST · POSTGRESCLUSTER_PORT · POSTGRESCLUSTER_ROOT.KEY · POSTGRESCLUSTER_SSH_KNOWN_HOSTS · POSTGRESCLUSTER_URI · POSTGRESCLUSTER_PATRONI.YAML · POSTGRESCLUSTER_DNS.CRT · POSTGRESCLUSTER_DNS.KEY · POSTGRESCLUSTER_ID_ECDSA.PUB · POSTGRESCLUSTER_PGBOUNCER-FRONTEND.CRT · POSTGRESCLUSTER_PGBOUNCER-PORT · POSTGRESCLUSTER_CA.CRT
이러한 변수 중 일부는 백엔드 구성 요소의
src/main/resources/application.properties
파일에서 사용되어 Java Spring Boot 애플리케이션이 PostgreSQL 데이터베이스 서비스에 연결할 수 있습니다.마지막으로
odo
는 다음 파일이 포함된 백엔드 구성 요소의 디렉터리에kubernetes/
라는 디렉터리를 생성했습니다.$ ls kubernetes odo-service-backend-postgrescluster-hippo.yaml odo-service-hippo.yaml
이러한 파일에는 두 리소스에 대한 정보(YAML 매니페스트)가 포함되어 있습니다.
-
odo-service-hippo.yaml
-odo service create --from-file ../postgrescluster.yaml
명령을 사용하여 생성된 Postgres 서비스입니다. -
odo-service-backend-postgrescluster-hippo.yaml
-odo link
명령을 사용하여 생성된 링크입니다.
-
3.5.6.2.2. --inlined 플래그로 odo 링크 사용
--inlined
플래그를 odo link
명령과 함께 사용하면 바인딩 정보를 삽입하는 플래그 없이 odo link
명령과 동일한 효과가 있습니다. 그러나 미묘한 차이점은 위의 경우 kubernetes/
디렉터리에는 두 개의 매니페스트 파일이 있습니다. 하나는 Postgres 서비스용이고 다른 하나는 백엔드 구성 요소와 이 서비스 간의 링크에 대한 것입니다. 그러나 --inlined
플래그를 전달할 때 odo
는 YAML 매니페스트를 저장하기 위해 kubernetes/
디렉터리에 파일을 생성하지 않고 devfile.yaml
파일에 인라인을 저장합니다.
이를 확인하려면 먼저 PostgreSQL 서비스에서 구성 요소를 연결 해제합니다.
$ odo unlink PostgresCluster/hippo
출력 예:
✓ Successfully unlinked component "backend" from service "PostgresCluster/hippo" To apply the changes, please use `odo push`
클러스터에서 연결을 해제하려면 odo push
를 실행합니다. 이제 kubernetes/
디렉터리를 검사하면 하나의 파일만 표시됩니다.
$ ls kubernetes odo-service-hippo.yaml
다음으로 --inlined
플래그를 사용하여 링크를 생성합니다.
$ odo link PostgresCluster/hippo --inlined
출력 예:
✓ Successfully created link between component "backend" and service "PostgresCluster/hippo" To apply the link, please use `odo push`
--inlined
플래그를 생략하는 절차와 같이 클러스터에서 생성되려면 odo push
를 실행해야 합니다. odo
는 devfile.yaml
에 구성을 저장합니다. 이 파일에서 다음과 같은 항목을 볼 수 있습니다.
kubernetes: inlined: | apiVersion: binding.operators.coreos.com/v1alpha1 kind: ServiceBinding metadata: creationTimestamp: null name: backend-postgrescluster-hippo spec: application: group: apps name: backend-app resource: deployments version: v1 bindAsFiles: false detectBindingResources: true services: - group: postgres-operator.crunchydata.com id: hippo kind: PostgresCluster name: hippo version: v1beta1 status: secret: "" name: backend-postgrescluster-hippo
이제 odo unlink PostgresCluster/hippo
를 실행하는 경우odo
는 먼저 devfile.yaml
에서 링크 정보를 제거한 다음 후속 odo push
는 클러스터에서 링크를 삭제합니다.
3.5.6.2.3. 사용자 정의 바인딩
odo link
는 구성 요소에 사용자 정의 바인딩 정보를 삽입할 수 있는 --map
플래그를 허용합니다. 이러한 바인딩 정보는 구성 요소에 연결하는 리소스의 매니페스트에서 가져옵니다. 예를 들어 백엔드 구성 요소 및 PostgreSQL 서비스의 컨텍스트에서 PostgreSQL 서비스의 매니페스트 postgrescluster.yaml
파일의 정보를 백엔드 구성 요소에 삽입할 수 있습니다.
PostgresCluster
서비스의 이름이 hippo
(또는 PostgresCluster 서비스
의 이름이 다르게 지정되는 경우)인 경우 해당 YAML 정의의 postgresVersion
값을 백엔드 구성 요소에 삽입하려면 명령을 실행합니다.
$ odo link PostgresCluster/hippo --map pgVersion='{{ .hippo.spec.postgresVersion }}'
Postgres 서비스의 이름이 hippo
와 다른 경우, pgVersion
값으로 .hippo
대신 위의 명령에 해당 이름을 지정해야 합니다.
링크 작업 후 odo push
를 정상적으로 실행합니다. 푸시 작업이 완료되면 백엔드 구성 요소 디렉터리에서 다음 명령을 실행하여 사용자 정의 매핑이 올바르게 삽입되었는지 확인할 수 있습니다.
$ odo exec -- env | grep pgVersion
출력 예:
pgVersion=13
사용자 정의 바인딩 정보를 두 개 이상 삽입하려는 경우 odo link
는 여러 개의 키-값 쌍의 매핑을 허용합니다. 유일한 제약 조건은 이러한 값을 --map <key>=<value>로 지정해야 한다는 것입니다
. 예를 들어, PostgreSQL 이미지 정보를 버전과 함께 삽입하려면 다음을 실행할 수 있습니다.
$ odo link PostgresCluster/hippo --map pgVersion='{{ .hippo.spec.postgresVersion }}' --map pgImage='{{ .hippo.spec.image }}'
odo push
를 실행합니다. 두 매핑이 모두 올바르게 삽입되었는지 확인하려면 다음 명령을 실행합니다.
$ odo exec -- env | grep -e "pgVersion\|pgImage"
출력 예:
pgVersion=13 pgImage=registry.developers.crunchydata.com/crunchydata/crunchy-postgres-ha:centos8-13.4-0
3.5.6.2.3.1. 인라인으로, 또는 아니오?
odo 링크가
대한 매니페스트 파일을 생성하는 기본 동작을 허용할 수 있습니다. 또는 모든 것을 단일 kubernetes/
디렉터리에 링크에devfile.yaml
파일에 저장하려는 경우 --inlined
플래그를 사용할 수 있습니다.
3.5.6.3. 파일로 바인딩
odo link
에서 제공하는 또 다른 유용한 플래그는 --bind-as-files
입니다. 이 플래그를 전달하면 바인딩 정보가 구성 요소의 포드에 삽입되지 않지만 파일 시스템으로 마운트됩니다.
백엔드 구성 요소와 PostgreSQL 서비스 사이에 기존 링크가 없는지 확인합니다. 백엔드 구성 요소의 디렉터리에서 odo describe
를 실행하고 다음과 유사한 출력이 표시되는지 확인하여 이 작업을 수행할 수 있습니다.
Linked Services: · PostgresCluster/hippo
다음을 사용하여 구성 요소에서 서비스를 끊습니다.
$ odo unlink PostgresCluster/hippo $ odo push
3.5.6.4. --bind-as-files 예제
3.5.6.4.1. 기본 odo 링크 사용
기본적으로 odo
는 링크 정보를 저장하기 위해 kubernetes/
디렉터리에 매니페스트 파일을 생성합니다. 다음을 사용하여 백엔드 구성 요소 및 PostgreSQL 서비스를 연결합니다.
$ odo link PostgresCluster/hippo --bind-as-files $ odo push
예제 odo describe
출력:
$ odo describe Component Name: backend Type: spring Environment Variables: · PROJECTS_ROOT=/projects · PROJECT_SOURCE=/projects · DEBUG_PORT=5858 · SERVICE_BINDING_ROOT=/bindings · SERVICE_BINDING_ROOT=/bindings Storage: · m2 of size 3Gi mounted to /home/user/.m2 URLs: · http://8080-tcp.192.168.39.112.nip.io exposed via 8080 Linked Services: · PostgresCluster/hippo Files: · /bindings/backend-postgrescluster-hippo/pgbackrest_instance.conf · /bindings/backend-postgrescluster-hippo/user · /bindings/backend-postgrescluster-hippo/ssh_known_hosts · /bindings/backend-postgrescluster-hippo/clusterIP · /bindings/backend-postgrescluster-hippo/password · /bindings/backend-postgrescluster-hippo/patroni.yaml · /bindings/backend-postgrescluster-hippo/pgbouncer-frontend.crt · /bindings/backend-postgrescluster-hippo/pgbouncer-host · /bindings/backend-postgrescluster-hippo/root.key · /bindings/backend-postgrescluster-hippo/pgbouncer-frontend.key · /bindings/backend-postgrescluster-hippo/pgbouncer.ini · /bindings/backend-postgrescluster-hippo/uri · /bindings/backend-postgrescluster-hippo/config-hash · /bindings/backend-postgrescluster-hippo/pgbouncer-empty · /bindings/backend-postgrescluster-hippo/port · /bindings/backend-postgrescluster-hippo/dns.crt · /bindings/backend-postgrescluster-hippo/pgbouncer-uri · /bindings/backend-postgrescluster-hippo/root.crt · /bindings/backend-postgrescluster-hippo/ssh_config · /bindings/backend-postgrescluster-hippo/dns.key · /bindings/backend-postgrescluster-hippo/host · /bindings/backend-postgrescluster-hippo/patroni.crt-combined · /bindings/backend-postgrescluster-hippo/pgbouncer-frontend.ca-roots · /bindings/backend-postgrescluster-hippo/tls.key · /bindings/backend-postgrescluster-hippo/verifier · /bindings/backend-postgrescluster-hippo/ca.crt · /bindings/backend-postgrescluster-hippo/dbname · /bindings/backend-postgrescluster-hippo/patroni.ca-roots · /bindings/backend-postgrescluster-hippo/pgbackrest_repo.conf · /bindings/backend-postgrescluster-hippo/pgbouncer-port · /bindings/backend-postgrescluster-hippo/pgbouncer-verifier · /bindings/backend-postgrescluster-hippo/id_ecdsa · /bindings/backend-postgrescluster-hippo/id_ecdsa.pub · /bindings/backend-postgrescluster-hippo/pgbouncer-password · /bindings/backend-postgrescluster-hippo/pgbouncer-users.txt · /bindings/backend-postgrescluster-hippo/sshd_config · /bindings/backend-postgrescluster-hippo/tls.crt
이전 odo describe
출력의 key=value
형식의 환경 변수가 모두 이제 파일로 마운트됩니다. cat
명령을 사용하여 다음 파일의 일부 내용을 봅니다.
예제 명령:
$ odo exec -- cat /bindings/backend-postgrescluster-hippo/password
출력 예:
q({JC:jn^mm/Bw}eu+j.GX{k
예제 명령:
$ odo exec -- cat /bindings/backend-postgrescluster-hippo/user
출력 예:
hippo
예제 명령:
$ odo exec -- cat /bindings/backend-postgrescluster-hippo/clusterIP
출력 예:
10.101.78.56
3.5.6.4.2. --inlined
사용
--bind-as-files
및 --inlined
를 함께 사용한 결과는 odo link --inlined
를 사용하는 것과 유사합니다. 링크의 매니페스트는 kubernetes/
디렉터리에 별도의 파일에 저장하는 대신 devfile.yaml
에 저장됩니다. 그 외에는 odo describe
출력이 이전과 동일합니다.
3.5.6.4.3. 사용자 정의 바인딩
PostgreSQL 서비스와 백엔드 구성 요소를 연결하는 동안 사용자 정의 바인딩을 전달하면 이러한 사용자 지정 바인딩이 환경 변수가 아닌 파일로 삽입됩니다. 예를 들면 다음과 같습니다.
$ odo link PostgresCluster/hippo --map pgVersion='{{ .hippo.spec.postgresVersion }}' --map pgImage='{{ .hippo.spec.image }}' --bind-as-files $ odo push
이러한 사용자 정의 바인딩은 환경 변수로 삽입되는 대신 파일로 마운트됩니다. 이 작업이 완료되었는지 확인하려면 다음 명령을 실행합니다.
예제 명령:
$ odo exec -- cat /bindings/backend-postgrescluster-hippo/pgVersion
출력 예:
13
예제 명령:
$ odo exec -- cat /bindings/backend-postgrescluster-hippo/pgImage
출력 예:
registry.developers.crunchydata.com/crunchydata/crunchy-postgres-ha:centos8-13.4-0
3.5.7. odo 레지스트리
odo
는 이식 가능한 devfile 형식을 사용하여 구성 요소를 설명합니다. odo
는 다양한 devfile 레지스트리에 연결하여 다양한 언어 및 프레임워크에 대한 devfile을 다운로드할 수 있습니다.
공개적으로 사용 가능한 devfile 레지스트리에 연결하거나 자체 보안 레지스트리를 설치할 수 있습니다.
odo registry
명령을 사용하여 odo
에서 devfile 정보를 검색하는 데 사용하는 레지스트리를 관리할 수 있습니다.
3.5.7.1. 레지스트리 나열
현재 odo
에서 연결하는 레지스트리를 나열하려면 다음 명령을 실행합니다.
$ odo registry list
출력 예:
NAME URL SECURE DefaultDevfileRegistry https://registry.devfile.io No
DefaultDevfileRegistry
는 odo에서 사용하는 기본 레지스트리이며 devfile.io 프로젝트에서 제공합니다.
3.5.7.2. 레지스트리 추가
레지스트리를 추가하려면 명령을 실행합니다.
$ odo registry add
출력 예:
$ odo registry add StageRegistry https://registry.stage.devfile.io New registry successfully added
자체 보안 레지스트리를 배포하는 경우 개인 액세스 토큰을 지정하여 --token
플래그를 사용하여 보안 레지스트리에 인증할 수 있습니다.
$ odo registry add MyRegistry https://myregistry.example.com --token <access_token> New registry successfully added
3.5.7.3. 레지스트리 삭제
레지스트리를 삭제하려면 명령을 실행합니다.
$ odo registry delete
출력 예:
$ odo registry delete StageRegistry ? Are you sure you want to delete registry "StageRegistry" Yes Successfully deleted registry
--force
(또는 -f
) 플래그를 사용하여 확인 없이 레지스트리를 강제로 삭제합니다.
3.5.7.4. 레지스트리 업데이트
이미 등록된 레지스트리의 URL 또는 개인 액세스 토큰을 업데이트하려면 명령을 실행합니다.
$ odo registry update
출력 예:
$ odo registry update MyRegistry https://otherregistry.example.com --token <other_access_token> ? Are you sure you want to update registry "MyRegistry" Yes Successfully updated registry
--force
(또는 -f
) 플래그를 사용하여 확인 없이 레지스트리 업데이트를 강제 적용합니다.
3.5.8. odo 서비스
odo
는 Operator 의 도움을 받아 서비스를 배포할 수 있습니다.
설치에 사용 가능한 Operator 및 서비스 목록은 odo catalog
명령을 사용하여 확인할 수 있습니다.
서비스는 구성 요소 의 컨텍스트에서 생성되므로 서비스를 배포하기 전에 odo create
명령을 실행합니다.
서비스는 다음 두 단계를 사용하여 배포됩니다.
- 서비스를 정의하고 해당 정의를 devfile에 저장합니다.
-
odo push
명령을 사용하여 정의된 서비스를 클러스터에 배포합니다.
3.5.8.1. 새 서비스 생성
새 서비스를 생성하려면 명령을 실행합니다.
$ odo service create
예를 들어 my-redis-service
라는 Redis 서비스의 인스턴스를 생성하려면 다음 명령을 실행합니다.
출력 예
$ odo catalog list services Services available through Operators NAME CRDs redis-operator.v0.8.0 RedisCluster, Redis $ odo service create redis-operator.v0.8.0/Redis my-redis-service Successfully added service to the configuration; do 'odo push' to create service on the cluster
이 명령은 서비스 정의가 포함된 kubernetes/
디렉터리에 Kubernetes 매니페스트를 생성하고 이 파일은 devfile.yaml
파일에서 참조합니다.
$ cat kubernetes/odo-service-my-redis-service.yaml
출력 예
apiVersion: redis.redis.opstreelabs.in/v1beta1 kind: Redis metadata: name: my-redis-service spec: kubernetesConfig: image: quay.io/opstree/redis:v6.2.5 imagePullPolicy: IfNotPresent resources: limits: cpu: 101m memory: 128Mi requests: cpu: 101m memory: 128Mi serviceType: ClusterIP redisExporter: enabled: false image: quay.io/opstree/redis-exporter:1.0 storage: volumeClaimTemplate: spec: accessModes: - ReadWriteOnce resources: requests: storage: 1Gi
명령 예
$ cat devfile.yaml
출력 예
[...] components: - kubernetes: uri: kubernetes/odo-service-my-redis-service.yaml name: my-redis-service [...]
생성된 인스턴스의 이름은 선택 사항입니다. 이름을 지정하지 않으면 서비스의 소문자가 됩니다. 예를 들어 다음 명령은 redis
라는 Redis 서비스의 인스턴스를 생성합니다.
$ odo service create redis-operator.v0.8.0/Redis
3.5.8.1.1. 매니페스트 간소화
기본적으로 devfile.yaml
파일에서 참조하는 kubernetes/
디렉터리에 새 매니페스트가 생성됩니다. --inlined
플래그를 사용하여 devfile.yaml
파일 내의 매니페스트를 인라인할 수 있습니다.
$ odo service create redis-operator.v0.8.0/Redis my-redis-service --inlined Successfully added service to the configuration; do 'odo push' to create service on the cluster
명령 예
$ cat devfile.yaml
출력 예
[...] components: - kubernetes: inlined: | apiVersion: redis.redis.opstreelabs.in/v1beta1 kind: Redis metadata: name: my-redis-service spec: kubernetesConfig: image: quay.io/opstree/redis:v6.2.5 imagePullPolicy: IfNotPresent resources: limits: cpu: 101m memory: 128Mi requests: cpu: 101m memory: 128Mi serviceType: ClusterIP redisExporter: enabled: false image: quay.io/opstree/redis-exporter:1.0 storage: volumeClaimTemplate: spec: accessModes: - ReadWriteOnce resources: requests: storage: 1Gi name: my-redis-service [...]
3.5.8.1.2. 서비스 구성
특정 사용자 지정이 없으면 기본 구성으로 서비스가 생성됩니다. 명령줄 인수 또는 파일을 사용하여 고유한 구성을 지정할 수 있습니다.
3.5.8.1.2.1. 명령줄 인수 사용
--parameters
(또는 -p
) 플래그를 사용하여 고유한 구성을 지정합니다.
다음 예제에서는 세 가지 매개 변수를 사용하여 Redis 서비스를 구성합니다.
$ odo service create redis-operator.v0.8.0/Redis my-redis-service \ -p kubernetesConfig.image=quay.io/opstree/redis:v6.2.5 \ -p kubernetesConfig.serviceType=ClusterIP \ -p redisExporter.image=quay.io/opstree/redis-exporter:1.0 Successfully added service to the configuration; do 'odo push' to create service on the cluster
명령 예
$ cat kubernetes/odo-service-my-redis-service.yaml
출력 예
apiVersion: redis.redis.opstreelabs.in/v1beta1 kind: Redis metadata: name: my-redis-service spec: kubernetesConfig: image: quay.io/opstree/redis:v6.2.5 serviceType: ClusterIP redisExporter: image: quay.io/opstree/redis-exporter:1.0
odo catalog describe service
명령을 사용하여 특정 서비스에 사용 가능한 매개변수를 가져올 수 있습니다.
3.5.8.1.2.2. 파일 사용
YAML 매니페스트를 사용하여 자체 사양을 구성합니다. 다음 예에서 Redis 서비스는 세 개의 매개 변수로 구성됩니다.
매니페스트를 생성합니다.
$ cat > my-redis.yaml <<EOF apiVersion: redis.redis.opstreelabs.in/v1beta1 kind: Redis metadata: name: my-redis-service spec: kubernetesConfig: image: quay.io/opstree/redis:v6.2.5 serviceType: ClusterIP redisExporter: image: quay.io/opstree/redis-exporter:1.0 EOF
매니페스트에서 서비스를 생성합니다.
$ odo service create --from-file my-redis.yaml Successfully added service to the configuration; do 'odo push' to create service on the cluster
3.5.8.2. 서비스 삭제
서비스를 삭제하려면 명령을 실행합니다.
$ odo service delete
출력 예
$ odo service list NAME MANAGED BY ODO STATE AGE Redis/my-redis-service Yes (api) Deleted locally 5m39s
$ odo service delete Redis/my-redis-service ? Are you sure you want to delete Redis/my-redis-service Yes Service "Redis/my-redis-service" has been successfully deleted; do 'odo push' to delete service from the cluster
--force
(또는 -f
) 플래그를 사용하여 확인 없이 서비스를 강제로 삭제합니다.
3.5.8.3. 서비스 나열
구성 요소용으로 생성된 서비스를 나열하려면 다음 명령을 실행합니다.
$ odo service list
출력 예
$ odo service list NAME MANAGED BY ODO STATE AGE Redis/my-redis-service-1 Yes (api) Not pushed Redis/my-redis-service-2 Yes (api) Pushed 52s Redis/my-redis-service-3 Yes (api) Deleted locally 1m22s
각 서비스에 대해 STATE
는 odo push
명령을 사용하여 서비스가 클러스터로 푸시되었는지 또는 서비스가 여전히 클러스터에서 실행 중이지만 odo service delete
명령을 사용하여 로컬에서 devfile에서 제거되었는지를 나타냅니다.
3.5.8.4. 서비스에 대한 정보 얻기
구성된 매개 변수의 종류, 버전, 이름 및 목록과 같은 서비스의 세부 정보를 얻으려면 명령을 실행합니다.
$ odo service describe
출력 예
$ odo service describe Redis/my-redis-service Version: redis.redis.opstreelabs.in/v1beta1 Kind: Redis Name: my-redis-service Parameters: NAME VALUE kubernetesConfig.image quay.io/opstree/redis:v6.2.5 kubernetesConfig.serviceType ClusterIP redisExporter.image quay.io/opstree/redis-exporter:1.0
3.5.9. odo 스토리지
odo
를 사용하면 구성 요소에 연결된 스토리지 볼륨을 관리할 수 있습니다. 스토리지 볼륨은 emptyDir
Kubernetes 볼륨을 사용하는 임시 볼륨 또는 PVC( 영구 볼륨 클레임 )일 수 있습니다. PVC를 사용하면 특정 클라우드 환경의 세부 정보를 이해하지 않고도 영구 볼륨(예: GCE PersistentDisk 또는 iSCSI 볼륨)을 요청할 수 있습니다. 영구 스토리지 볼륨은 재시작 시 데이터를 유지하고 구성 요소를 다시 빌드하는 데 사용할 수 있습니다.
3.5.9.1. 스토리지 볼륨 추가
클러스터에 스토리지 볼륨을 추가하려면 명령을 실행합니다.
$ odo storage create
출력 예:
$ odo storage create store --path /data --size 1Gi ✓ Added storage store to nodejs-project-ufyy $ odo storage create tempdir --path /tmp --size 2Gi --ephemeral ✓ Added storage tempdir to nodejs-project-ufyy Please use `odo push` command to make the storage accessible to the component
위의 예에서 첫 번째 스토리지 볼륨이 /data
경로에 마운트되었으며 크기가 1Gi
로 설정되어 두 번째 볼륨이 /tmp
에 마운트되어 임시입니다.
3.5.9.2. 스토리지 볼륨 나열
현재 구성 요소에서 사용하는 스토리지 볼륨을 확인하려면 명령을 실행합니다.
$ odo storage list
출력 예:
$ odo storage list The component 'nodejs-project-ufyy' has the following storage attached: NAME SIZE PATH STATE store 1Gi /data Not Pushed tempdir 2Gi /tmp Not Pushed
3.5.9.3. 스토리지 볼륨 삭제
스토리지 볼륨을 삭제하려면 명령을 실행합니다.
$ odo storage delete
출력 예:
$ odo storage delete store -f Deleted storage store from nodejs-project-ufyy Please use `odo push` command to delete the storage from the cluster
위의 예에서 -f
플래그를 사용하면 사용자 권한을 요청하지 않고 스토리지를 강제로 삭제합니다.
3.5.9.4. 특정 컨테이너에 스토리지 추가
devfile에 여러 컨테이너가 있는 경우 odo storage create
명령에서 --container
플래그를 사용하여 스토리지를 연결할 컨테이너를 지정할 수 있습니다.
다음 예제는 여러 컨테이너가 있는 devfile에서 발췌한 것입니다.
components: - name: nodejs1 container: image: registry.access.redhat.com/ubi8/nodejs-12:1-36 memoryLimit: 1024Mi endpoints: - name: "3000-tcp" targetPort: 3000 mountSources: true - name: nodejs2 container: image: registry.access.redhat.com/ubi8/nodejs-12:1-36 memoryLimit: 1024Mi
이 예제에는nodejs1
및 nodejs2
라는 두 개의 컨테이너가 있습니다. 스토리지를 nodejs2
컨테이너에 연결하려면 다음 명령을 사용합니다.
$ odo storage create --container
출력 예:
$ odo storage create store --path /data --size 1Gi --container nodejs2 ✓ Added storage store to nodejs-testing-xnfg Please use `odo push` command to make the storage accessible to the component
odo storage list
명령을 사용하여 스토리지 리소스를 나열할 수 있습니다.
$ odo storage list
출력 예:
The component 'nodejs-testing-xnfg' has the following storage attached: NAME SIZE PATH CONTAINER STATE store 1Gi /data nodejs2 Not Pushed
3.5.10. 공통 플래그
대부분의 odo
명령에서 다음 플래그를 사용할 수 있습니다.
명령 | Description |
---|---|
| 구성 요소가 정의된 컨텍스트 디렉터리를 설정합니다. |
| 구성 요소의 프로젝트를 설정합니다. 기본값은 로컬 구성에 정의된 프로젝트입니다. 사용할 수 없는 경우 클러스터의 현재 프로젝트입니다. |
| 구성 요소의 애플리케이션을 설정합니다. 기본값은 로컬 구성에 정의된 애플리케이션입니다. 사용할 수 없는 경우 앱. |
|
기본 구성을 사용하지 않는 경우 |
| 이 플래그를 사용하여 로그를 확인합니다. |
| 이 플래그를 사용하여 사용자에게 확인 메시지를 표시하지 않도록 명령에 알립니다. |
| 상세 수준을 설정합니다. 자세한 내용은 odo에서 로깅 을 참조하십시오. |
| 명령에 대한 도움말을 출력합니다. |
일부 명령에는 일부 플래그를 사용할 수 없습니다. --help
플래그와 함께 명령을 실행하여 사용 가능한 모든 플래그 목록을 가져옵니다.
3.5.11. JSON 출력
콘텐츠를 출력하는 odo
명령은 일반적으로 -o json
플래그를 수락하여 이 콘텐츠를 JSON 형식으로 출력하는 경우 다른 프로그램이 이 출력을 더 쉽게 구문 분석하는 데 적합합니다.
출력 구조는 kind
,apiVersion
,metadata
,spec
, status
필드와 함께 Kubernetes 리소스와 유사합니다.
나열 명령은 목록의 항목을 나열하는 항목
(또는 유사한) 필드를 포함하는 List
리소스를 반환하며 각 항목은 Kubernetes 리소스와 유사합니다.
삭제 명령은 상태
리소스를 반환합니다. Status Kubernetes 리소스 를 참조하십시오.
다른 명령은 명령과 관련된 리소스를 반환합니다(예: 애플리케이션
, 스토리지
,URL
등).
현재 -o json
플래그를 수락하는 명령의 전체 목록은 다음과 같습니다.
명령 | 종류(버전) | 목록 항목의 종류(버전) | 완전한 콘텐츠입니까? |
---|---|---|---|
odo application describe | 애플리케이션(odo.dev/v1alpha1) | 해당 없음 | 제공되지 않음 |
odo 애플리케이션 목록 | 목록 (odo.dev/v1alpha1) | 애플리케이션(odo.dev/v1alpha1) | ? |
odo catalog list components | 목록 (odo.dev/v1alpha1) | 누락됨 | 제공됨 |
odo catalog list services | 목록 (odo.dev/v1alpha1) | ClusterServiceVersion (operators.coreos.com/v1alpha1) | ? |
odo catalog describe 구성 요소 | 누락됨 | 해당 없음 | 제공됨 |
odo catalog describe service | CRDDescription(odo.dev/v1alpha1) | 해당 없음 | 제공됨 |
odo 구성 요소 생성 | 구성 요소(odo.dev/v1alpha1) | 해당 없음 | 제공됨 |
odo component describe | 구성 요소(odo.dev/v1alpha1) | 해당 없음 | 제공됨 |
odo 구성 요소 목록 | 목록 (odo.dev/v1alpha1) | 구성 요소(odo.dev/v1alpha1) | 제공됨 |
odo config view | DevfileConfiguration(odo.dev/v1alpha1) | 해당 없음 | 제공됨 |
odo debug info | OdoDebugInfo (odo.dev/v1alpha1) | 해당 없음 | 제공됨 |
odo env view | EnvInfo (odo.dev/v1alpha1) | 해당 없음 | 제공됨 |
odo preference view | PreferenceList (odo.dev/v1alpha1) | 해당 없음 | 제공됨 |
odo project create | 프로젝트(odo.dev/v1alpha1) | 해당 없음 | 제공됨 |
odo project delete | 상태(v1) | 해당 없음 | 제공됨 |
odo project get | 프로젝트(odo.dev/v1alpha1) | 해당 없음 | 제공됨 |
odo 프로젝트 목록 | 목록 (odo.dev/v1alpha1) | 프로젝트(odo.dev/v1alpha1) | 제공됨 |
odo 레지스트리 목록 | 목록 (odo.dev/v1alpha1) | 누락됨 | 제공됨 |
odo service create | Service | 해당 없음 | 제공됨 |
odo service describe | Service | 해당 없음 | 제공됨 |
odo 서비스 목록 | 목록 (odo.dev/v1alpha1) | Service | 제공됨 |
odo storage create | 스토리지(odo.dev/v1alpha1) | 해당 없음 | 제공됨 |
odo storage delete | 상태(v1) | 해당 없음 | 제공됨 |
odo 스토리지 목록 | 목록 (odo.dev/v1alpha1) | 스토리지(odo.dev/v1alpha1) | 제공됨 |
odo url 목록 | 목록 (odo.dev/v1alpha1) | URL (odo.dev/v1alpha1) | 제공됨 |