11.3. 클러스터상의 기능 빌드 및 배포
함수를 로컬로 빌드하는 대신 클러스터에서 직접 함수를 빌드할 수 있습니다. 로컬 개발 머신에서 이 워크플로를 사용하는 경우 함수 소스 코드에서만 작업하면 됩니다. 예를 들어 docker 또는 podman과 같은 클러스터 함수 빌드 툴을 설치할 수 없는 경우 유용합니다.
11.3.1. 클러스터에서 함수 빌드 및 배포
Knative(kn
) CLI를 사용하여 함수 프로젝트 빌드를 시작한 다음 클러스터에 직접 함수를 배포할 수 있습니다. 이러한 방식으로 함수 프로젝트를 빌드하려면 함수 프로젝트의 소스 코드가 클러스터에서 액세스할 수 있는 Git 리포지토리 분기에 있어야 합니다.
OpenShift Serverless Functions는 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 https://access.redhat.com/support/offerings/techpreview/를 참조하십시오.
사전 요구 사항
- Red Hat OpenShift Pipelines가 클러스터에 설치되어 있어야 합니다.
-
OpenShift CLI(
oc
)가 설치되어 있습니다. -
Knative(
kn
) CLI가 설치되어 있습니다.
절차
Pipeline을 실행하고 함수를 배포하려는 각 네임스페이스에서 다음 리소스를 생성해야 합니다.
s2i
Tekton 작업을 생성하여 파이프라인에서 Source-to-Image를 사용할 수 있습니다.$ oc apply -f https://raw.githubusercontent.com/openshift-knative/kn-plugin-func/serverless-1.25.0/pipelines/resources/tekton/task/func-s2i/0.1/func-s2i.yaml
파이프라인에 함수를 배포할 수 있도록
kn func
deploy Tekton 작업을 생성합니다.$ oc apply -f https://raw.githubusercontent.com/openshift-knative/kn-plugin-func/serverless-1.25.0/pipelines/resources/tekton/task/func-deploy/0.1/func-deploy.yaml
함수를 생성합니다.
$ kn func create <function_name> -l <runtime>
-
새 함수 프로젝트를 생성한 후에는 프로젝트를 Git 리포지토리에 추가하고 리포지토리를 클러스터에서 사용할 수 있는지 확인해야 합니다. 이 Git 리포지토리에 대한 정보는 다음 단계에서
func.yaml
파일을 업데이트하는 데 사용됩니다. 함수 프로젝트의
func.yaml
파일에서 Git 리포지토리에 대한 클러스터상의 빌드를 활성화하도록 구성을 업데이트합니다.... git: url: <git_repository_url> 1 revision: main 2 contextDir: <directory_path> 3 ...
- 함수의 비즈니스 로직을 구현합니다. 그런 다음 Git을 사용하여 변경 사항을 커밋하고 내보냅니다.
함수를 배포합니다.
$ kn func deploy --remote
함수 구성에서 참조되는 컨테이너 레지스트리에 로그인하지 않은 경우 함수 이미지를 호스팅하는 원격 컨테이너 레지스트리에 대한 인증 정보를 제공하라는 메시지가 표시됩니다.
출력 및 프롬프트 예
🕕 Creating Pipeline resources Please provide credentials for image registry used by Pipeline. ? Server: https://index.docker.io/v1/ ? Username: my-repo ? Password: ******** Function deployed at URL: http://test-function.default.svc.cluster.local
-
함수를 업데이트하려면 Git을 사용하여 새 변경 사항을 커밋하고 푸시한 다음
kn func deploy --remote
명령을 다시 실행합니다.