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를 구성해야 합니다.

절차

  1. ${XDG_RUNTIME_DIR}/podman/podman.sock의 UNIX 소켓에서 Docker API를 제공하는 podman 서비스를 시작합니다.

    $ systemctl start --user podman.socket
    참고

    대부분의 시스템에서 이 소켓은 /run/user/$(id -u)/podman/podman.sock에 있습니다.

  2. 기능을 구축하는 데 사용되는 환경 변수를 설정합니다.

    $ export DOCKER_HOST="unix://${XDG_RUNTIME_DIR}/podman/podman.sock"
  3. 자세한 출력을 보려면 -v 플래그를 사용하여 함수 프로젝트 디렉터리 내에서 build 명령을 실행합니다. 로컬 UNIX 소켓에 대한 연결이 표시됩니다.

    $ kn func build -v

11.1.3. macOS에서 podman 설정

고급 컨테이너 관리 기능을 사용하려면 OpenShift Serverless Functions에서 podman을 사용할 수 있습니다. macOS에서 이를 수행하려면 podman 머신을 시작하고 Knative(kn) CLI를 구성하여 연결합니다.

절차

  1. podman 시스템을 생성합니다.

    $ podman machine init --memory=8192 --cpus=2 --disk-size=20
  2. 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 에 있습니다.

  3. 기능을 구축하는 데 사용되는 환경 변수를 설정합니다.

    $ export DOCKER_HOST='unix:///Users/myuser/.local/share/containers/podman/machine/podman-machine-default/podman.sock'
  4. 자세한 출력을 보려면 -v 플래그를 사용하여 함수 프로젝트 디렉터리 내에서 build 명령을 실행합니다. 로컬 UNIX 소켓에 대한 연결이 표시됩니다.

    $ kn func build -v

11.1.4. 다음 단계