6장. 함수
6.1. OpenShift Serverless Functions 설정
애플리케이션 코드 배포 프로세스를 개선하기 위해 OpenShift Serverless를 사용하여 이벤트 중심 기능을 OpenShift Container Platform에서 Knative 서비스로 배포할 수 있습니다. 함수를 개발하려면 설정 단계를 완료해야 합니다.
6.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를 사용하는 경우 클러스터 관리자가 레지스트리를 공개해야 합니다.
6.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
6.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