プライマリ・コンテンツに移動
Oracle® TimesTen In-Memory Database Kubernetesオペレータ・ユーザーズ・ガイド
リリース18.1
F33742-03
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

11 TimesTenClassicオブジェクト・タイプ

この章では、TimesTenClassicオブジェクト・タイプについて説明します。このタイプのオブジェクトは、TimesTenデータベースのアクティブ・スタンバイ・ペアを作成するために作成します。

トピック:

TimesTenClassicオブジェクト・タイプの概要

TimesTen Operatorをインストールすると、新しいタイプのオブジェクトがKubernetesクラスタに追加されます。TimesTenClassicオブジェクトは必要な数だけ作成できます。このような各オブジェクトは、それぞれがコンテナで実行されるTimesTenデータベースのペアをポッド内に作成します。どちらのポッドもStatefulSetの制御下で動作します。

TimesTenClassicオブジェクト・タイプの定義では、Kubernetesに組み込まれたオブジェクトを定義するために正式なKubernetesドキュメントで使用される形式と同じ基本形式が使用されます。どのKubernetesクラスタでも、そのクラスタで使用しているKubernetesのリリースに応じて使用可能な機能が異なる点に注意してください。Kubernetes APIドキュメントについての情報は、次を参照してください

https://kubernetes.io/docs/reference/kubernetes-api/

Kuberenetes APIリファレンス・ドキュメントは、TimesTenClassicオブジェクト・タイプの定義で使用される多数の組込みKubernetesタイプ、特にStatefulSetについて言及しています。さらに、TimesTenClassicは、基本的にStatefulSetのラッパーであるため、その定義が特に関連します。特に、StatefulSetSpecはそのまま使用されます。これはStatefulSetの仕様について説明しています。これは、StatefulSetsの作成者がStatefulSetの外観を表す方法です。詳細は、次を参照してください。

https://kubernetes.io/docs/reference/kubernetes-api/


ノート:

すべてのメタデータは、TimesTenClassicオブジェクトからStatefulSetに渡されます。

TimesTenClassicオブジェクト・タイプ

TimesTenClassicオブジェクト・タイプは、次のオブジェクト定義を使用して定義されます。これらの定義は、表形式で表されます。最初の列には、フィールドの名前とタイプが含まれています。2番目の列は説明です。

TimesTenClassic

TimesTenClassicタイプのオブジェクトは、TimesTenデータベースのアクティブ・スタンバイ・ペアを作成するために作成します。

表11-1「TimesTenClassic」に、TimesTenClassicの構文を示します。

表11-1 TimesTenClassic

フィールド 説明

apiVersion
文字列

apiVersionは、オブジェクトのこの表現のバージョニングされたスキーマを定義します。

値はtimesten.oracle.com/v1である必要があります。

kind
文字列

kindは、オブジェクトのタイプ(この例ではTimesTenClassic)を示します

metadata
ObjectMeta

metadataは、オブジェクトに関するメタデータ(名前など)を示します。ObjectMetaの詳細は、次を参照してください。

https://kubernetes.io/docs/reference/kubernetes-api/

spec
TimesTenClassicSpec

specは、TimesTenのポッドおよびデータベースの必要な構成を定義します。

status
TimesTenClassicStatus

statusは、このTimesTenClassicオブジェクトのポッドの現在のステータスと、そのポッド内の様々なTimesTenコンポーネントのステータスを示します。このデータは、時間が経過すると期限切れになる場合があります。


TimesTenClassicSpec

TimesTenClassicSpecはTimesTenClassicに表示されます。詳細は、表11-1「TimesTenClassic」を参照してください。

表11-2「TimesTenClassicSpec」に、TimesTenClassicSpecの構文を示します。

表11-2 TimesTenClassicSpec

フィールド 説明

ttspec
TimesTenClassicSpecSpec

ttspecは、TimesTen固有の属性を定義します。

template
PodTemplateSpec

templateは、不十分なレプリカが検出された場合に作成されるポッドを説明します。プロビジョニングされた各ポッドはこのテンプレートを満たしますが、他のものとは異なる一意のアイデンティティを持ちます。ttおよびdaemonlogという2つの追加のコンテナがあり、ここで指定するものに加えて、各ポッドに自動的に含められます。TimesTenは、ttコンテナで実行されます。PodTemplateSpecの詳細は、次を参照してください。

