TimesTenデータベースのインストール

ttclassicチャートには、ネームスペースにTimesTen Classicデータベースのアクティブ・スタンバイ・ペアをデプロイするために必要なすべての情報が含まれます。このチャートには、TimesTenをデプロイするためのデフォルト構成が含まれます。チャートを好みの構成に合わせてカスタマイズすることもできます。具体的には、TimesTenオペレータには、構成ニーズにあわせて値を変更できる複数の変数が用意されています。これらの変数の詳細は、「ttclassicチャート」を参照してください。

環境をカスタマイズする場合は、次の点を考慮してください。
  • メタデータ・ファイルをTimesTenコンテナの/ttconfigディレクトリに配置するために使用する方法。Kubernetes ConfigMapsまたはシークレットを使用している場合:
    • これらを作成する必要はありません。ttclassicチャートのインストールでは、ConfigMapsおよびシークレットが生成されます。

    • ttclassicチャートのhelm/ttclassicディレクトリ・ツリーにディレクトリを作成する必要があります。すべてのメタデータ・ファイルをこのディレクトリに配置します。このディレクトリ内のすべてのファイルが、生成されたConfigMapまたはシークレットに追加されます。

    • カスタマイズしたYAMLマニフェスト・ファイルで、dbConfigMap変数(ConfigMapを使用している場合)またはdbSecret変数(シークレットを使用している場合)を指定する必要があります。これらの変数の詳細は、「ttclassicチャート」を参照してください。

    この項の例は、メタデータ・ファイルにConfigMapを使用する方法を示しています。ConfigMapsまたはシークレットの使用の詳細は、「/ttconfigディレクトリの移入」を参照してください。

  • helm testを使用してTimesTenをテストする場合:

    • testユーザーを定義する必要があります。テストでは、このユーザーとしてTimesTenデータベースに接続します。

    • TimesTenオペレータは、testUserというメタデータ・ファイルを提供します。このメタデータ・ファイルを使用して、testユーザーを定義します。このファイルには、次の形式の1行が含まれている必要があります。
      testuser/testuserpassword

      ここで、testuserはテスト・ユーザーの名前、testuserpasswordはこのテスト・ユーザーのパスワードです。

    Helmを使用したTimesTenのテストの詳細は、「TimesTenのテスト」を参照してください。

カスタマイズする変数を決定したら、次の2つのオプションがあります。
  • 環境の構成に使用する変数を定義するYAMLファイルを作成します。次に、チャートをインストールするには、-fオプションを指定して、このYAMLファイルをhelm installコマンドに渡します。

  • --setオプションを指定してhelm installコマンドを実行し、コマンド・ラインで変数を指定します。

これらのオプションの詳細は、https://helm.sh/docs/intro/using_helm/を参照してください。

この項の例では、YAMLファイルを使用します。

TimesTen Classicデータベースのアクティブ・スタンバイ・ペアをデプロイするttclassicチャートのインストール方法を示す例を順を追って説明します。この例では、次を実行します。
  • メタデータ・ファイルのディレクトリを作成します。この例では、ttclassicチャートのインストールにより、このディレクトリ内のファイルからConfigMapが生成されます。

  • testUserメタデータ・ファイルを作成します。このファイルは、testユーザーを定義します。このユーザーは、Helmを使用してTimesTenをテストするために定義する必要があります。

  • 次のttclassicチャートの変数を変更します。
    • imagePullSecret: sekretが、リポジトリからイメージをプルするために使用されるシークレットの名前であるとします。したがって、imagePullSecret変数にsekretを指定します。

    • コンテナ・イメージ: container-registry.oracle.com/timestenでコンテナ・イメージを使用するのではなく、「オプション2: TimesTenコンテナ・イメージを作成する」の説明に従って、独自のコンテナ・イメージを構築するとします。構築して使用するコンテナ・イメージの名前がphx.ocir.io/youraccount/tt2211190image:1であるとします。このコンテナ・イメージに基づいて、次の変数を変更します。
      • repository: repository変数の場合は、phx.ocir.io/youraccount/tt2211190imageの値を指定します。

      • tag: tag変数の場合は、1の値を指定します。

    • storageClassName: ストレージ・クラス名にoci-bvを指定します。この変数にはデフォルトがないため、指定する必要があります。

    • storageSize: デフォルト値の50Giを使用するのではなく、ストレージ・サイズに10Giの値を指定します。
    • dbConfigMap: メタデータ・ファイルにConfigMapを使用しているため、dbConfigMap変数を指定する必要があります。この変数では、ConfigMapの名前と、メタデータ・ファイルが配置されているディレクトリを指定する必要があります。この変数の使用については、この例の後半で説明します。

