TimesTenClassicオブジェクトのデフォルトのアフィニティおよびアンチアフィニティ設定について

Kubernetesアフィニティおよびアンチアフィニティ設定は、ノードでのポッドのスケジュール方法を制限します。Kubernetesドキュメントの「アフィニティとアンチアフィニティ」を参照してください。

デフォルトでTimesTenオペレータは、TimesTenClassicオブジェクトのデプロイ時に作成されるポッドに対し、次のアフィニティおよびアンチアフィニティ設定を追加します。
  • nodeAffinity設定。適切なアーキテクチャ(amd64またはarm64)を使用してノードにTimesTenポッドをプロビジョニングするようにKubernetesに指示します。これらのアーキテクチャの詳細は、このマニュアルの「マルチアーキテクチャKubernetesクラスタでのデプロイについて」を参照してください。このアーキテクチャ設定は必須です。

  • podAntiAffinityセクション。他のノードでTimesTenClassicオブジェクトのポッドをスケジュールするようにKubernetesに指示します(可能な場合)。このセクションの使用をお薦めします。アンチアフィニティ設定が優先されるため(制約が少ない)、リソース制約によって必要になった場合に、Kubernetesは同じノードに複数のポッドをスケジュールできます。たとえば、お薦めしませんが、TimesTenデータベースのアクティブ・スタンバイ・ペアを1つのノード・クラスタにプロビジョニングできます。ただし、2つ以上のノードが使用可能な場合、Kubernetesは他のノードでTimesTenポッドのスケジュールを試みます。

TimesTenClassicオブジェクト定義に独自のaffinityセクションを指定した場合、TimesTenオペレータはそのaffinityセクションを使用し、これを変更しません。

ノート:

nodeAffinity.requiredDuringSchedulingIgnoredDuringExecutionセクションを指定すると、TimesTenオペレータによってarch句が追加されます。

次のスニペットは、sampleという名前のTimesTenClassicオブジェクトのデフォルトのアフィニティおよびアンチアフィニティ設定を示しています。

      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
            - matchExpressions:
              - key: kubernetes.io/arch
                operator: In
                values:
                - amd64
        podAntiAffinity:
          preferredDuringSchedulingIgnoredDuringExecution:
          - podAffinityTerm:
              labelSelector:
                matchLabels:
                  database.timesten.oracle.com: sample
              topologyKey: kubernetes.io/hostname
            weight: 50