TimesTen Scaleoutグリッドとそのデータベースのデプロイについて
KubernetesクラスタにTimesTenScaleoutオブジェクトを作成すると、TimesTen Scaleoutグリッドとその関連データベースを作成および構成するプロセスが開始されます。Kubernetesは、TimesTenScaleoutオブジェクトが作成されたことをTimesTenオペレータに通知します。オペレータは、グリッドをデプロイするために必要な複数のKubernetesオブジェクトを作成するプロセスを開始します。
StatefulSets
-
グリッドの管理インスタンスを提供する1つのStatefulSet。この管理インスタンスの基礎となるポッドも作成されます。
-
1つ以上のZooKeeperインスタンスを提供する1つのStatefulSet。ZookeeperインスタンスごとにStatefulSetのレプリカが1つあります。たとえば、ZooKeeperインスタンスが3つある場合、StatefulSetが1つあり、この1つのStatefulSetに3つのレプリカがあります。
-
1つ以上の追加のStatefulSet。その数はK-Safety (
k
)の値によって決まります。たとえば、k
の値が2
の場合、TimesTenデータベースのコピーが2つあることを意味します。データベースの1つのコピーがデータ領域1に存在し、もう1つのコピーがデータ領域2に存在します。Kubernetes環境では、TimesTenオペレータがk
個のStatefulSetを作成します。前の例を使用して、k
が2
に設定されている場合、オペレータは2つのStatefulSetを作成します。k
個のStatefulSetはそれぞれ、結果のグリッドに単一のデータ領域を実装するためのポッドを提供します。各StatefulSetのレプリカの数は、グリッドに必要なレプリカ・セットの数によって決まります。レプリカ・セットには
k
要素が含まれ、レプリカ・セット内の各要素は、レプリカ・セット内の他の要素の正確なコピーになります。たとえば、グリッドに3つのレプリカ・セットが必要な場合、各StatefulSetには3つのレプリカがあります。各レプリカには、1つのデータ・インスタンスのポッドが含まれます。したがって、この例では、1つのStatefulSetに3つのポッドがあり、それぞれに1つのデータ・インスタンスが含まれます。もう1つのStatefulSet (k=2
と仮定)にも3つのレプリカがあり、各レプリカには1つのデータ・インスタンスのポッドも含まれます。したがって、もう1つのStatefulSetには3つのポッドがあり、それぞれに1つのデータ・インスタンスが含まれます。つまり、
k
が2
に設定され、レプリカ・セットの数が3
の場合、オペレータは2つのStatefulSetを作成し、それぞれに3つのレプリカが含まれます。各StatefulSetは、単一のデータ領域を実装するためのポッドを提供します。6つのデータ・インスタンスに対して合計6つのポッドが作成されています。
サービス
-
管理インスタンスおよびデータ・インスタンスを含むポッドのDNS名を提供する1つのheadlessサービス。このサービスにより、TimesTenクライアント/サーバー・ポート
6625
を使用して、ポッドへのクライアント/サーバー・アクセスが可能になります。 -
ZooKeeperインスタンスを含むポッドのDNS名を提供する1つのheadlessサービス。このサービスにより、ZooKeeperの内部ポート
2888
と3888
、および外部ポート2181
にアクセスできます。
シークレット
TimesTenオペレータは、SSL証明書をTimesTenコンテナにインジェクトするためのシークレットを作成します。これにより、TimesTenオペレータとTimesTenエージェントの間の通信が保護されます。
永続ボリューム要求およびポッド
TimesTenオペレータは、TimesTenポッドおよびZooKeeperポッドの永続ボリューム要求(PVC)を作成します。これらのPVCにより、永続ボリュームがKubernetesによって割り当てられ、TimesTenポッドおよびZooKeeperポッドにアタッチされます。「永続記憶域」を参照してください。
ZooKeeperインスタンスを実行する各ポッドは、zookeeper
という単一のコンテナで構成されます。
-
tt
コンテナ: TimesTenエージェントおよびTimesTenを実行します。 -
daemonlog
コンテナ: TimesTen daemonlogをstdoutに書き込みます。これにより、TimesTenインスタンスのデーモン・ログがKubernetesインフラストラクチャによって記録されます。
TimesTenポッド内のtt
コンテナが起動すると、オペレータはそれらを作業グリッドにアセンブルします。
パスワードなしssh
TimesTen Scaleoutグリッドは、グリッドのインスタンス間でパスワードなしのsshに依存しています。TimesTenオペレータは、Kubernetes環境のグリッド内のtt
コンテナ間でパスワードなしのsshを自動的に構成します。実行する必要がある操作はありません。
クイック・ロールアウト
TimesTen Kubernetesオペレータは、TimesTen Scaleoutグリッドとその関連データベースをデプロイする機能を提供します。TimesTenオペレータは、グリッドを迅速かつうまくロールアウトします。
オペレータは、グリッドのデプロイに必要なStatefulSetおよびサービスを作成します。また、ZooKeeperポッドを作成します。管理ポッドのTimesTenエージェントが起動すると、オペレータはエージェントにTimesTenインスタンスおよびグリッドを作成するように指示します。オペレータは、すべてのポッド内のすべてのTimesTenエージェントが起動するまで待機します。すべてのエージェントが起動すると、オペレータは管理インスタンスのエージェントに、グリッド内のデータ・インスタンスのグリッド・モデル内にホスト、インストールおよびインスタンスを作成するように指示します。DbDef
は、直接接続可能オブジェクトおよびクライアント/サーバー接続可能オブジェクトと同様に作成されます。モデルが適用され、グリッドのデータ・インスタンスが作成されます。
オペレータは管理インスタンスに、データベースを作成し、初期ディストリビューション・マップを作成するように指示します。次に、オペレータは1つのデータ・インスタンスのTimesTenエージェントに、TimesTen ttIsql
ユーティリティを実行して初期データベース・ユーザーおよびオブジェクトを作成するように指示します。
グリッドおよびデータベースが作成されます。TimesTenエージェントは、接続のためにデータベースを開きます。
グリッド・ロールアウトは、ユーザーの操作がほとんどまたはまったくなくても迅速かつうまく行われます。グリッドがロールアウトされると、TimesTenオペレータはグリッドまたはデータベースの管理や、メンテナンス操作を実行しません。
-
TimesTen Scaleoutの詳細は、Oracle TimesTen In-Memory Database Scaleoutユーザーズ・ガイドのTimesTen Scaleoutの概要を参照してください。
- TimesTen ScaleoutグリッドおよびデータベースをKubernetesにデプロイする方法の詳細は、このマニュアルの「TimesTen Scaleoutデータベースのデプロイ」を参照してください。