- Kubernetesオペレータ・ユーザーズ・ガイド
- TimesTen Classicデータベースの作成
- レプリケートされないTimesTen Classicデータベースの作成
レプリケートされないTimesTen Classicデータベースの作成
- TimesTenClassicオブジェクトのYAMLマニフェスト・ファイルを作成します。
vi norepsample.yaml apiVersion: timesten.oracle.com/v3 kind: TimesTenClassic metadata: name: norepsample spec: ttspec: storageClassName: oci-bv storageSize: 10Gi image: container-registry.oracle.com/timesten/timesten:22.1.1.30.0 imagePullSecret: sekret replicationTopology: none replicas: 3 dbConfigMap: - norepsample
次の点に注目してください。-
storageClassName
はoci-bv
です。oci-bv
を記憶域クラスの名前に置き換えます。 -
storageSize
は10Gi
です。10Gi
を、各ポッドがTimesTenを保持するためにリクエストする必要がある記憶域の量に置き換えます。 -
image
はcontainer-registry.oracle.com/timesten/timesten:22.1.1.30.0
です。image
をTimesTenコンテナ・イメージの名前および場所に置き換えます。 -
imagePullSecret
はsekret
です。sekret
を、KubernetesがTimesTenコンテナ・イメージをフェッチするために使用するイメージ・プル・シークレットに置き換えます。 replicationTopology
はnone
です。レプリケートされない構成の場合、この設定は変更しないでください。replicas
値は3
です。3
を、プロビジョニングするTimesTenポッドの数(それぞれTimesTenデータベースを含む)に置き換えます。この値は、1
と3
の間である必要があります。replicas
を省略した場合、デフォルトは1
です。dbConfigMap
は、「例について」で作成したnorepsample
ConfigMapを指定します。
-
- TimesTenClassicオブジェクトをネームスペースにデプロイします。
kubectl create -f norepsample.yaml
出力は次のようになります。timestenclassic.timesten.oracle.com/norepsample created
- デプロイメントを監視します。
- オブジェクトのステータスを確認します。
kubectl get ttc norepsample
出力は、次のようになります。
NAME STATE ACTIVE AGE norepsample NoReplicasReady N/A 43s
プロビジョニングは開始されますが、
NoReplicasReady
状態で示されているとおり、完了していません。 - 数分間待機します。次に、ステータスを再度確認します。
kubectl get ttc norepsample
出力は、次のようになります。
NAME STATE ACTIVE AGE norepsample SomeReplicasReady N/A 74s
プロビジョニングが続行されます。
SomeReplicasReady
状態からわかるように、一部のデータベースは準備完了していますが、すべてが完了しているわけではありません。 - ステータスを再度確認します。
kubectl get ttc norepsample
出力は、次のようになります。NAME STATE ACTIVE AGE norepsample AllReplicasReady N/A 2m54s
プロビジョニング・プロセスが完了します。データベースは稼働中であり、動作しています。TimesTenオペレータにより、
norepsample
オブジェクトがAllReplicasReady
状態に遷移します。
- オブジェクトのステータスを確認します。
- (オプション)状態遷移を確認します。
kubectl get events
出力は、次のようになります。
LAST SEEN TYPE REASON OBJECT MESSAGE ... 6m6s Normal Create timestenclassic/norepsample Service norepsample created 6m6s Warning Warning timestenclassic/norepsample Database CPU limit/request not specified 6m6s Normal Create timestenclassic/norepsample StatefulSet norepsample created 6m6s Warning Create timestenclassic/norepsample PodMonitor norepsample created 6m6s Normal StateChange timestenclassic/norepsample TimesTenClassic was Initializing, now NoReplicasReady 5m10s Normal Info timestenclassic/norepsample Pod norepsample-0 Agent Up 5m10s Normal Info timestenclassic/norepsample Pod norepsample-0 Release 22.1.1.30.0 5m10s Normal Info timestenclassic/norepsample Pod norepsample-0 Instance Exists 5m10s Normal Info timestenclassic/norepsample Pod norepsample-0 Daemon Down 5m9s Normal Info timestenclassic/norepsample Pod norepsample-0 Daemon Up 5m9s Normal Info timestenclassic/norepsample Pod norepsample-0 Database None 4m59s Normal Info timestenclassic/norepsample Pod norepsample-0 Database Loaded 4m58s Normal Info timestenclassic/norepsample Pod norepsample-0 Database Updatable 4m58s Normal Info timestenclassic/norepsample Pod norepsample-0 RepAgent Not Running 4m58s Normal StateChange timestenclassic/norepsample Pod norepsample-0 is Ready 4m58s Normal StateChange timestenclassic/norepsample Pod norepsample-0 state was Initializing, now Normal 4m58s Normal StateChange timestenclassic/norepsample TimesTenClassic was NoReplicasReady, now SomeReplicasReady 4m48s Normal Info timestenclassic/norepsample Pod norepsample-2 Agent Up 4m48s Normal Info timestenclassic/norepsample Pod norepsample-2 Release 22.1.1.30.0 4m48s Normal Info timestenclassic/norepsample Pod norepsample-2 Instance Exists 4m48s Normal Info timestenclassic/norepsample Pod norepsample-2 Daemon Down 4m48s Normal Info timestenclassic/norepsample Pod norepsample-2 Daemon Up 4m48s Normal Info timestenclassic/norepsample Pod norepsample-2 Database None 3m37s Normal Info timestenclassic/norepsample Pod norepsample-2 Database Loaded 3m37s Normal Info timestenclassic/norepsample Pod norepsample-2 Database Updatable 3m37s Normal Info timestenclassic/norepsample Pod norepsample-2 RepAgent Not Running 3m37s Normal StateChange timestenclassic/norepsample Pod norepsample-2 is Ready 3m37s Normal StateChange timestenclassic/norepsample Pod norepsample-2 state was Initializing, now Normal 3m37s Normal Info timestenclassic/norepsample Pod norepsample-1 Agent Up 3m37s Normal Info timestenclassic/norepsample Pod norepsample-1 Release 22.1.1.30.0 3m37s Normal Info timestenclassic/norepsample Pod norepsample-1 Instance Exists 3m37s Normal Info timestenclassic/norepsample Pod norepsample-1 Daemon Down 3m36s Normal Info timestenclassic/norepsample Pod norepsample-1 Daemon Up 3m36s Normal Info timestenclassic/norepsample Pod norepsample-1 Database None 3m30s Normal Info timestenclassic/norepsample Pod norepsample-1 Database Loaded 3m30s Normal Info timestenclassic/norepsample Pod norepsample-1 Database Updatable 3m30s Normal Info timestenclassic/norepsample Pod norepsample-1 RepAgent Not Running 3m30s Normal StateChange timestenclassic/norepsample Pod norepsample-1 is Ready 3m30s Normal StateChange timestenclassic/norepsample Pod norepsample-1 state was Initializing, now Normal 3m30s Normal StateChange timestenclassic/norepsample TimesTenClassic was SomeReplicasReady, now AllReplicasReady
プロビジョニング・プロセス中、TimesTenClassicオブジェクトおよびTimesTenポッドは様々な状態間で遷移します。
- 基礎となるオブジェクトが存在するかどうかの確認
1. StatefulSet:
kubectl get statefulset norepsample
出力は、次のようになります。
NAME READY AGE norepsample 3/3 8m30s
2. サービス:
kubectl get service norepsample
出力は、次のようになります。
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE norepsample ClusterIP None <none> 6625/TCP,8888/TCP 8m58s
3 ポッド:
kubectl get pods
出力は、次のようになります。
NAME READY STATUS RESTARTS AGE norepsample-0 3/3 Running 0 9m15s norepsample-1 3/3 Running 0 9m15s norepsample-2 3/3 Running 0 9m15s ...
4.PVC:
kubectl get pvc
出力は、次のようになります。
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE tt-persistent-norepsample-0 Bound csi-00bf2a2e-ef70-4f41-a3ef-66341f7404ac 250Gi RWO oci-bv 9m34s tt-persistent-norepsample-1 Bound csi-516d9ef4-9492-4927-b483-05f7d320cc73 250Gi RWO oci-bv 9m34s tt-persistent-norepsample-2 Bound csi-99c95d75-f9d9-4754-9378-0c5a7d288871 250Gi RWO oci-bv 9m34s
- データベースの1つに接続します。
- 開発ホストから、ポッドにシェルを確立します。
kubectl exec -it norepsample-0 -c tt -- /bin/bash
- データベースに接続表に行を挿入します。
ttIsql norepsample Copyright (c) 1996, 2025, Oracle and/or its affiliates. All rights reserved. Type ? or "help" for help, type "exit" to quit ttIsql. connect "DSN=norepsample"; Connection successful: DSN=norepsample;UID=timesten;DataStore=/tt/home/timesten/datastore/norepsample;DatabaseCharacterSet=AL32UTF8;ConnectionCharacterSet=US7ASCII;AutoCreate=0;PermSize=200;DDLReplicationLevel=3;ForceDisconnectEnabled=1; (Default setting AutoCommit=1) Command> select * from adminuser.emp; 0 rows found. Command> describe adminuser.emp; Table ADMINUSER.EMP: Columns: *ID NUMBER NOT NULL NAME CHAR (32) PRIMARY KEY (ID) RANGE INDEX 1 table found. (primary key columns are indicated with *) Command> insert into adminuser.emp values (1,'test'); 1 row inserted. Command> commit; Command> select * from adminuser.emp; < 1, test > 1 row found.
ttIsql
およびシェルを終了します。Command> exit Disconnecting... Done. [timesten@norepsample-0 ~]$ exit exit
- 開発ホストから、ポッドにシェルを確立します。