4.3. 配信のための永続ボリューム要求
Serverless アプリケーションの中には、永続的なデータストレージを必要とするものもあります。さまざまなボリュームタイプを設定することで、Knative サービスにデータストレージを提供できます。Serving は、secret
、configMap
、projected
、emptyDir
などのボリュームタイプのマウントをサポートしています。
Knative サービスの永続ボリューム要求 (PVC) を設定できます。永続ボリュームタイプはプラグインとして実装されます。使用可能な永続ボリュームタイプがあるかどうかを確認するには、クラスター内で使用可能なストレージクラスまたはインストールされているストレージクラスを確認します。永続ボリュームはサポートされていますが、機能フラグを有効にする必要があります。
大量のボリュームをマウントすると、アプリケーションの起動時間が大幅に遅れる可能性があります。
4.3.1. PVC サポートの有効化
手順
Knative Serving が PVC を使用して書き込むことができるようにするには、
KnativeServing
カスタムリソース (CR) を変更して次の YAML を含めます。書き込みアクセスで PVC を有効にする
... spec: config: features: "kubernetes.podspec-persistent-volume-claim": enabled "kubernetes.podspec-persistent-volume-write": enabled ...
-
kubernetes.podspec-persistent-volume-claim
拡張機能は、永続ボリューム (PV) を Knative Serving で使用できるかどうかを制御します。 -
kubernetes.podspec-persistent-volume-write
拡張機能は、書き込みアクセスで Knative Serving が PV を利用できるかどうかを制御します。
-
PV を要求するには、PV 設定を含めるようにサービスを変更します。たとえば、次の設定で永続的なボリュームクレームがある場合があります。
注記要求しているアクセスモードをサポートするストレージクラスを使用してください。たとえば、
ReadWriteMany
アクセスモードのocs-storagecluster-cephfs
ストレージクラスを使用できます。ocs-storagecluster-cephfs
ストレージクラスがサポートされており、Red Hat OpenShift Data Foundation から提供されています。PersistentVolumeClaim 設定
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: example-pv-claim namespace: my-ns spec: accessModes: - ReadWriteMany storageClassName: ocs-storagecluster-cephfs resources: requests: storage: 1Gi
この場合、書き込みアクセス権を持つ PV を要求するには、次のようにサービスを変更します。
ネイティブサービス PVC 設定
apiVersion: serving.knative.dev/v1 kind: Service metadata: namespace: my-ns ... spec: template: spec: containers: ... volumeMounts: 1 - mountPath: /data name: mydata readOnly: false volumes: - name: mydata persistentVolumeClaim: 2 claimName: example-pv-claim readOnly: false 3
注記Knative サービスで永続ストレージを正常に使用するには、Knative コンテナーユーザーのユーザー権限などの追加の設定が必要です。