Kf에서 단기 워크플로를 태스크로 실행하여 이 워크플로를 실행할 수 있습니다. 태스크는 앱 아래에서 실행됩니다. 즉, 각 태스크에 연결된 앱이 있어야 합니다. 각 태스크 실행은 상위 앱의 빌드 아티팩트를 사용합니다. 태스크는 단기 실행이므로 앱은 장기 실행 애플리케이션으로 배포되지 않으며 앱이나 태스크에 대한 경로가 생성되면 안 됩니다.
태스크 실행을 위한 앱 푸시
test-app repo 저장소를 클론합니다.
git clone https://github.com/cloudfoundry-samples/test-app test-app
cd test-app
앱을 푸시합니다.
kf push APP_NAME --task
명령어로 앱을 푸시합니다.--task
플래그는 앱에서 태스크를 실행하는 데 사용되므로 앱에 경로가 생성되지 않으며 앱이 장기 실행 애플리케이션으로 배포되지 않는다는 점을 나타냅니다.kf push test-app --task
앱을 나열하여 앱 인스턴스나 경로가 생성되지 않았는지 확인합니다.
kf apps
앱이 시작되지 않으며 URL이 없습니다.
Listing Apps in Space: test-space Name Instances Memory Disk CPU URLs test-app stopped 1Gi 1Gi 100m <nil>
앱에서 태스크 실행
앱에서 태스크를 실행할 때 선택적으로 --command
플래그를 사용하여 시작 명령어를 지정할 수 있습니다. 시작 명령어가 지정되지 않으면 앱에 지정된 시작 명령어를 사용합니다. 앱에 시작 명령어가 지정되지 않으면 컨테이너 이미지의 CMD 구성을 조회합니다. 태스크를 성공적으로 실행하려면 시작 명령어가 있어야 합니다.
kf run-task test-app --command "printenv"
다음과 비슷한 메시지가 표시되며 태스크가 제출되었음을 확인합니다.
Task test-app-gd8dv is submitted successfully for execution.
태스크 이름은 자동으로 생성되며 앱 이름이 프리픽스로 추가되고 임의의 문자열이 서픽스로 추가됩니다. 태스크 이름은 동일한 클러스터 내의 태스크에 대한 고유 식별자입니다.
태스크 리소스 한도 지정
리소스 제한(예: CPU 코어/메모리 한도/디스크 할당량)은 앱(kf push
시)에 또는 kf run-task
명령어 도중에 지정할 수 있습니다. kf run-task
명령어에 지정된 한도는 앱에 지정된 한도보다 우선시됩니다.
앱에서 리소스 제한을 지정하려면 kf push
명령어에 --cpu-cores
, --memory-limit
, --disk-quota
플래그를 사용하면 됩니다.
kf push test-app --command "printenv" --cpu-cores=0.5 --memory-limit=2G --disk-quota=5G --task
앱에서 이러한 한도를 재정의하려면 kf run-task
명령어에 --cpu-cores
, --memory-limit
, --disk-quota
플래그를 사용하면 됩니다.
kf run-task test-app --command "printenv" --cpu-cores=0.5 --memory-limit=2G --disk-quota=5G
태스크의 커스텀 표시 이름 지정
필요에 따라 --name
플래그를 사용하여 태스크의 커스텀 표시 이름을 지정하면 쉽게 식별/그룹화될 수 있습니다.
$ kf run-task test-app --command "printenv" --name foo
Task test-app-6swct is submitted successfully for execution.
$ kf tasks test-app
Listing Tasks in Space: test space
Name ID DisplayName Age Duration Succeeded Reason
test-app-6swct 3 foo 1m 21s True <nil>
태스크 관리
kf tasks APP_NAME
명령어로 앱의 모든 태스크를 봅니다.
$ kf tasks test-app
Listing Tasks in Space: test space
Name ID DisplayName Age Duration Succeeded Reason
test-app-gd8dv 1 test-app-gd8dv 1m 21s True <nil>
태스크 취소
kf terminate-task
명령어를 사용하여 활성 태스크를 취소합니다.
태스크 이름으로 태스크를 취소합니다.
$ kf terminate-task test-app-6w6mz Task "test-app-6w6mz" is successfully submitted for termination
또는
APP_NAME
+ 태스크 ID로 태스크를 취소합니다.$ kf terminate-task test-app 2 Task "test-app-6w6mz" is successfully submitted for termination
취소된 태스크는 PipelineRunCancelled
상태를 가집니다.
$ kf tasks test-app
Listing Tasks in Space: test space
Name ID DisplayName Age Duration Succeeded Reason
test-app-gd8dv 1 test-app-gd8dv 1m 21s True <nil>
test-app-6w6mz 2 test-app-6w6mz 38s 11s False PipelineRunCancelled
태스크 로그 보기
kf logs APP_NAME --task
명령어를 사용하여 태스크 로그를 봅니다.
$ kf logs test-app --task