8장. OpenShift와 통합


8.1. OpenShift API를 사용하여 작업 공간 관리

조직의 OpenShift 클러스터에서 OpenShift Dev Spaces 작업 공간은 동일한 이름의 DevWorkspace 사용자 정의 리소스로 표시됩니다. 결과적으로 OpenShift Dev Spaces 대시보드에 my-workspace 라는 작업 공간이 있는 경우 클러스터의 사용자 프로젝트에 my-workspace 라는 해당 DevWorkspace 사용자 지정 리소스가 있습니다.

클러스터의 각 DevWorkspace 사용자 지정 리소스는 OpenShift Dev Spaces 작업 공간을 나타내기 때문에 명령줄 oc 와 같은 클라이언트와 OpenShift API를 사용하여 OpenShift Dev Spaces 작업 공간을 관리할 수 있습니다.

DevWorkspace 사용자 정의 리소스에는 작업 공간에 복제된 Git 리포지토리의 devfile에서 파생된 세부 정보가 포함되어 있습니다. 예를 들어 devfile은 devfile 명령 및 작업 공간 컨테이너 구성을 제공할 수 있습니다.

8.1.1. 모든 작업 공간 나열

사용자는 명령줄을 사용하여 작업 영역을 나열할 수 있습니다.

사전 요구 사항

  • 클러스터의 프로젝트에서 DevWorkspace 리소스를 가져올 수 있는 권한이 있는 활성 oc 세션입니다. CLI 시작하기를 참조하십시오.
  • 클러스터에서 관련 OpenShift Dev Spaces 사용자 네임스페이스를 알고 있습니다.

    작은 정보

    https:// <openshift_dev_spaces_fqdn> /api/kubernetes/namespace를 방문하여 OpenShift Dev Spaces 사용자 네임스페이스를 이름으로 가져올 수 있습니다.

  • 클러스터의 OpenShift Dev Spaces 사용자 네임스페이스에 있습니다.

    작은 정보

    OpenShift에서 명령줄 oc 툴을 사용하여 현재 네임스페이스를 표시하거나 네임스페이스로 전환할 수 있습니다.

절차

  • 작업 영역을 나열하려면 명령줄에 다음을 입력합니다.

    $ oc get devworkspaces

    예 8.1. 출력 결과

    NAMESPACE   NAME                 DEVWORKSPACE ID             PHASE     INFO
    user1-dev   spring-petclinic     workspace6d99e9ffb9784491   Running   https://url-to-workspace.com
    user1-dev   golang-example       workspacedf64e4a492cd4701   Stopped   Stopped
    user1-dev   python-hello-world   workspace69c26884bbc141f2   Failed    Container tooling has state CrashLoopBackOff
작은 정보

이 명령에 --watch 플래그를 추가하여 PHASE 변경 사항을 라이브로 볼 수 있습니다.

참고

클러스터에 대한 관리자 권한이 있는 사용자는 --all-namespaces 플래그를 포함하여 모든 OpenShift Dev Spaces 사용자의 모든 작업 공간을 나열할 수 있습니다.

8.1.2. 작업 공간 생성

사용 사례에서 OpenShift Dev Spaces 대시보드 사용을 허용하지 않는 경우 클러스터에 사용자 정의 리소스를 적용하여 OpenShift API로 작업 공간을 생성할 수 있습니다.

참고

OpenShift Dev Spaces 대시보드를 통해 작업 공간을 생성하면 명령줄 사용과 비교하여 사용자 환경 및 구성 이점이 향상됩니다.

  • 사용자는 자동으로 클러스터에 로그인됩니다.
  • OpenShift 클라이언트가 자동으로 작동합니다.
  • OpenShift Dev Spaces 및 해당 구성 요소는 대상 Git 리포지토리의 devfile을 클러스터의 DevWorkspaceDevWorkspaceTemplate 사용자 정의 리소스로 자동으로 변환합니다.
  • 작업 공간에 대한 액세스는 기본적으로 작업 공간의 DevWorkspace 에서 routingClass: che 를 사용하여 보호됩니다.
  • DevWorkspaceOperatorConfig 구성에 대한 인식은 OpenShift Dev Spaces에서 관리합니다.
  • CheCluster 사용자 정의 리소스에 지정된 spec.devEnvironments 의 구성 인식은 다음을 포함합니다.

    • 영구 스토리지 전략은 devEnvironments.storage 를 사용하여 지정합니다.
    • 기본 IDE는 devEnvironments.defaultEditor 로 지정됩니다.
    • 기본 플러그인은 devEnvironments.defaultPlugins 로 지정됩니다.
    • 컨테이너 빌드 구성은 devEnvironments.containerBuildConfiguration 을 사용하여 지정됩니다.