https://kubernetes.io/docs/reference/kubernetes-api/

volumeClaimTemplates
PersistentVolumeClaim

TimesTenでは、/tt (および指定されている場合は/ttlog)に対してPersistentVolumeClaims (PVC)が自動的にプロビジョニングされます。TimesTenポッドのコンテナで実行されているアプリケーションがあり、これらのアプリケーションで追加のPVCが必要な場合は、このフィールドで指定します。PersistentVolumeClaimの詳細は、次を参照してください。

https://kubernetes.io/docs/reference/kubernetes-api/


TimesTenClassicSpecSpec

TimesTenClassicSpecSpecはTimesTenClassicSpecに表示されます。詳細は、表11-2「TimesTenClassicSpec」を参照してください。

表11-3「TimesTenClassicSpecSpec」に、TimesTenClassicSpecSpecの構文を示します。

表11-3 TimesTenClassicSpecSpec

フィールド 説明

agentGetTimeout
整数

agentGetTimeoutは、オペレータがTimesTenエージェントによるhttps GETリクエストの処理を待機する時間(秒)を指定します。これには、TCPおよびTLS時間、およびTimesTenエージェントがGETリクエストを実装するのにかかる時間が含まれます。

デフォルトは60です。値0は、タイムアウトがないことを示します。タイムアウトを超えた場合、オペレータはエージェントを停止とみなします。

agentPostTimeout
整数

agentPostTimeoutは、オペレータがTimesTenエージェントによるhttps POSTリクエストの処理を待機する時間(秒)を指定します。これには、TCPおよびTLS時間、およびTimesTenエージェントがPOSTリクエストを実装するのにかかる時間が含まれます。POSTリクエストには時間がかかる場合があり、時間はデータベースのサイズに比例する場合があります。(例として、データベースをアクティブからスタンバイに複製するPOSTリクエストがあります。)

デフォルトは600です。値0は、タイムアウトがないことを示します。タイムアウトを超えた場合、オペレータはPOSTリクエストが失敗したとみなします。

agentTCPTimeout
整数

agentTCPTimeoutは、オペレータがTimesTenエージェントとの通信時にTCPハンドシェイクを待機する時間(秒)を指定します。

デフォルトは10です。値0は、タイムアウトがないことを示します。タイムアウトを超えた場合、オペレータはエージェントを停止とみなします。

agentTLSTimeout
整数

agentTLSTimeoutは、オペレータがTimesTenエージェントとの通信時にTLS (https)資格証明交換を待機する時間(秒)を指定します。

デフォルトは10です。値0は、タイムアウトがないことを示します。タイムアウトを超えた場合、オペレータはエージェントを停止とみなします。

bothDownBehavior
文字列

TimesTenClassicオブジェクトがBothDown状態になると、オペレータはbothDownBehavior設定を調べて何をするかを決定します。指定できる値は、Best (デフォルト)またはManualです。BothDown状態の詳細は、BothDownを参照してください。

cacheCleanup
ブール

cacheCleanupでは、このTimesTenClassicオブジェクトの削除時にOracle Databaseのメタデータをクリーン・アップするかどうかを指定します。TimesTen Cacheにのみ使用します。

有効な値は次のとおりです。

  • true (または指定なし): メタデータはクリーン・アップされます。

  • false: メタデータはクリーン・アップされません。

詳細は、このドキュメントのOracle Databaseのキャッシュ・メタデータのクリーン・アップを参照してください。また、Oracle TimesTen Application-Tier Database Cacheユーザーズ・ガイドの自動リフレッシュ・キャッシュ・グループで使用されているOracle Databaseオブジェクトの削除を参照してください。

daemonLogSidecar
ブール

daemonLogSidecarは、各TimesTenポッドにデーモン・ログ・コンテナを作成するかどうかを指定します。このコンテナは、(ttmesg.logの)TimesTenデーモン・ログをstdoutに書き込むため、Kubernetesでログに記録します。

