方法2: リクエストと制限のテンプレートを使用する
この方法では、リソースのリクエストと制限を指定するためのテンプレートを使用します。この動作を有効にするには、TimesTenClassicまたはTimesTenScaleoutオブジェクトの.spec.ttspec.automaticMemoryRequests
データ項目をfalse
に設定します。
TimesTenClassicおよびTimesTenScaleoutオブジェクトのYAMLでは、ポッドに対してtemplate
を指定できます。このtemplate
では、ポッド内の様々なコンテナ(tt
コンテナなど)の属性を指定します。1つ以上のコンテナに対してtemplate
を指定した場合は、それらのコンテナに対するリソースのリクエストと制限がKubernetesによって使用されます。
Kubernetesの外部のTimesTenインスタンスでttShmSize
ユーティリティを使用して、tt
コンテナに対するmemory
リクエストと制限について適切な値を特定することをお薦めします。データベースを作成する必要はありません。
この例では、Kubernetesの外部でTimesTenインスタンスを作成し、sys.odbc.ini
ファイル内でdatabase1
という名前でDSNを作成してあると仮定します。PermSize
、TempSize
、LogBufMB
およびConnections
接続属性に対して指定されている値に基づいて、ttShmSize
ユーティリティを使用します。
ttShmSize -connstr "DSN=database1;PermSize=32768;TempSize=4096;LogBufMB=1024;Connections=2048"
The required shared memory size is 39991547720 bytes.
ttShmSize
の詳細は、『Oracle TimesTen In-Memory Databaseリファレンス』のttShmSizeを参照してください。
apiVersion: timesten.oracle.com/v2
kind: TimesTenClassic
metadata:
name: resource1
spec:
ttspec:
storageClassName: standard
storageSize: 100Gi
image: container-registry.oracle.com/timesten/timesten:22.1.1.27.0
imagePullSecret: sekret
prometheus:
insecure: true
template:
spec:
containers:
- name: tt
resources:
requests:
memory: "41Gi"
cpu: "20"
limits:
memory: "41Gi"
cpu: "20"
- name: daemonlog
resources:
requests:
memory: "30Mi"
cpu: "210"
limits:
memory: "30Mi"
cpu: "210"
- name: exporter
resources:
requests:
memory: "22Mi"
cpu: "310m"
limits:
memory: "22Mi"
cpu: "310m"
この例では、テンプレートに、tt
、daemonlog
およびexporter
コンテナに対するcpu
およびmemory
のリクエストと制限が含まれています。これらのリソースは、Kubernetesへ指定されます。