レプリケートされたTimesTenデータベースの作成

この例では、ttclassic Helmチャートを使用して、レプリケートされたTimesTen Classicデータベースを作成する方法を示します。この例では、YAMLマニフェスト・ファイルを使用し、ファイル用にkube_files/helm/customyamlディレクトリが作成されていることを前提としています。

  1. 開発ホストで、helmディレクトリに変更します。
    cd kube_files/helm
  2. レプリケートされた構成の変数を定義するYAMLファイルを作成します。
    vi customyaml/repsamplehelm.yaml
    
    storageClassName: oci-bv
    storageSize: 10Gi
    image:
      repository: container-registry.oracle.com/timesten/timesten
      tag: "22.1.1.27.0"
    imagePullSecret: sekret
    replicationTopology: activeStandbyPair
    dbConfigMap:
      - name: repsamplehelm
      directory: cm
    次の点に注目してください。
    • storageClassNameoci-bvです。oci-bvを記憶域クラスの名前に置き換えます。

    • storageSize10Giです。10Giを、各ポッドがTimesTenを保持するためにリクエストする必要がある記憶域の量に置き換えます。

    • image変数の場合:
      • repository: repositorycontainer-registry.oracle.com/timesten/timestenです。container-registry.oracle.com/timesten/timestenを、TimesTenコンテナ・イメージの名前と場所に置き換えます。

      • tag: タグは22.1.1.27.0です。tagをTimesTenリリースのタグに置き換えます。

    • imagePullSecretsekretです。sekretを、KubernetesがTimesTenコンテナ・イメージをフェッチするために使用するイメージ・プル・シークレットに置き換えます。

    • replicationTopologyactiveStandbyPairで、TimesTenデータベースのアクティブ・スタンバイ・ペアで構成されるレプリケートされた構成を示します。
    • ConfigMapの名前はrepsamplehelmです。メタデータ・ファイルの場所は、kube_file/helm/ttclassicディレクトリ・ツリー内のcmディレクトリにあります。
  3. ttclassicチャートをインストールします。
    helm install -f customyaml/repsamplehelm.yaml repsamplehelm ./ttclassic
    次のhelm installコマンドを見てみましょう。
    • -fオプションは、YAMLファイルがhelm installコマンドに渡されることを示します。

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

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

    • チャートの名前はttclassicで、これはkube_files/helm/ttclassicディレクトリにあります。

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

    NAME: repsamplehelm
    LAST DEPLOYED: Sun Aug  4 14:58:40 2024
    NAMESPACE: default
    STATUS: deployed
    REVISION: 1
    NOTES:
    Version 2211270.1.0 of the ttclassic chart has been installed.
    
    This release is named "repsamplehelm".
    
    To learn more about the release, try:
    
      $ helm status repsamplehelm
      $ helm get all repsamplehelm
      $ helm history repsamplehelm
    
    To rollback to a previous version of the chart, run:
    
      $ helm rollback repsamplehelm <REVISION>
        - run 'helm history repsamplehelm' for a list of revisions.
    
    次の点に注目してください。
    • ttclassicチャートのバージョンは、TimesTenリリース22.1.1.27.0に対応する2211270.1.0です。

    • リリース名はrepsamplehelmです。

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

  4. (オプション)リリースを確認します。
    helm list
    出力は、次のようになります。
    NAME            NAMESPACE       REVISION        UPDATED                                 STATUS          CHART                   APP VERSION
    repsamplehelm   default         1               2024-08-04 14:58:40.109402333 +0000 UTC deployed        ttclassic-2211270.1.0   22.1.1.27.0
    ...

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

  5. 進捗を監視します。
    kubectl get ttc repsamplehelm
    出力は、次のようになります。
    NAME            STATE          ACTIVE   AGE
    repsamplehelm   Initializing   None     44s

    プロビジョニングは開始されますが、Initializing状態で示されるとおり、まだ完了していません。

    数分間待機します。次に、再度確認します。
    kubectl get ttc repsamplehelm
    出力は、次のようになります。
    NAME            STATE    ACTIVE            AGE
    repsamplehelm   Normal   repsamplehelm-0   4m23s

    プロビジョニング・プロセスが完了します。TimesTenデータベースのアクティブ・スタンバイ・ペアはNormal状態で示されるとおり、稼働中であり、動作しています。

  6. ConfigMapおよびメタデータ・ファイルが存在することを確認します。
    kubectl get configmap repsamplehelm
    出力は、次のようになります。
    NAME            DATA   AGE
    repsamplehelm   4      8m50s

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

    kubectl describe configmap repsamplehelm

    出力は、次のようになります。

    Name:         repsamplehelm
    Namespace:    default
    Labels:       app.kubernetes.io/managed-by=Helm
    Annotations:  meta.helm.sh/release-name: repsamplehelm
                  meta.helm.sh/release-namespace: default
    
    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>

    repsamplehelm ConfigMapが存在し、メタデータ・ファイルが含まれています。testUserファイルが存在するため、Helmを使用してTimesTenをテストできます。「レプリケートされた構成のTimesTenのテスト」を参照してください。

  7. (オプション)ポッドを確認します。
    kubectl get pods
    出力は、次のようになります。
    NAME                              READY   STATUS    RESTARTS   AGE
    repsamplehelm-0                   3/3     Running   0          11m
    repsamplehelm-1                   2/3     Running   0          11m
    ...

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

おめでとうございます。レプリケートされた構成のttclassicチャートが正常にインストールされました。TimesTen Classicデータベースのアクティブ・スタンバイ・ペアは稼働中であり、完全に動作しています。