第6章 関数
6.1. OpenShift Serverless Functions の設定
アプリケーションコードのデプロイプロセスを改善するために、OpenShift Serverless を使用して、ステートレスでイベント駆動型の関数を Knative サービスとして OpenShift Container Platform にデプロイできます。関数を開発する場合は、セットアップ手順を完了する必要があります。
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 をイメージレジストリーとして使用する場合は、リポジトリーがプライベートではないか確認するか、OpenShift Container Platform ドキュメント Pod が他のセキュアなレジストリーからイメージを参照できるようにする設定 に従っていることを確認する必要があります。
- OpenShift Container レジストリーを使用している場合には、クラスター管理者は レジストリーを公開する 必要があります。
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-machine-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
6.1.4. 次のステップ
- Docker Container Engine または Podman の詳細は、コンテナービルドツールのオプション を参照してください。
- 関数を使い始めるを参照してください。