方法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を作成してあると仮定します。PermSizeTempSizeLogBufMBおよび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"

この例では、テンプレートに、ttdaemonlogおよびexporterコンテナに対するcpuおよびmemoryのリクエストと制限が含まれています。これらのリソースは、Kubernetesへ指定されます。