사전 요구 사항

절차

  1. DevWorkspace 사용자 정의 리소스를 준비하려면 대상 Git 리포지토리의 devfile 내용을 복사합니다.

    예 8.2. schemaVersion을 사용하여 devfile 콘텐츠 복사: 2.2.0

    components:
      - name: tooling-container
        container:
          image: quay.io/devfile/universal-developer-image:ubi8-latest
    작은 정보
  2. 이전 단계의 devfile 콘텐츠를 spec.template 필드 아래에 붙여넣는 DevWorkspace 사용자 정의 리소스를 생성합니다.

    예 8.3. DevWorkspace 사용자 정의 리소스

    kind: DevWorkspace
    apiVersion: workspace.devfile.io/v1alpha2
    metadata:
      name: my-devworkspace1
      namespace: user1-dev2
    spec:
      routingClass: che
      started: true3
      contributions:4
        - name: ide
          uri: http://devspaces-dashboard.openshift-devspaces.svc.cluster.local:8080/dashboard/api/editors/devfile?che-editor=che-incubator/che-code/latest
      template:
        projects:5
          - name: my-project-name
            git:
              remotes:
                origin: https://github.com/eclipse-che/che-docs
        components:6
          - name: tooling-container
            container:
              image: quay.io/devfile/universal-developer-image:ubi8-latest
    1
    DevWorkspace 사용자 정의 리소스의 이름입니다. 새 작업 공간의 이름이 됩니다.
    2
    새 작업 공간의 대상 프로젝트인 사용자 네임스페이스입니다.
    3
    DevWorkspace 사용자 정의 리소스를 만들 때 작업 공간을 시작해야 하는지 여부를 결정합니다.
    4
    5
    시작할 때 작업 공간에 복제할 Git 리포지토리에 대한 세부 정보입니다.
    6
    작업 공간 컨테이너 및 볼륨 구성 요소와 같은 구성 요소 목록입니다.
  3. DevWorkspace 사용자 정의 리소스를 클러스터에 적용합니다.

검증

  1. DevWorkspacePHASE 상태를 확인하여 작업 공간이 시작되었는지 확인합니다.

    $ oc get devworkspaces -n <user_project> --watch

    예 8.4. 출력 결과

    NAMESPACE        NAME                  DEVWORKSPACE ID             PHASE      INFO
    user1-dev        my-devworkspace       workspacedf64e4a492cd4701   Starting   Waiting for workspace deployment
  2. 작업 공간이 성공적으로 시작되면 oc get devworkspaces 명령의 출력에서 PHASE 상태가 Running 으로 변경됩니다.

    예 8.5. 출력 결과

    NAMESPACE            NAME                  DEVWORKSPACE ID             PHASE      INFO
    user1-dev            my-devworkspace       workspacedf64e4a492cd4701   Running    https://url-to-workspace.com

    그런 다음 다음 옵션 중 하나를 사용하여 작업 영역을 열 수 있습니다.

    • oc get devworkspaces 명령 출력의 INFO 섹션에 제공된 URL을 방문합니다.
    • OpenShift Dev Spaces 대시보드에서 작업 공간을 엽니다.

8.1.3. 작업 공간 중지

Devworkspace 사용자 정의 리소스의 spec.started 필드를 false 로 설정하여 작업 공간을 중지할 수 있습니다.

