9장. 클러스터에서 함수 빌드 및 배포
로컬로 함수를 빌드하는 대신 클러스터에서 직접 함수를 빌드할 수 있습니다. 로컬 개발 머신에서 이 워크플로를 사용하는 경우 함수 소스 코드로만 작업하면 됩니다. 예를 들어 docker 또는 podman과 같은 클러스터의 기능 빌드 툴을 설치할 수 없는 경우 유용합니다.
9.1. 클러스터에서 함수 빌드 및 배포 링크 복사링크가 클립보드에 복사되었습니다!
Knative(kn
) CLI를 사용하여 함수 프로젝트 빌드를 시작한 다음 클러스터에 직접 함수를 배포할 수 있습니다. 이러한 방식으로 함수 프로젝트를 빌드하려면 함수 프로젝트의 소스 코드가 클러스터에서 액세스할 수 있는 Git 리포지토리 분기에 있어야 합니다.
사전 요구 사항
- Red Hat OpenShift Pipelines가 클러스터에 설치되어 있어야 합니다.
-
OpenShift CLI(
oc
)가 설치되어 있습니다. -
Knative(
kn
) CLI가 설치되어 있습니다.
프로세스
다음 리소스를 생성합니다.
파이프라인에서 S
2i
Tekton 작업을 생성하여 S2to-Image를 사용할 수 있습니다.oc apply -f https://raw.githubusercontent.com/openshift-knative/kn-plugin-func/serverless-1.29.0/pkg/pipelines/resources/tekton/task/func-s2i/0.1/func-s2i.yaml
$ oc apply -f https://raw.githubusercontent.com/openshift-knative/kn-plugin-func/serverless-1.29.0/pkg/pipelines/resources/tekton/task/func-s2i/0.1/func-s2i.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow kn func
deploy Tekton 작업을 생성하여 파이프라인에 함수를 배포할 수 있습니다.oc apply -f https://raw.githubusercontent.com/openshift-knative/kn-plugin-func/serverless-1.29.0/pkg/pipelines/resources/tekton/task/func-deploy/0.1/func-deploy.yaml
$ oc apply -f https://raw.githubusercontent.com/openshift-knative/kn-plugin-func/serverless-1.29.0/pkg/pipelines/resources/tekton/task/func-deploy/0.1/func-deploy.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
함수를 생성합니다.
kn func create <function_name> -l <runtime>
$ kn func create <function_name> -l <runtime>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 함수의 비즈니스 논리를 구현합니다. 그런 다음 Git을 사용하여 변경 사항을 커밋하고 내보냅니다.
함수를 배포합니다.
kn func deploy --remote
$ kn func deploy --remote
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 함수 구성에서 참조된 컨테이너 레지스트리에 로그인하지 않은 경우 함수 이미지를 호스팅하는 원격 컨테이너 레지스트리에 대한 인증 정보를 제공하라는 메시지가 표시됩니다.
출력 및 프롬프트 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
함수를 업데이트하려면 Git을 사용하여 새 변경 사항을 커밋하고 푸시한 다음
kn func deploy --remote
명령을 다시 실행합니다. 선택 사항: pipelines-as-code를 사용하여 모든 Git 푸시 후 클러스터에 빌드되도록 함수를 구성할 수 있습니다.
기능에 대한 Tekton
Pipelines
및PipelineRuns
구성을 생성합니다.kn func config git set
$ kn func config git set
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 구성 파일을 생성하는 것 외에도 이 명령은 클러스터에 연결하여 파이프라인이 설치되었는지 확인합니다. 토큰을 사용하면 함수 리포지토리에 대한 웹 후크도 사용자를 대신하여 생성합니다. 해당 Webhook는 변경 사항을 리포지토리로 내보낼 때마다 클러스터에서 파이프라인을 트리거합니다.
이 명령을 사용하려면 리포지토리 액세스 권한이 있는 유효한 GitHub 개인 액세스 토큰이 있어야 합니다.
생성된
.tekton/pipeline.yaml
및.tekton/pipeline-run.yaml
파일을 커밋하고 내보냅니다.git add .tekton/pipeline.yaml .tekton/pipeline-run.yaml git commit -m 'Add the Pipelines and PipelineRuns configuration' git push
$ git add .tekton/pipeline.yaml .tekton/pipeline-run.yaml $ git commit -m 'Add the Pipelines and PipelineRuns configuration' $ git push
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 함수를 변경한 후 커밋하고 내보냅니다. 생성된 파이프라인을 사용하여 함수가 자동으로 다시 빌드됩니다.