また、カスタマイズしたYAMLファイルのkube_files/helm/customyamlディレクトリを作成したとします。

  1. 開発ホストで、helmディレクトリに変更します。helmディレクトリの詳細は、「環境の設定」を参照してください。
    cd kube_files/helm
  2. メタデータ・ファイルのディレクトリを作成します。ディレクトリは、/ttclassicチャートのディレクトリ・ツリーに作成する必要があります。
    mkdir -p ttclassic/cm

    cmディレクトリは、メタデータ・ファイルを含むディレクトリです。ttclassicチャートをインストールすると、ConfigMapが作成され、ディレクトリにあるメタデータ・ファイルが格納されます。この例には、後述するステップがあります。

  3. testUserメタデータ・ファイルを作成します。
    vi ttclassic/cm/testUser
    
    sampletestuser/sampletestuserpwd1
    この例では、sampletestuserは、helm testコマンドを使用してTimesTenをテストするために使用されるtestユーザーの名前です。sampletestuserのパスワードはsampletestuserpwd1です。「TimesTenのテスト」を参照してください。
  4. (オプション)必要に応じて追加のメタデータ・ファイルを作成します。
    vi ttclassic/cm/adminUser
    
    adminuser/adminuserpwd
    vi ttclassic/cm/db.ini
    
    PermSize=200
    DatabaseCharacterSet=AL32UTF8
    vi ttclassic/cm/schema.sql
    
    create table adminuser.emp (id number not null primary key, name char (32));

    cmディレクトリには、testUseradminUserdb.iniおよびschema.sqlメタデータ・ファイルが含まれます。ConfigMapは、これらのメタデータ・ファイルをTimesTenコンテナの/ttconfigディレクトリに配置するために使用される機能です。メタデータ・ファイルおよびConfigMapの使用の詳細は、「構成メタデータの詳細について」および「/ttconfigディレクトリの移入」を参照してください。

  5. 構成の変数を定義するYAMLファイルを作成します。
    vi customyaml/samplettc.yaml
    
    storageClassName: oci-bv
    storageSize: 10Gi
    image:
      repository: phx.ocir.io/youraccount/tt2211190image
      tag: "1"
      pullPolicy: Always
    imagePullSecret: sekret
    dbConfigMap:
      - name: samplettc
        directory: cm
    カスタマイズは次のとおりです。
    • ストレージ・クラス名はoci-bvです。

    • 記憶域サイズは10Giです。

    • 構築して使用するコンテナ・イメージはphx.ocir.io/youraccount/tt2211190image:1であるため、repository変数の値はphx.ocir.io/youraccount/tt2211190imageで、tag変数の値は1です。

    • イメージ・プル・シークレットはsekretです。

    • Kubernetes ConfigMapの名前はsamplettcです。メタデータ・ファイルの場所はcmディレクトリです。このディレクトリは、kube_files/helm/ttclassicディレクトリ・ツリー内にあります。

  6. TimesTenデータベースのアクティブ・スタンバイ・ペアをデプロイするには、ttclassicチャートをインストールします。
    helm install -f customyaml/samplettc.yaml samplettc ./ttclassic
    次のhelm installコマンドを見てみましょう。
    • -fオプションは、カスタマイズされたYAMLファイルをhelm installコマンドに渡すために使用します。

    • カスタマイズを含むファイルの名前は、customyamlディレクトリにあるsamplettc.yamlです。

    • リリースの名前はsamplettcです。

    • TimesTenオペレータをインストールするチャートの名前は、helm/ttclassicディレクトリにあるttclassicです。

    helm installコマンドの出力を見てみましょう。

    NAME: samplettc
    LAST DEPLOYED: Mon Oct 23 23:18:03 2023
    NAMESPACE: mynamespace
    STATUS: deployed
    REVISION: 1
    NOTES:
    Version 2211190.1.0 of the ttclassic chart has been installed.
    
    This release is named "samplettc".
    
    To learn more about the release, try:
    
      $ helm status samplettc
      $ helm get all samplettc
      $ helm history samplettc
    
    To rollback to a previous version of the chart, run:
    
      $ helm rollback samplettc <REVISION>
        - run 'helm history samplettc' for a list of revisions.
    次の点に注目してください。
    • ttclassicチャートのバージョンは、22.1.1.19.0 TimesTenリリースに対応する2211190.1.0です。

    • リリース名はsamplettcです。

    • リリースのステータスはdeployedです。

  7. (オプション)リリースを確認します。
    helm list
    出力。
    NAME            NAMESPACE       REVISION        UPDATED                                 STATUS          CHART                   APP VERSION
    samplettc       mynamespace     1               2023-10-23 23:18:03.740512897 +0000 UTC deployed        ttclassic-2211190.1.0   22.1.1.19.0
    samplettop      mynamespace     1               2023-10-23 23:04:40.492890589 +0000 UTC deployed        ttoperator-2211190.1.0  22.1.1.19.0
    ttcrd           mynamespace     1               2023-10-17 22:00:53.530832896 +0000 UTC deployed        ttcrd-2211190.1.0       22.1.1.19.0

    helm listコマンドは、samplettcリリースが存在し、ネームスペースにインストールされていることを示します。

  8. 数分待ってから、TimesTenClassicオブジェクトがネームスペースにデプロイされ、Normal状態であることを確認します。
    kubectl get ttc samplettc

    出力。

    NAME        STATE    ACTIVE        AGE
    samplettc   Normal   samplettc-0   114s

    samplettc TimesTenClassicオブジェクトはデプロイされており、Normal状態です。

  9. ConfigMapが作成されており、メタデータ・ファイルがConfigMapにあることを確認します。
    kubectl get configmap samplettc

    出力。

    NAME        DATA   AGE
    samplettc   4      2m17s

    メタデータ・ファイルを確認します。

    kubectl describe configmap samplettc

    出力。

    Name:         samplettc
    Namespace:    mynamespace
    Labels:       app.kubernetes.io/managed-by=Helm
    Annotations:  meta.helm.sh/release-name: samplettc
                  meta.helm.sh/release-namespace: mynamespace
    
    Data
    ====
    adminUser:
    ----
    adminuser/adminuserpwd
    
    db.ini:
    ----
    PermSize=200
    DatabaseCharacterSet=AL32UTF8
    
    schema.sql:
    ----
    create table adminuser.emp (id number not null primary key, name char (32));
    
    testUser:
    ----
    sampletestuser/sampletestuserpwd1
    
    
    BinaryData
    ====
    
    Events:  <none>

    samplettc ConfigMapが作成されており、メタデータ・ファイルがConfigMapに含まれています。testUserが定義されているため、Helmを使用してTimesTenをテストできます。「TimesTenのテスト」を参照してください。

  10. (オプション)アクティブ・ポッドとスタンバイ・ポッドが実行中であることを確認します。
    kubectl get pods

    出力。

    NAME                                  READY   STATUS    RESTARTS   AGE
    samplettc-0                           3/3     Running   0          2m51s
    samplettc-1                           3/3     Running   0          2m41s
    timesten-operator-65ddf9cfbb-jkqbn    1/1     Running   0          12m

    samplettc-0およびsamplettc-1ポッドはネームスペースで実行されています。

おめでとうございます。ttclassicチャートが正常にインストールされました。TimesTen Classicデータベースのアクティブ・スタンバイ・ペアがネームスペースにデプロイされています。アクティブ・データベースとスタンバイ・データベースの両方が稼働しています。