- 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/norepsamplehelm.yaml storageClassName: oci-bv storageSize: 10Gi image: repository: container-registry.oracle.com/timesten/timesten tag: "22.1.1.27.0" imagePullSecret: sekret replicationTopology: none replicas: 3 rollingUpdatePartition: 2 dbConfigMap: - name: norepsamplehelm 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
はnone
で、replicas
個のポッドで構成されるレプリケートされない構成を示します。各ポッドには、独立したTimesTenデータベースが含まれています。 -
replicas
の数は3
で、ポッドの数を示します。各ポッドにTimesTenデータベースが含まれています。3
を、プロビジョニングするポッドの数に置き換えます。有効な値は1
から3
の間であり、1
がデフォルトです。 rollingUpdatePartition
は2
です。この変数はアップグレードに固有であり、アップグレードするTimesTenデータベースの数を決定します。Kubernetesは、rollingUpdatePartition
値以上の序数値でポッドをアップグレードします。たとえば、レプリケートされないポッドが3つ(replicas
=3
であり、ポッドはnorepsamplehelm-0
、norepsamplehelm-1
およびnorepsamplehelm-2
)あり、rollingUpdatePartition
を2
に設定した場合、norepsamplehelm-2
ポッドはアップグレードされますが、norepsamplehelm-1
およびnorepsamplehelm-0
ポッドはアップグレードされません。アップグレード・セクションには、rollingUpdatePartition
の動作を示す例があります。アップグレード・プロセス中に値を変更することもできます。
-
- ConfigMapの名前は
norepsamplehelm
です。メタデータ・ファイルの場所は、kube_file/helm/ttclassic
ディレクトリ・ツリー内のcm
ディレクトリにあります。
-
ttclassic
チャートをインストールします。helm install -f customyaml/norepsamplehelm.yaml norepsamplehelm ./ttclassic
次のhelm
install
コマンドを見てみましょう。-
-f
オプションは、YAMLファイルがhelm
install
コマンドに渡されることを示します。 -
カスタマイズを含むYAMLファイルの名前は、
customyaml
ディレクトリにあるnorepsamplehelm.yaml
です。 -
リリースの名前は
norepsamplehelm
です。 -
チャートの名前は
ttclassic
で、これはkube_files/helm/ttclassic
ディレクトリにあります。
helm
install
コマンドの出力を見てみましょう。NAME: norepsamplehelm LAST DEPLOYED: Sun Aug 4 17:42:47 2024 NAMESPACE: default STATUS: deployed REVISION: 1 NOTES: Version 2211270.1.0 of the ttclassic chart has been installed. This release is named "norepsamplehelm". To learn more about the release, try: $ helm status norepsamplehelm $ helm get all norepsamplehelm $ helm history norepsamplehelm To rollback to a previous version of the chart, run: $ helm rollback norepsamplehelm <REVISION> - run 'helm history norepsamplehelm' for a list of revisions.
次の点に注目してください。-
ttclassic
チャートのバージョンは、TimesTenリリース22.1.1.27.0
に対応する2211270.1.0
です。 -
リリース名は
norepsamplehelm
です。 -
リリースのステータスは
deployed
です。
-
- (オプション)リリースを確認します。
helm list
出力は、次のようになります。NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION norepsamplehelm default 1 2024-08-04 17:42:47.180635098 +0000 UTC deployed ttclassic-2211270.1.0 22.1.1.26.0
helm
list
コマンドは、norepsamplehelm
リリースが存在し、ネームスペースにインストールされていることを示します。 - 進捗を監視します。
NAME STATE ACTIVE AGE norepsamplehelm NoReplicasReady N/A 94s
プロビジョニングは開始されますが、
NoReplicasReady
状態で示されるとおり、まだ完了していません。数分間待機します。次に、再度確認します。kubectl get ttc norepsamplehelm
出力は、次のようになります。NAME STATE ACTIVE AGE norepsamplehelm AllReplicasReady N/A 12m
プロビジョニング・プロセスが完了します。データベースは稼働中であり、
AllReplicasReady
状態で示されるとおり、動作しています。 - ConfigMapおよびメタデータ・ファイルが存在することを確認します。
kubectl get configmap norepsamplehelm
出力は、次のようになります。NAME DATA AGE norepsamplehelm 4 15m
メタデータ・ファイルを確認します。
kubectl describe configmap norepsamplehelm
出力は、次のようになります。
Name: norepsamplehelm Namespace: default Labels: app.kubernetes.io/managed-by=Helm Annotations: meta.helm.sh/release-name: norepsamplehelm meta.helm.sh/release-namespace: default Data ==== testUser: ---- sampletestuser/sampletestuserpwd1 adminUser: ---- adminuser/adminuserpwd db.ini: ---- PermSize=200 DatabaseCharacterSet=AL32UTF8 schema.sql: ---- create table adminuser.emp (id number not null primary key, name char (32)); BinaryData ==== Events: <none>
norepsamplehelm
ConfigMapが存在し、メタデータ・ファイルが含まれています。testUser
ファイルが存在するため、Helmを使用してTimesTenをテストできます。「レプリケートされない構成のTimesTenのテスト」を参照してください。 - (オプション)ポッドを確認します。
kubectl get pods
出力は、次のようになります。NAME READY STATUS RESTARTS AGE norepsamplehelm-0 3/3 Running 0 17m norepsamplehelm-1 3/3 Running 0 17m norepsamplehelm-2 3/3 Running 0 17m ...
ネームスペース内で3つのポッドが実行されており、それぞれに独立したTimesTenデータベースが含まれています。
ttclassic
チャートが正常にインストールされました。TimesTenデータベースは稼働中であり、完全に動作しています。