有効な値は次のとおりです。

  • true (または指定なし): デーモン・ログ・コンテナが作成されます。

  • false: デーモン・ログ・コンテナは作成されません。

dbConfigMap
文字列の配列

dbConfigMapには、ProjectedVolumeに含める1つ以上のConfigMapの名前を指定します。このProjectedVolumeは、TimesTenコンテナに/ttconfigとしてマウントされます。dbConfigMapまたはdbSecret (後述)を指定しない場合は、他の手段を使用して、/ttconfigに配置する必要がある必須ファイルを作成する必要があります。詳細は、/ttconfigディレクトリの移入を参照してください。

dbSecret
文字列の配列

dbSecretには、ProjectedVolumeに含める1つ以上のシークレットの名前を指定します。このProjectedVolumeは、TimesTenコンテナに/ttconfigとしてマウントされます。dbSecretまたはdbConfigMap (前述)を指定しない場合は、他の手段を使用して、/ttconfigに配置する必要がある必須ファイルを作成する必要があります。詳細は、/ttconfigディレクトリの移入を参照してください。

image
文字列

imageは、TimesTenを含むイメージを定義します。

デフォルト値はありません。imageの名前を指定する必要があります。

imagePullPolicy
文字列

imagePullPolicyは、Kubernetesがイメージ・リポジトリからTimesTenイメージを取得するかどうか、およびいつ取得するかを決定します。

有効な値は次のとおりです。

  • Always

  • IfNotPresent (デフォルト)

  • Never

ノート: 値の大/小文字は区別されます。

imagePullSecret
文字列

imagePullSecretは、KerbernetesがTimesTenイメージをフェッチするために使用するイメージ・プル・シークレットを定義します。

デフォルト値はありません。image pull secretの名前を指定する必要があります。

imageUpgradeStrategy
文字列

imageUpgradeStrategyは、オペレータが自動アップグレードを実行するかどうかを指定します。

有効な値は次のとおりです。

  • auto (または指定なし): オペレータは自動アップグレードを実行します。

  • manual: オペレータは自動アップグレードを実行しません。

値の大/小文字は区別されます。詳細は、第10章「アップグレードの実行」を参照してください。

logStorageClassName
文字列

logStorageClassNameは、TimesTenトランザクション・ログを保持するためのPersistentVolumesの割当てに使用される記憶域クラスの名前を示します。このフィールドを指定しない場合、トランザクション・ログはKubernetesで定義されたPersistentVolumesに配置されます。

logStorageSelector
metav1.LabelSelector

永続ボリュームを使用してTimesTenトランザクション・ログを格納する場合、使用するボリュームの主要な決定要因は、指定したlogStorageClassName要素です。オプションで、logStorageSelector要素を使用してラベル・セレクタを指定できます。このラベル・セレクタにより、ボリューム・セットがさらにフィルタ処理されます。次を参照してください。

https://kubernetes.io/docs/concepts/storage/persistent-volumes/#selector

logStorageSize
文字列

logStorageSizeは、各ポッドがTimesTenトランザクション・ログを保持するために要求する必要がある記憶域の量です。トランザクション・ログ・ファイルに必要な記憶域の量の決定の詳細は、Oracle TimesTen In-Memory Databaseオペレーション・ガイドのTimesTenの記憶域のプロビジョニングを参照してください。

デフォルトは50Gです。このデフォルト値は、製品の試験やデモ目的で使用する場合に適しています。ただし、本番環境では、50Gより大きな値を選択することを検討してください。このマニュアルの例では、本番環境を想定して、250Gの値を使用しています。

pollingInterval
整数

pollingIntervalでは、オペレータがTimesTenClassicアクティブ・スタンバイ・ペア・オブジェクトのステータスをチェックする頻度(秒単位)を指定します。たとえば、この値を10に設定すると、オペレータは10秒ごとにTimesTenClassicオブジェクトのステータスをチェックします。

この値は、unreachableTimeoutと相互に作用します。pollingInterval値は、unreachableTimeout値よりも小さくする必要があります。

この値は正の整数にする必要があります(0より大きな値)。デフォルトは、5です。

reexamine
文字列

