- Kubernetesオペレータ・ユーザーズ・ガイド
- TimesTen Kubernetesオペレータ環境でのHelmの使用
- TimesTenデータベースの作成およびTimesTenのテスト
- レプリケートされたTimesTenデータベースの作成
レプリケートされたTimesTenデータベースの作成
この例では、ttclassic
Helmチャートを使用して、レプリケートされたTimesTen Classicデータベースを作成する方法を示します。この例では、YAMLマニフェスト・ファイルを使用し、ファイル用にkube_files/helm/customyaml
ディレクトリが作成されていることを前提としています。
- 開発ホストで、
helm
ディレクトリに変更します。cd kube_files/helm
- レプリケートされた構成の変数を定義する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
次の点に注目してください。-
storageClassName
はoci-bv
です。oci-bv
を記憶域クラスの名前に置き換えます。 -
storageSize
は10Gi
です。10Gi
を、各ポッドがTimesTenを保持するためにリクエストする必要がある記憶域の量に置き換えます。 -
image
変数の場合:-
repository
:repository
はcontainer-registry.oracle.com/timesten/timesten
です。
を、TimesTenコンテナ・イメージの名前と場所に置き換えます。container-registry.oracle.com/timesten/timesten
-
tag
: タグは22.1.1.27.0
です。tag
をTimesTenリリースのタグに置き換えます。
-
-
imagePullSecret
はsekret
です。sekret
を、KubernetesがTimesTenコンテナ・イメージをフェッチするために使用するイメージ・プル・シークレットに置き換えます。 replicationTopology
はactiveStandbyPair
で、TimesTenデータベースのアクティブ・スタンバイ・ペアで構成されるレプリケートされた構成を示します。- ConfigMapの名前は
repsamplehelm
です。メタデータ・ファイルの場所は、kube_file/helm/ttclassic
ディレクトリ・ツリー内のcm
ディレクトリにあります。
-
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
です。
-
- (オプション)リリースを確認します。
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
リリースが存在し、ネームスペースにインストールされていることを示します。 - 進捗を監視します。
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
状態で示されるとおり、稼働中であり、動作しています。 - 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のテスト」を参照してください。 - (オプション)ポッドを確認します。
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データベースのアクティブ・スタンバイ・ペアは稼働中であり、完全に動作しています。