사전 요구 사항

  • 클러스터의 활성 oc 세션입니다. CLI 시작하기를 참조하십시오.
  • 작업 공간 이름을 알고 있습니다.

    작은 정보

    $ oc get devworkspaces 출력에서 관련 작업 공간 이름을 찾을 수 있습니다.

  • 클러스터에서 관련 OpenShift Dev Spaces 사용자 네임스페이스를 알고 있습니다.

    작은 정보

    https:// <openshift_dev_spaces_fqdn> /api/kubernetes/namespace를 방문하여 OpenShift Dev Spaces 사용자 네임스페이스를 이름으로 가져올 수 있습니다.

  • 클러스터의 OpenShift Dev Spaces 사용자 네임스페이스에 있습니다.

    작은 정보

    OpenShift에서 명령줄 oc 툴을 사용하여 현재 네임스페이스를 표시하거나 네임스페이스로 전환할 수 있습니다.

절차

  • 다음 명령을 실행하여 작업 공간을 중지합니다.

    $ oc patch devworkspace <workspace_name> \
    -p '{"spec":{"started":false}}' \
    --type=merge -n <user_namespace> && \
    oc wait --for=jsonpath='{.status.phase}'=Stopped \
    dw/<workspace_name> -n <user_namespace>

8.1.4. 중지된 작업 공간 시작

Devworkspace 사용자 정의 리소스에서 spec.started 필드를 true 로 설정하여 중지된 작업 공간을 시작할 수 있습니다.

사전 요구 사항

  • 클러스터의 활성 oc 세션입니다. CLI 시작하기를 참조하십시오.
  • 작업 공간 이름을 알고 있습니다.

    작은 정보

    $ oc get devworkspaces 출력에서 관련 작업 공간 이름을 찾을 수 있습니다.

  • 클러스터에서 관련 OpenShift Dev Spaces 사용자 네임스페이스를 알고 있습니다.

    작은 정보

    https:// <openshift_dev_spaces_fqdn> /api/kubernetes/namespace를 방문하여 OpenShift Dev Spaces 사용자 네임스페이스를 이름으로 가져올 수 있습니다.

  • 클러스터의 OpenShift Dev Spaces 사용자 네임스페이스에 있습니다.

    작은 정보

    OpenShift에서 명령줄 oc 툴을 사용하여 현재 네임스페이스를 표시하거나 네임스페이스로 전환할 수 있습니다.

절차

  • 다음 명령을 실행하여 중지된 작업 영역을 시작합니다.

    $ oc patch devworkspace <workspace_name> \
    -p '{"spec":{"started":true}}' \
    --type=merge -n <user_namespace> && \
    oc wait --for=jsonpath='{.status.phase}'=Running \
    dw/<workspace_name> -n <user_namespace>

8.1.5. 작업 공간 제거

DevWorkspace 사용자 정의 리소스를 간단히 삭제하여 작업 공간을 제거할 수 있습니다.

주의

DevWorkspace 사용자 정의 리소스를 삭제하면 OpenShift Dev Spaces에서 생성한 경우 다른 작업 공간 리소스도 삭제됩니다(예: 참조된 DevWorkspaceTemplate 및 per-workspace PersistentVolumeClaims ).

작은 정보

가능한 경우 OpenShift Dev Spaces 대시보드를 사용하여 작업 공간을 제거합니다.

사전 요구 사항

  • 클러스터의 활성 oc 세션입니다. CLI 시작하기를 참조하십시오.
  • 작업 공간 이름을 알고 있습니다.

    작은 정보

    $ oc get devworkspaces 출력에서 관련 작업 공간 이름을 찾을 수 있습니다.

  • 클러스터에서 관련 OpenShift Dev Spaces 사용자 네임스페이스를 알고 있습니다.

    작은 정보

    https:// <openshift_dev_spaces_fqdn> /api/kubernetes/namespace를 방문하여 OpenShift Dev Spaces 사용자 네임스페이스를 이름으로 가져올 수 있습니다.

  • 클러스터의 OpenShift Dev Spaces 사용자 네임스페이스에 있습니다.

    작은 정보

    OpenShift에서 명령줄 oc 툴을 사용하여 현재 네임스페이스를 표시하거나 네임스페이스로 전환할 수 있습니다.

절차

  • 다음 명령을 실행하여 작업 공간을 제거합니다.

    $ oc delete devworkspace <workspace_name> -n <user_namespace>
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.