작업 및 작업 실행에 관한 작업
IBM Cloud® Code Engine에서 작업을 실행하는 방법에 대해 알아보십시오. 작업은 실행 가능한 코드의 인스턴스를 하나 이상 병렬로 실행합니다. HTTP 요청을 처리하는 애플리케이션과 달리 작업이 한 번 실행되고 종료되도록 설계되었습니다. 작업을 작성할 때 작업이 실행될 때마다 사용될 워크로드 구성 정보를 지정할 수 있습니다.
시작하기 전에
- Code Engine 내에서 일괄 작업 워크로드의 개념을 이해합니다. 배치 작업에 대한 자세한 내용은 배치 작업 워크로드를 참조하세요.
- 코드를 Code Engine 작업 컴포넌트로 실행하는 방법을 계획하고 선택하십시오. 생성할 Code Engine 워크로드 유형에 대한 자세한 내용은 다음 대상에 대한 계획 Code Engine 을 참조하세요.
- 작업 및 작업 실행은 두 가지 방법으로 작업할 수 있습니다:
- Code Engine 콘솔을 사용하려면 Code Engine 개요로 이동하십시오.
- CLI를 사용하려는 경우 Code Engine CLI 환경을 설정하십시오.
Code Engine은 사용자 정의 리소스 정의(CRD) 메소드를 제공합니다. 자세한 내용은 일괄 CRD 방법을 참조하세요.
코드를 Code Engine 작업 컴포넌트로 실행하려면 어떻게 해야 합니까?
코드가 로컬 파일에 소스로 존재하든, Git 저장소에 존재하든, 또는 코드가 공개 또는 비공개 레지스트리에 존재하는 컨테이너 이미지이든, Code Engine 은 코드를 작업으로 실행할 수 있는 간소화된 방법을 제공합니다.
-
컨테이너 이미지(container image)가 있다면, OCI(Open Container Initiative)표준 에 따라, 작업을 생성할 때 컨테이너 레지스트리의 위치를 가리키는 이미지 참조만 제공하면 됩니다. 공개 레지스트리 또는 개인 레지스트리의 이미지에서 작업을 생성한 다음, 작업 실행 시 참조된 이미지에 액세스할 수 있습니다.
-
Git 저장소에 있는 소스 코드로 시작하는 경우, 소스 위치를 지정할 수 있으며, Code Engine 이 소스에서 이미지를 구축하고 작업을 생성하는 작업을 한 번의 작업으로 처리합니다. 이 경우 Code Engine은 이미지를 IBM Cloud® Container Registry에 업로드합니다. 자세한 정보는 저장소 소스 코드에서 작업 작성을 참조하십시오. 이미지 빌드를 더 많이 제어하려면 작업을 작성하고 실행하기 전에 Code Engine을 사용하여 이미지를 빌드하도록 선택할 수 있습니다.
-
로컬 워크스테이션에서 소스 코드로 시작하는 경우, 소스의 위치를 지정할 수 있으며, Code Engine 는 단일 CLI 명령을 통해 소스에서 이미지를 구축하고 작업을 생성합니다. 이 경우 Code Engine은 이미지를 IBM Cloud® Container Registry에 업로드합니다. 자세한 정보는 CLI를 사용하여 로컬 소스 코드에서 작업 작성을 참조하십시오. 이미지 빌드를 더 많이 제어하려면 작업을 작성하고 실행하기 전에 Code Engine을 사용하여 이미지를 빌드하도록 선택할 수 있습니다.
작업을 작성하고 실행한 후 작업 작성 방식이나 이전의 업데이트 방식에 관계없이 위의 방법 중 하나를 사용하여 작업을 업데이트할 수도 있습니다.
작업으로 작업할 때 다음의 핵심 사항을 염두에 두십시오.
- 애플리케이션 이미지와 달리 작업 이미지에는 HTTP 서버가 없습니다.
- 이미지에 있는 실행 프로그램이 성공적으로 완료되었다고 간주되려면 0 코드로 종료되어야 합니다.
- 이미지는 공용 또는 개인용 이미지 레지스트리에서 다운로드할 수 있습니다. 자세한 정보는 컨테이너 레지스트리에 액세스를 참조하십시오.
작업을 실행할 때 이미지에 대해 태그를 지정하지 않는 한 참조된 컨테이너 이미지의 최신 버전이 작업 실행에 사용됩니다. 이미지에 대해 태그를 지정한 경우 태그 지정된 이미지가 작업 실행에 사용됩니다.
HTTP 처리에 대한 고려사항
작업(또는 앱)을 사용할 때 Code Engine의 기본 HTTP 처리를 알고 있으면 도움이 됩니다. HTTP 처리에 대한 고려사항을 참조하십시오.
작업 작성 및 실행 옵션
앱을 작성하거나 실행할 때 지정할 수 있는 옵션에 대해 알아봅니다. 옵션은 콘솔 또는 CLI를 사용하는지에 따라 다를 수 있습니다.
작업의 메모리 및 CPU
작업을 배치할 때 작업이 소비할 수 있는 메모리 양과 CPU를 지정할 수 있습니다. CPU 및 메모리의 양은 작업이 컴퓨팅 집약적 또는 메모리 집약적인지 아니면 균형을 이루고 있는지에 따라 다를 수 있습니다.
기본적으로 작업에는 4G 메모리와 1개의 vCPU가 지정됩니다. 메모리 및 CPU 선택에 대한 자세한 정보는 지원되는 메모리와 CPU 조합을 참조하십시오.
명령 및 인수를 사용하여 작업 작성 및 실행
작업을 작성 또는 실행할 때 런타임시 사용하는 작업의 명령 및 인수를 정의할 수 있습니다.
CLI 또는 콘솔을 사용하여 작업에 명령 및 인수를 추가할 수 있습니다.
콘솔을 통해 명령 및 인수를 추가하려면 Command 및 Arguments 필드를 사용하십시오.
CLI를 사용하여 명령 및 인수를 추가하려면 --cmd 및 --args 옵션을 job create 또는 jobrun submit 명령에 추가하십시오.
명령 및 인수 정의에 대한 자세한 정보는 코드 엔진 워크로드에 대한 명령 및 인수 정의를 참조하십시오.
환경 변수를 사용하여 작업 작성 및 실행
런타임 시 작업에서 사용할 수 있는 키-값 쌍으로서 환경 변수를 정의하고 설정할 수 있습니다.
작업을 작성할 때 또는 콘솔에서 또는 CLI를 사용하여 기존 작업을 업데이트할 때 환경 변수를 정의할 수 있습니다. configmap(또는 시크릿)을 완전히 참조하거나 configmap(또는 시크릿)에 있는 개별 키를 참조하는 작업의 환경 변수를 작성할 수 있습니다.
환경 변수 정의에 대한 자세한 정보는 환경 변수 작업을 참조하십시오.
시크릿 및 configmap을 사용하여 작업 작성 및 실행
Code Engine 에서, 환경 변수를 사용하여 작업에서 비밀 키와 구성 맵을 사용할 수 있습니다.
시크릿과 configmap 모두는 키-값 쌍입니다. 환경 변수로 맵핑되면, 환경 변수 이름이 해당 맵에 있는 각 항목의 "키"에 해당하고, 환경 변수 값은 해당 키의 "값"인 것과 같이 NAME=VALUE 관계가 설정됩니다.
작업은 configmap(또는 시크릿)을 완전히 참조하거나 configmap(또는 시크릿)에 있는 개별 키를 참조하는 환경 변수를 사용할 수 있습니다.
자세한 정보는 환경 변수를 사용하여 시크릿 참조 및 환경 변수를 사용하여 configmap 참조를 참조하십시오.
내 작업을 무한정 실행하려면 어떻게 해야 합니까?
일반적으로 작업은 한 번 실행하고 최대 실행 시간으로 종료하도록 설계되었습니다.
그러나 써드파티 데이터 저장소를 지속적으로 폴링하려 한다고 가정하십시오. 애플리케이션을 작성하도록 선택할 수 있지만 HTTP 요청을 처리하려면 앱 포트가 열려 있어야 합니다. 대신 HTTP 요청을 서비스하지 않으려는 경우 최대 실행 시간 없이 실행되고 제한시간이 초과되지 않는 작업을 작성하도록 선택할 수 있습니다.
Code Engine를 사용하여 작업의 mode 를 선택할 수 있습니다. 최대 실행 시간이 적용되는 작업의 경우 작업에 task 모드를 사용하십시오. 실패한 인스턴스는 작업 재시도 한계에 따라 다시 시작됩니다. 이 모드는 작업의 기본 동작입니다.
무한정 실행할 수 있고 제한시간이 초과되지 않는 작업을 작성하려면 작업에 daemon 모드를 사용하십시오. 실패한 인스턴스는 자동으로 무한정 재시작됩니다.
Code Engine에서는 사용하는 리소스에 대해서만 비용을 지불합니다. 작업이 daemon 모드에서 실행되는 경우 작업을 삭제할 때까지 작업이 항상 실행 중이라는 점에 유의하십시오.
자세한 정보는 무한정 실행되는 작업 작성 및 실행 명령을 참조하십시오.
작업 할당량에 대한 고려사항
애플리케이션, 기능 및 일괄처리 작업에 대해 작업할 때 이러한 자원은 Code Engine 프로젝트의 컨텍스트 내에서 실행됩니다. 자원 할당량은 프로젝트별로 정의되며 애플리케이션, 기능 및 일괄처리 작업에 대한 한계가 적용됩니다.
Code Engine 한계에 대한 자세한 정보는 Code Engine의 한계 및 할당량을 참조하십시오.
완료된 작업 실행 정리
완료된 작업은 일주일 후에 자동으로 삭제됩니다.
다음 단계
이제 Code Engine 작업에 대한 작업의 주요 개념에 익숙해졌습니다. 작업을 작성하고 실행할 준비가 되었습니까? 다음을 참조하십시오.
- 공용 레지스트리의 이미지에서 작업 작성.
- IBM Cloud Container Registry의 이미지에서 작업 작성.
- 개인용 레지스트리의 이미지에서 작업 작성.
- 저장소 소스 코드에서 작업 작성.
- 작업 실행.
작업 관리에 대한 자세한 내용은 다음을 참조하십시오
- IBM Cloud 서비스를 서비스 바인딩과 통합.
- 환경 변수, configmaps 및 시크릿 에 대한 작업을 수행합니다.
- 이벤트 생성자에 등록.
- 작업 문제점 해결.