TimesTenClassicオブジェクトがManualInterventionRequired状態の場合、オペレータはpollingInterval秒ごとにreexamine値を調べます。このオブジェクトの最後の反復以降に値が変更された場合、オペレータはこのオブジェクトのTimesTenコンテナの状態を調べます。詳細は、ManualInterventionRequired状態の理解および1つのデータベースの起動を参照してください。

repCreateStatement
文字列

repReturnServiceAttributeおよびrepStoreAttribute構文要素により、アクティブ・スタンバイ・ペアのレプリケーション・スキームを構成するために使用するCREATE ACTIVE STANDBY文を部分的に制御できます。ただし、これらの要素は、すべてのレプリケーション・オプションを設定するメカニズムは提供しません。

repCreateStatement構文要素により、アクティブ・スタンバイ・ペアのレプリケーション構成をより詳細に制御できます。レプリケーション・スキームを定義する場合は、repCreateStatementアプローチまたはrepReturnServiceAttributeアプローチとrepStoreAttributeアプローチのいずれかを選択する必要があります。1つのTimesTenClassicオブジェクト定義で両方のアプローチを同時には使用できません。たとえば、repCreateStatement要素とrepReturnServiceAttribute要素を単一のTimesTenClassicオブジェクト定義で使用することはできません。ただし、repReturnServiceAttributeおよびrepStoreAttribute要素を単一のTimesTenClassicオブジェクト定義で使用できます。

repCreateStatement要素の使用例:

apiVersion: timesten.oracle.com/v1
kind: TimesTenClassic
metadata:
 name: sample
spec:
  ttspec:
 repCreateStatement: |
      create active standby pair
        "{{tt-name}}" on "{{tt-node-0}}",
        "{{tt-name}}" on "{{tt-node-1}}"
      RETURN TWOSAFE
      store "{{tt-name}}" on "{{tt-node-0}}"
        PORT {{tt-rep-port}} FAILTHRESHOLD 10 TIMEOUT 5 
        DISABLE RETURN ALL 10
      store "{{tt-name}}" on "{{tt-node-1}}"
        PORT {{tt-rep-port}} FAILTHRESHOLD 10 TIMEOUT 5 
        DISABLE RETURN ALL 10

オペレータによって置換が実行されます。

  • {{tt-name}}: TimesTenClassicオブジェクトの名前。(例: sample。)

  • {{tt-node-0}}: TimesTenClassicオブジェクトの-0ポッドの完全修飾DNS名。(例: sample-0.sample.mynamespace.svc.cluster.local。)

  • {{tt-node-1}}: TimesTenClassicオブジェクトの-1ポッドの完全修飾DNS名。(例: sample-1.sample.mynamespace.svc.cluster.local。)

  • {{tt-rep-port}}: オペレータによって選択されるか、またはrepPort CRD構文要素で指定されているTCPポート。

repCreateStatement要素を使用すると、レプリケーション構成をほぼ完全に制御できます。オペレータにより、定義した文が実行されます(いくつかの値を置換した後)。定義したCREATE文をオペレータが使用するため、指定した文が正確で適切であることを確認してください。アクティブ・スタンバイ・ペアのレプリケーション・スキームの作成に失敗すると、TimesTenClassicオブジェクトはInitializing状態からFailed状態に遷移します。次に、TimesTenClassicオブジェクトを削除して、保持しているリソースをクリーン・アップする必要があります。これらの状態の詳細は、データベースのアクティブ・スタンバイ・ペアの状態の監視を参照してください。

構成に関する制限事項:

  • アクティブ・スタンバイ・ペアを構成する必要があります。

  • サブスクライバを構成することはできません。

詳細は、Oracle TimesTen In-Memory Database SQLリファレンスのCREATE ACTIVE STANDBY PAIRおよびOracle TimesTen In-Memory Databaseレプリケーション・ガイドのアクティブ・スタンバイ・ペアのレプリケーション・スキームの定義を参照してください。

replicationCipherSuite
文字列

replicationCipherSuiteでは、TimesTenレプリケーションで使用される暗号化アルゴリズムを指定します。指定しない場合、レプリケーション・トラフィックは暗号化されません。

