第20章 Data Grid へのカスタムコードのデプロイ


スクリプトやイベントリスナーなどのカスタムコードを Data Grid クラスターに追加します。

カスタムコードを Data Grid クラスターにデプロイする前に、これを利用可能にする必要があります。これを行うには、永続ボリューム (PV) からアーティファクトをコピーするか、HTTP または FTP サーバーからアーティファクトをダウンロードします。あるいは、両方の方法を使用することができます。

20.1. Data Grid クラスターへのコードアーティファクトのコピー

アーティファクトを永続ボリューム (PV) に追加してから、これらを Data Grid Pod にコピーします。

この手順では、以下を実行する永続ボリューム要求 (PVC) をマウントする一時的な Pod を使用する方法を説明します。

  • コードのアーティファクトを PV に追加できます (書き込み操作を実行します)。
  • Data Grid Pod が PV からコードアーティファクトをロードできるようにします (読み取り操作を実行します)。

これらの読み取りおよび書き込み操作を実行するには、特定の PV アクセスモードが必要です。ただし、さまざまな PVC アクセスモードのサポートはプラットフォームに依存します。

さまざまなプラットフォームで PVC を作成する方法については、このドキュメントでは扱いません。分かりやすくするため、以下の手順では ReadWriteMany アクセスモードの PVC を示しています。

場合によっては、ReadOnlyMany または ReadWriteOnce アクセスモードのみを使用できます。同じ spec.volumeName の PVC を回収し、再利用することで、これらのアクセスモードの組み合わせを使用できます。

注記

ReadWriteOnce アクセスモードを使用すると、クラスター内のすべての Data Grid Pod が同じ OpenShift ノードにスケジュールされます。

手順

  1. Data Grid クラスターの namespace に変更します。

    oc project rhdg-namespace
  2. 以下のように、カスタムコードアーティファクトの PVC を作成します。

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: datagrid-libs
    spec:
      accessModes:
        - ReadWriteMany
      resources:
        requests:
          storage: 100Mi
  3. PVC を適用します。

    oc apply -f datagrid-libs.yaml
  4. 以下のように、PVC をマウントする Pod を作成します。

    apiVersion: v1
    kind: Pod
    metadata:
      name: datagrid-libs-pod
    spec:
      securityContext:
        fsGroup: 2000
      volumes:
        - name: lib-pv-storage
          persistentVolumeClaim:
            claimName: datagrid-libs
      containers:
        - name: lib-pv-container
          image: registry.redhat.io/datagrid/datagrid-8-rhel8:8.5
          volumeMounts:
            - mountPath: /tmp/libs
              name: lib-pv-storage
  5. Pod を Data Grid namespace に追加し、準備ができるまで待機します。

    oc apply -f datagrid-libs-pod.yaml
    oc wait --for=condition=ready --timeout=2m pod/datagrid-libs-pod
  6. コードのアーティファクトを Pod にコピーし、それらが PVC に読み込まれるようにします。

    たとえば、ローカルの libs ディレクトリーからコードアーティファクトをコピーするには、以下を実行します。

    oc cp --no-preserve=true libs datagrid-libs-pod:/tmp/
  7. Pod を削除します。

    oc delete pod datagrid-libs-pod

    永続ボリュームを Infinispan CR の spec.dependencies.volumeClaimName で指定してから、変更を適用します。

    apiVersion: infinispan.org/v1
    kind: Infinispan
    metadata:
      name: infinispan
    spec:
      replicas: 2
      dependencies:
        volumeClaimName: datagrid-libs
      service:
        type: DataGrid
注記

永続ボリュームでカスタムコードを更新する場合は、変更を読み込むことができるように、Data Grid クラスターを再起動する必要があります。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.