11장. 함수
11.1. OpenShift Serverless Functions 설정
OpenShift Serverless Functions는 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 https://access.redhat.com/support/offerings/techpreview/를 참조하십시오.
애플리케이션 코드 배포 프로세스를 개선하기 위해 OpenShift Serverless를 사용하여 이벤트 중심 기능을 OpenShift Container Platform에서 Knative 서비스로 배포할 수 있습니다. 함수를 개발하려면 설정 단계를 완료해야 합니다.
11.1.1. 사전 요구 사항
클러스터에서 OpenShift Serverless Functions을 사용하려면 다음 단계를 완료해야 합니다.
OpenShift Serverless Operator 및 Knative Serving이 클러스터에 설치되어 있습니다.
참고함수는 Knative 서비스로 배포됩니다. 함수와 함께 이벤트 중심 아키텍처를 사용하려면 Knative Eventing도 설치해야 합니다.
-
oc
CLI 가 설치되어 있어야 합니다. -
Knative(
kn
) CLI 가 설치되어 있습니다. Knative CLI를 설치하면 함수를 생성하고 관리하는 데 사용할 수 있는kn func
명령을 사용할 수 있습니다. - Docker Container Engine 또는 podman 버전 3.4.7 이상을 설치하고 OpenShift Container Registry와 같이 사용 가능한 이미지 레지스트리에 액세스할 수 있습니다.
- Quay.io를 이미지 레지스트리로 사용하는 경우 리포지토리가 비공개가 아닌지 확인하거나 pod가 다른 보안 레지스트리의 이미지를 참조하도록 허용하는 OpenShift Container Platform 설명서를 따라야 합니다.
- OpenShift Container Registry를 사용하는 경우 클러스터 관리자가 레지스트리를 공개해야 합니다.
11.1.2. podman 설정
고급 컨테이너 관리 기능을 사용하려면 OpenShift Serverless Functions에서 podman을 사용할 수 있습니다. 이렇게 하려면 podman 서비스를 시작하고 해당 서비스에 연결하도록 Knative(kn
) CLI를 구성해야 합니다.
절차
${XDG_RUNTIME_DIR}/podman/podman.sock
의 UNIX 소켓에서 Docker API를 제공하는 podman 서비스를 시작합니다.$ systemctl start --user podman.socket
참고대부분의 시스템에서 이 소켓은
/run/user/$(id -u)/podman/podman.sock
에 있습니다.기능을 구축하는 데 사용되는 환경 변수를 설정합니다.
$ export DOCKER_HOST="unix://${XDG_RUNTIME_DIR}/podman/podman.sock"
자세한 출력을 보려면
-v
플래그를 사용하여 함수 프로젝트 디렉터리 내에서 build 명령을 실행합니다. 로컬 UNIX 소켓에 대한 연결이 표시됩니다.$ kn func build -v
11.1.3. macOS에서 podman 설정
고급 컨테이너 관리 기능을 사용하려면 OpenShift Serverless Functions에서 podman을 사용할 수 있습니다. macOS에서 이를 수행하려면 podman 머신을 시작하고 Knative(kn
) CLI를 구성하여 연결합니다.
절차
podman 시스템을 생성합니다.
$ podman machine init --memory=8192 --cpus=2 --disk-size=20
UNIX 소켓에서 Docker API를 제공하는 podman 시스템을 시작합니다.
$ podman machine start Starting machine "podman-machine-default" Waiting for VM ... Mounting volume... /Users/myuser:/Users/user [...truncated output...] You can still connect Docker API clients by setting DOCKER_HOST using the following command in your terminal session: export DOCKER_HOST='unix:///Users/myuser/.local/share/containers/podman/machine/podman-machine-default/podman.sock' Machine "podman-machine-default" started successfully
참고대부분의 macOS 시스템에서 이 소켓은
/Users/myuser/.local/share/containers/podman/machine/podman-default/podman.sock
에 있습니다.기능을 구축하는 데 사용되는 환경 변수를 설정합니다.
$ export DOCKER_HOST='unix:///Users/myuser/.local/share/containers/podman/machine/podman-machine-default/podman.sock'
자세한 출력을 보려면
-v
플래그를 사용하여 함수 프로젝트 디렉터리 내에서 build 명령을 실행합니다. 로컬 UNIX 소켓에 대한 연결이 표시됩니다.$ kn func build -v
11.1.4. 다음 단계
- Docker Container Engine 또는 podman에 대한 자세한 내용은 컨테이너 빌드 툴 옵션을 참조하십시오.
- 함수 시작하기를 참조하십시오.