次のいずれかの値またはその両方を指定できます。

  • SSL_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256

  • SSL_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384

詳細は、『Oracle TimesTen In-Memory Databaseセキュリティ・ガイド』のTimesTenでの証明書の使用に関する項を参照してください。

replicationSSLMandatory
整数

replicationSSLMandatoryは、レプリケーションにSSL暗号化が必須かどうかを指定します。

有効な値は次のとおりです。

  • 0 (または指定なし): SSL暗号化はレプリケーションには必須ではありません。

  • 1: レプリケーションにはSSL暗号化が必須です。

この値は、replicationCipherSuiteが指定されている場合にのみ調べられます。

詳細は、『Oracle TimesTen In-Memory Databaseセキュリティ・ガイド』のTimesTenでの証明書の使用に関する項を参照してください。

repPort
整数

RepPortは、レプリケーションに使用するTCPポートを指定します。デフォルトは4444です。

repReturnServiceAttribute
文字列

repReturnServiceAttribute要素を使用して、ReturnServiceAttribute句を指定できます。この句は、CREATE ACTIVE STANDBY PAIR文の構文の一部です。指定する情報は、オペレータによってアクティブ・スタンバイ・ペアのCREATE ACTIVE STANDBY PAIR文に含まれています。repCreateStatement要素を指定している場合は、repReturnServiceAttribute要素を指定しないでください。

repReturnServiceAttribute要素(またはrepCreateStatement要素)を指定しない場合、デフォルトはNO RETURNです。

CREATE ACTIVE STANDBY PAIR文およびReturnServiceAttribute句の詳細は、Oracle TimesTen In-Memory Database SQLリファレンスのCREATE ACTIVE STANDBY PAIRおよびOracle TimesTen In-Memory Databaseレプリケーション・ガイドのアクティブ・スタンバイ・ペアのレプリケーション・スキームの定義を参照してください。

repStoreAttribute
文字列

repStoreAttribute要素を使用して、StoreAttribute句を指定できます。この句は、CREATE ACTIVE STANDBY PAIR文の一部です。指定する情報は、オペレータによってアクティブ・スタンバイ・ペアのCREATE ACTIVE STANDBY PAIR文に含まれています。repCreateStatement要素を指定している場合は、repStoreAttribute要素を指定しないでください。

repStoreAttribute要素(またはrepCreateStatement要素)を指定しない場合、デフォルトはPORT repPort FAILTHRESHOLD 0です。

repStoreAttributeを指定する場合は、ポートを指定する必要があります。このポートはレプリケーションで使用されます。ポートは、repPort要素に指定されたポートと一致する必要があります(または、repPortが指定されていない場合、デフォルト値と一致する必要があります)。ポートが一致しない場合、TimesTenClassicオブジェクトはFailed状態になります。

CREATE ACTIVE STANDBY PAIR文およびStoreAttribute句の詳細は、Oracle TimesTen In-Memory Database SQLリファレンスのCREATE ACTIVE STANDBY PAIRおよびOracle TimesTen In-Memory Databaseレプリケーション・ガイドのアクティブ・スタンバイ・ペアのレプリケーション・スキームの定義を参照してください。

stopManaging
文字列

TimesTenClassicオブジェクトのstopManagingの値を変更すると、オペレータはオブジェクトをManualInterventionRequired状態にします。詳細は、ManualInterventionRequired状態の理解および1つのデータベースの起動を参照してください。

storageClassName
文字列

storageClassNameは、Kubernetesによって定義されたPersistentVolumesの割当てに使用される記憶域クラスの名前を示します。

デフォルト値はありません。記憶域クラスの名前を指定する必要があります。

storageSelector
metav1.LabelSelector

永続ボリュームを使用してTimesTenデータベースを格納することを選択した場合、使用するボリュームの主要な決定要素は、指定するstorageClassName要素です。オプションで、storageSelector要素を使用してラベル・セレクタを指定できます。このラベル・セレクタにより、ボリューム・セットがさらにフィルタ処理されます。次を参照してください。

https://kubernetes.io/docs/concepts/storage/persistent-volumes/#selector

storageSize
文字列

storageSizeは、各ポッドがTimesTenを保持するために要求する必要がある記憶域の量です。TimesTenに必要な記憶域の量の決定の詳細は、Oracle TimesTen In-Memory Databaseオペレーション・ガイドのTimesTenの記憶域のプロビジョニングを参照してください。

デフォルトは50Gです。このデフォルト値は、製品の試験やデモ目的で使用する場合に適しています。ただし、本番環境では、50Gより大きな値を選択することを検討してください。このマニュアルの例では、本番環境を想定して、250Gの値を使用しています。

unreachableTimeout
整数

unreachableTimeoutでは、オペレータがフェイルオーバーの処理を実行するか問題からのリカバリを実行するまでに、TimesTenインスタンスまたはTimesTenデータベースが使用できなくなる秒数を指定します。

この値は、pollingIntervalと相互に作用します。pollingInterval値は、unreachableTimeout値よりも小さくする必要があります。

この値は正の整数にする必要があります(0より大きな値)。デフォルトは30です。

upgradeDownPodTimeout
整数

TimesTenの自動アップグレード中に、オペレータはポッドを削除します。ポッドを削除した後、オペレータはポッドがバックアップされるのを、upgradeDownPodTimeoutの値まで待機します。このタイムアウト前にポッドのttコンテナにあるTimesTenエージェントに到達できない場合、TimesTenClassicオブジェクトはManualInterventionRequired状態になります。

値は秒単位で表されます。デフォルトは600です。

値0はタイムアウトがないことを示します。TimesTenClassicオブジェクトは永久に待機し、ManualInterventionRequired状態に移行しません。

アップグレード・プロセスの詳細は、第10章「アップグレードの実行」を参照してください。

waitingForActiveTimeout
整数

この設定では、TimesTenClassicオブジェクトがWaitingForActive状態のままになる最大秒数を指定します。この期間の後、TimesTenClassicオブジェクトがまだWaitingForActive状態の場合、ManualInterventionRequired状態に遷移します。

デフォルトは0です(タイムアウトがないことを意味します。TimesTenClassicオブジェクトは、必要に応じて永久に待機します)。

WaitingForActiveおよびManualInterventionRequired状態の詳細は、データベースのアクティブ・スタンバイ・ペアの状態の監視を参照してください。


TimesTenClassicStatus

TimesTenClassicStatusはTimesTenClassicに表示されます。詳細は、TimesTenClassicを参照してください。このオブジェクト・タイプは、CRDの標準部分です。オペレータは、TimesTenClassicStatusに様々な永続情報を格納します。

ステータスは、kubectl getおよびkubectl describeコマンドの出力の一部として表示されます。

TimesTenClassicStatusの情報は、次のとおりです。

  • awtBehindMb: このフィールドは、AWT (非同期WriteThrough)が使用されている場合にのみ表示されます。このフィールドは、Oracle DatabaseにまだプッシュされていないTimesTenに存在するログのMB数を表します。AWTキャッシュ・グループの詳細は、Oracle TimesTen Application-Tier Database Cacheユーザーズ・ガイドのキャッシュ・グループの概要を参照してください。

  • アクティブ・スタンバイ・ペアの高レベル状態: アクティブ・スタンバイ・ペアの高レベル状態を示す文字列。

  • 各ポッドのTimesTenの詳細な状態。次のものが含まれます。

    • TimesTenエージェントが稼働しているかどうか。

    • TimesTenメイン・デーモンが稼働しているかどうか。

    • TimesTenレプリケーション・エージェントが稼働しているかどうか。

    • TimesTenキャッシュ・エージェントが稼働しているかどうか。

    • インスタンスにデータベースがあるかどうか。

    • データベースがロードされているかどうか。

    • データベースが更新可能か読取り専用かどうか。

    • データベースにレプリケーション・スキームがあるかどうか。

    • このデータベースのレプリケーションの状態。

    • このデータベースはピアのレプリケーション状態をどのように認識しているか。

    • このポッド(アクティブまたはスタンバイ)のTimesTenのロール。

    • ポッドの高レベル状態。


ノート:

たとえば、エージェントが実行されていない場合や、ポッドが使用できない場合、不明な値が発生することがあります。